Отправьте следы с помощью Spring-Boot-сыщика в Datadog

У меня есть приложение с весенней загрузкой, и у него следующие зависимости:

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).

Когда я использую API из dd-trace (например, datadog.trace.api.Trace), я вижу следы в Datadog. Но когда я использую sleuth API для создания промежутков / тегов / событий, я не вижу следов.

Можно ли использовать Sleuth API для отправки трассировки в Datadog через агент Datadog? Если да, что мне для этого нужно сделать?


person sergio    schedule 04.06.2021    source источник


Ответы (1)


Spring Cloud Sleuth поддерживает две библиотеки трассировки:

  • Brave: библиотека трассировки OpenZipkin (Sleuth использует ее по умолчанию)
  • OpenTelemetry: вам нужно добавить Sleuth-OTel, но он находится в инкубаторе, поэтому не рекомендуется в производстве, также OpenTelemetry Java все еще находится в альфа-версии

Вы можете сделать следующее:

person Jonatan Ivanov    schedule 05.06.2021
comment
Спасибо, @Jonatan Ivanov! Мне удалось отправить следы настройки Sleuth + Zipkin в сборщик OTel (экспортер DataDog). Но когда я пытаюсь использовать Sleuth-OTel, он не отправляет следы сборщику OTel. Я вижу ошибку в журнале: [nio-8080-exec-3] t.p.B3PropagatorExtractorMultipleHeaders: Invalid TraceId in B3 header: null '. Возврат НЕВЕРНОГО контекста диапазона. Можно ли также отправить с помощью Sleuth-OTel java Metrics? - person sergio; 09.06.2021
comment
@sergio Исходя из этого, я действительно не знаю, в чем проблема, вы можете проверить образцы Sleuth-OTel, они должны работать. Также обратите внимание, что мы не рекомендуем использовать Sleuth-OTel в производстве (см. Выше: он еще нестабилен, потому что OTel еще нестабилен). Sleuth - это распределенная библиотека трассировки, она не поддерживает метрики. Micrometer - это библиотека, которую вы можете использовать для записи и отправки метрик. У OTel Metrics нет даже выпущенной спецификации, поэтому вы не сможете использовать ее в данный момент. - person Jonatan Ivanov; 10.06.2021