您可以在Python应用的业务日志中关联调用链的TraceId信息,从而在应用出现问题时,能够通过调用链的TraceId快速关联到业务日志,及时定位、分析并解决问题。
前提条件
已通过日志服务SLS完成日志采集,具体操作,请参见数据采集概述。
背景信息
ARMS在业务日志中关联调用链TraceId的功能是基于对日志框架的埋点,目前支持Python官方日志框架Logging。
开启关联业务日志与TraceId开关
登录ARMS控制台,在左侧导航栏选择 。
在应用列表页面顶部选择目标地域,然后单击目标应用名称。
说明语言列的图标含义如下:
:接入应用监控的Java应用。
:接入应用监控的Golang应用。
:接入应用监控的Python应用。
-:接入可观测链路 OpenTelemetry 版的应用。
在上方导航栏选择
。在自定义配置页签的应用日志关联配置区域,选择日志源为日志服务SLS,选择日志服务所在地域,然后绑定Project和Logstore。
配置Python探针。
设置如下环境变量,在探针中开启关联业务日志与TraceId功能。
# 默认为false OTEL_PYTHON_LOG_CORRELATION=true
说明环境变量OTEL_PYTHON_LOG_CORRELATION设置为true则开启关联业务日志与TraceId,不设置或设置为false则关闭业务日志与TraceId关联。
通过以下环境变量设置需要关联TraceId的业务日志级别。
# 设置需要关联traceId的日志级别,可选值为:debug、info、warning、error OTEL_PYTHON_LOG_LEVEL=warning
说明环境变量OTEL_PYTHON_LOG_LEVEL设置为warning则日志级别为warning及以上的日志会关联TraceId。
通过以下环境变量设置关联TraceId后的日志格式,您可以根据需求自行增减格式内容。
# 设置日志格式, 以下是默认格式。可以根据需求增减。 OTEL_PYTHON_LOG_FORMAT="%(asctime)s %(levelname)s [%(name)s] [%(filename)s:%(lineno)d] [trace_id=%(otelTraceID)s span_id=%(otelSpanID)s resource.service.name=%(otelServiceName)s trace_sampled=%(otelTraceSampled)s] - %(message)s"
otelTraceID:TraceId
otelSpanID:当前日志生成所属的SpanId
otelTraceSampled:采样标识
otelServiceName:应用名称
以上环境变量配置完成后,打印的日志格式如下。
(可选)配置SLS日志采集接入,将应用日志上传至上述步骤绑定的Project和Logstore中。
ARMS Python探针默认不会采集应用日志。