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

    banner-1.png

    背景

    泛微 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 环境。

    联系我们

    加入社区

    微信扫码
    加入官方交流群

    立即体验

    在线开通,按量计费,真正的云服务!

    立即开始

    选择观测云版本

    代码托管平台