You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django Elastic APM Trace日志无消息、字段配置异常问题咨询

问题1:能否将message信息添加到transaction日志?

可以,需要先完成日志关联配置:

  • 确认你打的日志中已自动注入trace.id和transaction.id字段,你当前使用的APM LoggingHandler默认会在请求生命周期内的日志中添加这两个关联字段
  • 进入Kibana的APM设置页面,开启「日志关联」开关,同时配置你存储业务日志的索引模式(比如filebeat-*或你自定义的日志索引名)
    配置完成后,APM会自动匹配对应transaction ID的日志,message字段会同步展示在日志区块中。

问题2:能否将自定义字段添加到APM的日志展示区块?

可以,操作步骤如下:

  • 先确认你通过extra参数传递的自定义字段(如request.data、user_utc_time)已经正常写入ES的日志索引中
  • 进入Kibana APM设置的「日志列」配置项,把需要展示的自定义字段的完整字段名(如果有labels.之类的前缀需要写全)添加到展示列表,保存刷新后即可在日志区块看到对应字段。

问题3:有没有方法可以让APM日志区块的内容支持点击跳转,无需手动复制内容到Discover检索?

7.14版本默认支持该能力:
完成前面的日志关联配置后,APM日志区块的每条日志条目旁会出现跳转图标,点击即可直接跳转到Discover页面并自动过滤出对应日志条目,无需手动检索。如果未显示跳转图标,先确认当前账号有Discover的访问权限,且日志对应的索引模式已在Kibana中创建。

问题4:为什么配置的info、debug、warning等级的普通日志会被标记为Error,且被写入apm-7.14-error*索引?

这是你当前使用的elasticapm.contrib.django.handlers.LoggingHandler的默认设计导致的:
这个Handler的定位是收集异常错误事件上报到APM的错误面板,所有经过这个Handler的日志,无论日志级别是什么,都会被当做错误事件上报,写入apm-*-error索引。
如果要上报普通业务日志,不要使用这个Handler,推荐用标准FileHandler写日志文件后用Filebeat采集到ES,或使用ES官方的Python logging handler直接写入自定义日志索引,同时手动注入APM的trace.id和transaction.id字段即可实现和transaction的关联。


另外注意你的logging配置里有笔误:simple格式化器的配置中velname)s缺少百分号前缀,正确写法为%(levelname)s %(message)s,该笔误不影响本次APM相关问题,但会导致控制台日志输出异常。

内容的提问来源于stack exchange,提问作者roptok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 05:36:04