j9九游会登录/ 应用平台 appstage/ / / 接入nuwa trace agent
更新时间:2025-06-27 gmt 08:00

接入nuwa trace agent-j9九游会登录

使用javaagent方式接入nuwa trace agent,采集调用链类数据及指标类数据,数据保留期为7天,并按小时和天级进行聚合存储到mppdb中,保存6个月。本章节介绍如何使用javaagent方式接入nuwa trace agent,接入后可以在“agent管理”页面查看已接入的nuwa trace agent信息。

前提条件

已获取访问密钥,具体请参见新增访问密钥

约束与限制

  • 仅支持java开发的微服务。
  • 不支持与其他javaagent的调用链一起集成。 在集成nuwa trace前,需要删除其他调用链的javaagent参数。可以检查业务的java进程参数,是否有多个javaagent的调用链信息。

操作流程

  1. 部署nuwa trace agent:部署nuwa trace agent,用于调用链日志记录埋点,即通过修改业务java程序的字节码实现。 部署成功后会生成/opt/huawei/apps/common/nuwa-tracer目录。
  2. 为业务进程添加启动参数:业务运行进程中,需包含如下所示的javaagent启动参数。
    -javaagent:/opt/huawei/apps/common/nuwa-tracer/nuwa-tracer-javaagent.jar=微服务名

容器场景接入nuwa trace agent

  1. 部署nuwa trace agent。
    • 使用nuwa sdk

      使用3.0.3.101及以上版本的nuwa基础镜像,已内置trace agent,无需再部署。由于nuwa基础镜像版本发布节奏与nuwa trace不一致,因此并不是每一个trace版本都有一个对应的镜像版本。推荐选择最新的镜像版本。

    • 不使用nuwa sdk

      推荐在docker构建阶段安装agent,参考脚本如下:

      # 构建脚本
      wget https://xxx/xx/xx.zip  下载agent
      packagename=$(ls nuwa-tracer-javaagent*.zip)
      mkdir nuwa-tracer
      unzip ${packagename} -d nuwa-tracer
      # dockerfile脚本 需要将trace agent copy到镜像中
      copy --chown=1001:2001 nuwa-tracer /opt/huawei/apps/common/nuwa-tracer
  2. 为业务进程添加启动参数。

    检查启动参数是否添加成功,通过ps -ef | grep nuwa-tracer检查其javaagent参数是否存在。

虚拟机场景接入nuwa trace agent

  1. 部署nuwa trace agent,将nuwa trace部署包部署到服务器。
    • iac部署
      1. 在微服务的iac tfdefinition中增加nuwa trace部署步骤定义step_install-nuwa-tracer。
        locals {
          step_install-nuwa-tracer = {
            name = "install-nuwa-tracer"
            playbook = "playbook/common/nuwa-tracer-install/1.0.9"
            inputs = {
              agent_scope = "nuwa"  # agent所在领域,固定为nuwa
              business_scope = var.scope_name  # 业务所在领域
              cluster_name = var.cluster_name  # 集群名
              # nuwa trace agent版本见releasenotes: https://console.wisedevops.huawei.com/operation/doc/000007003/999116103324041094
              agent_version = "1.0.18.100"  # nuwa trace agent版本,请修改为所需安装的版本
              # 应用市场接入研发镜像环境需设置agent_conf_version = "1.0.2.101.mirror", 其他业务或环境无需设置(使用默认值为"1.0.2.101");
            }
          }
        }
      2. 将如下步骤添加到业务部署步骤之中,确保nuwa trace在业务进程启动前已完成部署。该步骤没有其他依赖,可在deploy_steps第一步执行。
        module "cluster" {
         source = "http://registry/tfdefinition/resource/legacymicroservicecluster/1.0"
         ...
         deploy_steps = concat(
           var.install_nuwa_tracer ? [local.step_install-nuwa-tracer] : [],
           xxx // 其他步骤
         )
         ...
        }
      3. 在业务的部署模板中添加步骤,使用nuwa-tracer-install部署包进行nuwa tracer安装,如创建部署模板所示,部署包选择“nuwa-tracer-install”。需在业务部署步骤前,可置于第一步,并设置正确的业务领域(business_scope)、集群名(cluster_name)和nuwa trace agent安装版本(agent_version)。
    • iac部署
      1. 访问https://obs环境域名/wisecloudtraceservice/nuwa trace agent版本号,下载nuwa trace agent,其中obs环境域名及nuwa trace agent版本号信息请参见表1
        表1 参数信息说明

        运维中心环境

        obs环境域名

        nuwa trace agent版本号

        中国区

        appstage-wiseeye-fuxirelase-cnnorth4.obs.cn-north-4.myhuaweicloud.com

        24.11.0/24.11.300.12051711/nuwa-tracer-javaagent_24.11.0.zip

      2. 将agent解压到/opt/huawei/apps/common/nuwa-tracer/
      3. 修改config/nuwa-tracer.properties、 config/tracer-credential.properties配置。
        config/nuwa-tracer.properties配置
        # config/tracer-credential.properties
        master.address=https://tracer-config.huawei.com:21255 # 调用链配置管理微服务地址
        collector.address=wss://collector-server.huawei.com:21156 # 调用链数据采集微服务地址
        agent.basic.metric.enable=true
        agent.enable=true
        basic.trace.debug.enable=false
        sts.config.path=                     # 如果sk使用acms加密,需要配置sts密钥ini文件绝对路径
        sts.cert.path=/opt/huawei/certs/
        ###########################################################
        # tomcat config                                           #
        ###########################################################
        tomcat.exclude.url=/**/*.css,/**/*.jpg,/**/*.png,/**/*.js,/**/*.html
        ###########################################################
        # kafka config                                           #
        ###########################################################
        plugin.kafka.header.enable=false
        config/tracer-credential.properties配置
        access.key=     # 访问密钥ak值,无需加密保存
        secret.key=    # 访问密钥secret值,建议加密保存
        decrypt.classname=     # 自定义secret解密算法类路径
        decrypt.methodname=    # 自定义secret解密算法的方法名称
        sts.server.domain=    # 如果使用acms加密secret,需要配置acms sts server地址
  2. 为业务进程添加启动参数。
    • nuwa框架(nuwa sdk版本 >=3.0.2.101)开发的微服务

      已默认集成所需的启动项,业务只需要在启动脚本bin/start.sh中增加开启调用链的开关和微服务名参数,参考如下:

      export tracer_agent_switch="on"
      export tracer_microservice_name="微服务名"
      # 如果一个vm部署有多个进程同时接入nuwa tracer(如多个微服务合设到一个vm,或一个微服务含多个实例),需显式地设置tracer_cluster_name集群名以区分,其他情况不要打开。
      # export tracer_cluster_name="集群名"   #仅需要时才打开,正常从部署参数获取,一般不需要显示设置。
    • 非nuwa框架开发的微服务或nuwa框架(nuwa sdk版本 <3.0.2.101)开发的微服务

      在业务的启动脚本(如bin/start.sh)中增加-javaagent参数,参考如下:

      # ----------------- nuwa tracer begin-----------------------------
      # - tracer_agent_switch 开关,on表示启用tracer
      # - tracer_microservice_name 微服务名称
      tracer_agent_switch="on"
      # 修改成业务的微服务
      tracer_microservice_name="微服务名"
      # 如果一个vm部署有多个进程同时接入nuwa tracer(如多个微服务合设到一个vm,或一个微服务含多个实例),需显式地设置tracer_cluster_name集群名以区分,其他情况不要打开。
      # tracer_cluster_name="集群名"   #仅需要时才打开,正常从部署参数获取,一般不需要显示设置。
      tracer_agent_jar="/opt/huawei/apps/common/nuwa-tracer/nuwa-tracer-javaagent.jar"
      if [ "x$tracer_agent_switch" = "xon" ]; then
          #用来检查nuwa tracer的jar包是否存在,jar包存在才能添加启动参数。
          if [ ! -f $tracer_agent_jar ]; then
              echo "nuwa tracer agent jar can't be found!"
          elif [ "x$tracer_microservice_name" = "x" ]; then
              echo "nuwa tracer agent switch is on, but tracer_microservice_name is not set"
          else
              tracer_agent_args=$tracer_microservice_name
              if [ "x$tracer_cluster_name" != "x" ]; then
                  tracer_agent_args="$tracer_agent_args,$tracer_cluster_name"
              fi
              tracer_agent_param="-javaagent:$tracer_agent_jar=$tracer_agent_args"
              echo "nuwa tracer agent switch is on, and tracer_agent_param is $tracer_agent_param"
              #添加java_opts到进程启动参数。启动后,通过 ps -ef | grep nuwa-tracer 命令,查看配置是否生效
              export java_opts=$tracer_agent_param
          fi
      else
          echo "nuwa tracer agent switch is off!"
      fi
      # ----------------- nuwa tracer end -------------------------------

相关文档

网站地图