接入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的调用链信息。
操作流程
- 部署nuwa trace agent:部署nuwa trace agent,用于调用链日志记录埋点,即通过修改业务java程序的字节码实现。 部署成功后会生成/opt/huawei/apps/common/nuwa-tracer目录。
- 为业务进程添加启动参数:业务运行进程中,需包含如下所示的javaagent启动参数。
-javaagent:/opt/huawei/apps/common/nuwa-tracer/nuwa-tracer-javaagent.jar=微服务名
容器场景接入nuwa trace agent
- 部署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
- 使用nuwa sdk
- 为业务进程添加启动参数。
- 带nuwa sdk或tomcat的nuwa基础镜像
修改iac3.0 环境变量文件(如envs.yaml),参考如下:
- name: tracer_agent_switch value: 'on'
- 不带nuwa sdk的nuwa基础镜像
检查启动参数是否添加成功,通过ps -ef | grep nuwa-tracer检查其javaagent参数是否存在。
- 带nuwa sdk或tomcat的nuwa基础镜像
虚拟机场景接入nuwa trace agent
- 部署nuwa trace agent,将nuwa trace部署包部署到服务器。
- iac部署
- 在微服务的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"); } } } - 将如下步骤添加到业务部署步骤之中,确保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 // 其他步骤 ) ... } - 在业务的部署模板中添加步骤,使用nuwa-tracer-install部署包进行nuwa tracer安装,如创建部署模板所示,部署包选择“nuwa-tracer-install”。需在业务部署步骤前,可置于第一步,并设置正确的业务领域(business_scope)、集群名(cluster_name)和nuwa trace agent安装版本(agent_version)。
- 在微服务的iac tfdefinition中增加nuwa trace部署步骤定义step_install-nuwa-tracer。
- 非iac部署
- 访问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
- 将agent解压到/opt/huawei/apps/common/nuwa-tracer/
- 修改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地址
- 访问https://obs环境域名/wisecloudtraceservice/nuwa trace agent版本号,下载nuwa trace agent,其中obs环境域名及nuwa trace agent版本号信息请参见表1。
- iac部署
- 为业务进程添加启动参数。
- 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 -------------------------------
- nuwa框架(nuwa sdk版本 >=3.0.2.101)开发的微服务
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨