使用 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
您可以做几件事:
- Datadog 似乎通过 OTel 收集器支持以上两种方式:see the docs how to set it up
- 有个zipkin to datadog proxy
- 有个zipkin-datadog reporter
- 您可以为 Sleuth 编写自己的代码,请参阅:https://github.com/spring-cloud/spring-cloud-sleuth/issues/707
- 您可以要求 Datadog 添加对 Zipkin 格式的“原生”支持:https://github.com/DataDog/dd-trace-java/issues/351
我有 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
您可以做几件事:
- Datadog 似乎通过 OTel 收集器支持以上两种方式:see the docs how to set it up
- 有个zipkin to datadog proxy
- 有个zipkin-datadog reporter
- 您可以为 Sleuth 编写自己的代码,请参阅:https://github.com/spring-cloud/spring-cloud-sleuth/issues/707
- 您可以要求 Datadog 添加对 Zipkin 格式的“原生”支持:https://github.com/DataDog/dd-trace-java/issues/351