【问题标题】:Elastic Cloud APM not showing logs in Transactions PageElastic Cloud APM 未在事务页面中显示日志
【发布时间】:2022-01-05 21:32:09
【问题描述】:
是什么让 Kibana 在“日志”选项卡下的 APM“事务”页面中不显示 docker 容器日志。
我验证日志已成功生成,并带有关联的“trace.id”以进行正确链接。
我通过 docker-compose 拥有完全相同的环境和配置 (7.16.2),并且运行良好。
无法弄清楚为什么此功能在本地有效,但未在 Elastic Cloud 部署中显示。
更新解决方案:
我刚刚解决了这个问题。
它与 Filebeat 版本有关。
从 7.16.0 开始,事务/日志链接停止工作。
将 Filebeat 恢复到 7.15.2 版本,它又开始工作了。
【问题讨论】:
标签:
elasticsearch
amazon-elastic-beanstalk
kibana
elastic-apm
elastic-cloud
【解决方案1】:
例如,如果您不使用文件节拍 - 我们推出了自己的日志记录实现,以使用 Bulk API 从队列中批量发送日志。
我们有自己的“ElasticLog”类,然后使用属性来匹配日志流的logs-* Schema。
特别是我们必须确保 trace.id 与实际的 Traces trace.id 属性相同。然后日志开始显示在这里(有时确实需要几分钟)
有关如何获取 ID 的更多信息
我们对 Traces 使用 OpenTelemetry 导出器,对 Logs 使用 ILoggerProvider。相互独立的触发批次。
我们在类实例化时将 Trace Id 填充为默认值。这样你就在Activity的上下文中了。还有助于在创建日志时准确设置时间戳。
此LogEntry 然后被传递到 ElasticLogger 处理器并如上所示映射到具有 ES 所需属性的 ElasticLog 条目