2

好的,我花了一些时间弄清楚如何配置东西以在日志中包含 DataDog 跟踪 ID,但无法让它工作。要清楚我正在寻找的是在日志消息中查看跟踪 ID,就像添加spring-cloud-starter-sleuth到类路径一样,自动配置 Slf4j/Logback 以在日志消息中显示跟踪 ID。

我开始的地方:

  1. 我们有一个简单的 web spring boot 应用程序作为 Docker 容器运行,部署为 AWS Elastic BeansTalk,其日志转到 CloudWatch,我们在那里读取它们。
  2. 我们将 DataDog 作为 Java 代理(因此 pom.xml 中没有依赖项)
  3. 我们的依赖项列表中有 SLF4J/Logback。
  4. 没有其他相关的依赖(如dd-trace-ot或任何opertracing库)

到目前为止我做了什么:

  1. 我在 SO 上发现添加opentracing-spring-cloud-starter会自动添加日志集成。但我无法让它工作。
  2. 在 DD 网站上,它说配置模式足以查看 ID,但在我们的例子中它不起作用。(是因为我们的日志没有 JSON 吗?)。此外,添加dd-trace-ot没有帮助。

笔记:

  1. 我们无法切换到 JSON 日志。
  2. 我们不能切换到任何其他库(例如 Slueth)。
  3. 我们不能离开 CloudWatch。

有人能告诉我究竟需要如何配置应用程序才能在日志消息中查看跟踪 ID?我可以查看任何文档或示例吗?

4

2 回答 2

1

From the documentation, if you don't have JSON logs, you need to include dd.trace_id and dd.span_id in your formatter:

If your logs are raw formatted, update your formatter to include dd.trace_id and dd.span_id in your logger configuration:

<Pattern>"%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L -
%X{dd.trace_id:-0} %X{ dd.span_id:-0} - %m%n"</Pattern> ```

So if you add %X{dd.trace_id:-0} %X{ dd.span_id:-0}, it should work.

于 2020-05-21T07:55:37.460 回答
1

您是否有能力在发送的日志中添加一些参数。从文档中,您应该能够以 Datadog 将解释它们的方式将跟踪 ID 注入您的日志中。

您还可以查看解析器以从原始日志中提取跟踪 ID 和跨度 ID。该文档应该可以帮助您解决这个问题。

于 2019-10-24T19:47:27.960 回答