##
ZCM平台默认植入iTracing Agent 实现调用链自动上报, 对应用发布者透明。自动上报的前提是基础镜像规范化,应用发布者需要使用ZCM提供的2个基础镜像来构建应用,如下:
10.45.80.1/public/centos7-java-base:openjdk1.8.0.15110.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"> |