观测云集成泛微 E9 最佳实践

背景

泛微 E9 是企业常见的 OA 协同办公系统,承载流程审批、门户访问、表单提交、组织协作等核心业务。系统运行一段时间后,常见问题包括页面访问慢、流程提交卡顿、接口异常、日志排查困难等。

通过将泛微 E9 接入观测云,可以从后端 APM、前端 RUM、日志、主机指标等多个维度进行统一观测,实现从用户访问体验到后端调用链路的完整分析。

整体方案

整体接入分为两部分:后端 APM 在 Resin JVM 启动参数中加载 dd-java-agent.jar,采集 Java 链路;前端 RUM 在泛微 E9 前端入口 HTML 的 head 首行插入观测云 RUM SDK,采集用户访问体验。

一、后端 APM 接入

1. 下载 Java Agent

进入 DataKit 数据目录:

cd /usr/local/datakit/data

下载观测云 Java Agent:

wget -O dd-java-agent.jar https://static.guance.com/dd-image/dd-java-agent.jar

确认文件存在:

ls -lh /usr/local/datakit/data/dd-java-agent.jar

2. 定位 Resin 配置目录

泛微 E9 的 Resin 配置文件位于:data/weaver/Resin4/conf

进入目录后,找到 resin.properties 文件。如下图所示。

修改前建议备份:

cp resin.properties resin.properties.bak.$(date +%Y%m%d%H%M%S)

3. 修改 resin.properties

打开文件:data/weaver/Resin4/conf/resin.properties

找到 jvm_args 配置行。jvm_args 位于 resin.properties 的「Arg passed directly to the JVM」配置段下,观测云 Java Agent 参数应追加在该行已有 JVM 参数末尾。如下图所示。

需要追加的参数:

-javaagent:/usr/local/datakit/data/dd-java-agent.jar -Ddd.logs.injection=true -Ddd.env=dev -Ddd.service=OA95 -Ddd.agent.host=127.0.0.1 -Ddd.agent.port=9529

示例:

jvm_args : -Xmx5550m -Xms5550m -XX:ParallelGCThreads=20 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+DisableExplicitGC -javaagent:wagent.jar -Djdk.tls.ephemeralDHKeySize=2048 -Dfile.encoding=GBK -javaagent:/usr/local/datakit/data/dd-java-agent.jar -Ddd.logs.injection=true -Ddd.env=dev -Ddd.service=OA95 -Ddd.agent.host=127.0.0.1 -Ddd.agent.port=9529

注意事项:

  • 不要删除原有 jvm_args 参数。
  • 不要覆盖原有 -javaagent:wagent.jar
  • 新增参数建议追加到原 jvm_args 行末尾。
  • 参数之间必须用空格分隔。
  • 尽量保持在同一行,避免 Resin 解析异常。
  • -Ddd.service=OA95 可按实际系统命名调整。
  • 生产环境建议将 -Ddd.env=dev 改为 prod

4. 重启泛微 E9 / Resin

保存配置后,按现场标准流程重启泛微 E9 或 Resin 服务。

重启后检查 Java 进程参数:ps -ef | grep java | grep dd-java-agent

如果能看到 -javaagent:/usr/local/datakit/data/dd-java-agent.jar,说明 Java Agent 已成功加载。

二、前端 RUM 接入

1. 前置条件

前端接入前,需要先注册并登录观测云账号,进入「用户访问监测」,新建一个前端应用,选择「CDN 同步载入」,然后复制系统生成的 SDK 代码。

控制台位置:用户访问监测 > 新建应用 > CDN 同步载入

观测云控制台会提示:单页应用建议将代码复制粘贴到 HTML 文件 head 标签的首行;多页应用建议将代码复制粘贴到公共 head 模板文件的首行。

2. 定位泛微 E9 前端入口文件

泛微 E9 前端入口目录:data/weaver/ecology/wui

进入目录:cd data/weaver/ecology/wui

找到文件:index.html

修改前建议备份:

cp index.html index.html.bak.$(date +%Y%m%d%H%M%S)

3. 插入 RUM SDK 代码

打开 data/weaver/ecology/wui/index.html,将观测云控制台生成的代码复制到 HTML 文件 head 标签的首行。

示例位置:<head> 的第一行放置观测云 RUM SDK,后续再保留原有页面内容。

实际代码以观测云控制台生成内容为准,核心参数包括:

  • applicationId:前端应用 ID。
  • site:观测云 RUM 数据接收地址,例如 https://rum-openway.guance.com
  • clientToken:观测云自动生成的 Client Token。
  • env:环境标识,建议生产为 prod
  • service:前端服务名,建议使用 fanwei-e9-web
  • version:版本号,例如 1.0.0
  • sessionSampleRate:会话采样率。
  • sessionReplaySampleRate:会话回放采样率。
  • traceType:链路追踪类型,建议与后端兼容,例如 ddtrace

三、前后端链路关联

如果希望从前端 RUM 请求跳转到后端 APM Trace,需要同时满足:

  • 后端已接入 Java APM。
  • 前端 RUM SDK 已开启链路追踪。
  • traceType 使用与后端兼容的类型,例如 ddtrace
  • allowedTracingOrigins 中加入泛微 E9 后端接口域名。
  • 前端访问的接口能够携带链路追踪 Header。
  • 后端 Java Agent 能接收并继续传递 Trace 上下文。

如果泛微 E9 是内网访问地址,也应将对应域名或 IP 加入允许列表。

总结

通过本次接入,后端无需改造业务代码即可完成 Java APM 链路采集,前端可同步采集页面加载、资源请求、接口请求、JS 错误及会话回放等数据,实现从用户访问体验到后端服务调用链路的全流程追踪。针对页面加载慢、业务流程慢、接口异常等问题,可更快速定位原因并提升排障效率。同时,本次接入将沉淀形成标准化实施步骤,便于后续复制推广至测试、生产及其他泛微 E9 环境。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值