##
ZCM平台默认植入iTracing Agent 实现调用链自动上报, 对应用发布者透明。自动上报的前提是基础镜像规范化,应用发布者需要使用ZCM提供的2个基础镜像来构建应用,如下:
10.45.80.1/public/centos7-java-base:openjdk1.8.0.151
10.45.80.1/public/centos7_java8_tomcat8_base:8.0.35
对于java基础应用使用第一个基础镜像,对于web类应用使用第二个基础镜像。
##
iTracing 通过环境变量 APM_INIT
作为功能开关,取值为apm.sh
脚本地址,容器启动时,会检测该环境变量,如果有值,则从对应地址下载脚本并执行,如果没有值,则代表功能关闭。
默认情况,所有应用会共用租户级环境变量配置,配置路径:ZCM Portal > 基础设施 > 租户管理
,如下图所示,可以对此值进行修改和删除操作:
###
租户级是全局开关,如果要进行项目级别开关,只需要修改项目环境变量,覆盖租户级环境变量即可。
###
应用日志采集文件方式接入iLog,无需主动上报,应用只需通过Docker 标签申明日志路径即可。iLog 会监听容器事件,自动采集并上报。
1.Dockerfile 声明日志路径
1 | VOLUME /zcm/logs |
注:/zcm/logs为例,需要根据实际情况申明挂载,例如:/root/logs 等。
2.Dockerfile 声明日志文件,支持通配符"*"
1 | LABEL zcm.logs.myapp="/zcm/logs/ *.log" |
注:语法是,LABEL zcm.logs.xxx=”/xxx/xxx” , xxx 根据实际情况填写。
3.可以申明多组日志,如:
LABEL zcm.logs.myapp1="/zcm/logs1/ *.log"
LABEL zcm.logs.myapp2="/zcm/logs2/ mon.log"
###
通过“日志贯穿”
,可以实现事务级上下文日志,并且支持调用链和日志上下文的双向关联。
iTracing 通过对logback
和 log4j
进行字节码干预,在日志输出时,利用MDC
机制,将调用链ID(TracdId) 注入到日志,TF9.0框架已统一处理格式,业务参照如下格式修改logback
即可。
1.引入框架 logback-base.xml
1 | <include resource="log/logback-base.xml" /> |
2.修改自定义logger的pattern
1 | <appender name="APP_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender"> |