Трассировка
Модуль для сбора трассировка приложения по стандарту OpenTelemetry и экспорта трассировки по gRPC/HTTP в формате OTLP.
gRPC¶
Модуль позволяет собирать трассировку с помощью gRPC протокола посредствам GrpcSender
.
Зависимость build.gradle
:
Модуль:
Зависимость build.gradle.kts
:
Модуль:
HTTP¶
Модуль позволяет собирать трассировку с помощью HTTP протокола посредствам HttpSender
.
Зависимость build.gradle
:
Модуль:
Зависимость build.gradle.kts
:
Модуль:
Конфигурация¶
Обязательным полем является только endpoint
, аттрибуты из поля attributes
будут отправляться с каждым спаном.
Пример полной конфигурации, описанной в классе OpentelemetryGrpcExporterConfig
или OpentelemetryHttpExporterConfig
, а также OpentelemetryResourceConfig
(указаны примеры значений или значения по умолчанию):
tracing {
exporter {
endpoint = "http://localhost:4317" //(1)!
connectTimeout = "60s" //(2)!
exportTimeout = "3s" //(3)!
scheduleDelay = "2s" //(4)!
maxExportBatchSize = 512 //(5)!
maxQueueSize = 2048 //(6)!
batchExportTimeout = "30s" //(7)!
compression = "gzip" //(8)!
exportUnsampledSpans = false //(9)!
retry {
maxAttempts = 5 //(10)!
initialBackoff = "1s" //(11)!
maxBackoff = "5s" //(12)!
backoffMultiplier = 1.5 //(13)!
}
}
attributes { //(14)!
"service.name" = "example-service"
"service.namespace" = "kora"
}
}
- URL от OpenTelemetry коллектор сервиса (обязательный)
- Время ожидания соедининя с экспортером
- Максимальное время ожидания обработки телеметрии коллектором
- Время между экспортом телеметрии в коллектор
- Максимальная кол-во телеметрии в рамках одного экспорта
- Максимальный размер очереди неотправленной телеметрии
- Максимальное вреия ожидания экспорта
- Механизм сжатия телеметрии при экпорте
- Экспортировать ли не сэмплированную телеметрию
- Максимальное кол-во попыток на экспорт
- Начальное значение ожидания перед следующей попыткой экспорта
- Максимальное значение ожидания перед следующей попыткой экспорта
- Мультипликатор значения задержки ожидания
- Дополнительные атрибуты телеметрии
tracing:
exporter:
endpoint: http://localhost:4317 #(1)!
connectTimeout: 60s #(2)!
exportTimeout: 3s #(3)!
scheduleDelay: 2s #(4)!
maxExportBatchSize: 512 #(5)!
maxQueueSize: 2048 #(6)!
batchExportTimeout: 30s #(7)!
compression: gzip #(8)!
exportUnsampledSpans: false #(9)!
retry:
maxAttempts: 5 #(10)!
initialBackoff: 1s #(11)!
maxBackoff: 5s #(12)!
backoffMultiplier: 1.5 #(13)!
attributes: #(14)!
service.name: example-service
service.namespace: kora
- URL от OpenTelemetry коллектор сервиса (обязательный)
- Время ожидания соедининя с экспортером
- Максимальное время ожидания обработки телеметрии коллектором
- Время между экспортом телеметрии в коллектор
- Максимальная кол-во телеметрии в рамках одного экспорта
- Максимальный размер очереди неотправленной телеметрии
- Максимальное вреия ожидания экспорта
- Механизм сжатия телеметрии при экпорте
- Экспортировать ли не сэмплированную телеметрию
- Максимальное кол-во попыток на экспорт
- Начальное значение ожидания перед следующей попыткой экспорта
- Максимальное значение ожидания перед следующей попыткой экспорта
- Мультипликатор значения задержки ожидания
- Дополнительные атрибуты телеметрии
Параметры конфигурации сбора трассировки описываются в модулях в которых присутствует сбор трассировки, например HTTP сервер, HTTP клиент и т.д.
Императивная трассировка¶
Помимо автоматически создаваемых спанов вы можете пользоваться объектом Tracer
из контейнера.
Создать спан с текущим в parent можно следующим образом: