使用 spring-boot-sleuth 将跟踪发送到 Datadog

Send traces with spring-boot-sleuth to Datadog

我有 spring-boot 应用程序,它具有以下依赖项:

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.cloud:spring-cloud-starter-sleuth'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
implementation "com.datadoghq:dd-java-agent:0.75.0"
annotationProcessor "com.datadoghq:dd-java-agent:0.75.0"
testImplementation 'org.springframework.boot:spring-boot-starter-test'}

bootRun {
   jvmArgs = ["-javaagent:" + configurations.runtimeClasspath.files.find { f -> f.path.contains('dd-java-agent') }.path]
}

我在容器中执行Datadog代理并在那里配置它(KEY, ENV)。

当我使用 dd-trace 中的 API(如 datadog.trace.api.Trace)时,我可以在 Datadog 中看到跟踪。但是当我使用 sleuth API 创建 spans/tags/events 时,我看不到痕迹。

是否可以使用 sleuth API 通过 Datadog 代理向 Datadog 发送跟踪?如果是,我需要做什么?

Spring Cloud Sleuth 支持两个跟踪库:

  • Brave:OpenZipkin 的跟踪库(Sleuth 默认使用它)
  • OpenTelemetry:您需要添加 Sleuth-OTel,但它在孵化器中,因此不推荐在生产中使用,而且 OpenTelemetry Java 仍处于 alpha

您可以做几件事: