Infinite Tracing
Infinite tracing
Заголовок раздела «Infinite tracing»Infinite Tracing — это подход к распределенной трассировке, который использует tail-based сэмплирование для оптимизации анализа и управления объемом данных.
Tail-based сэмплирование — это метод отбора данных, направленный на сохранение более значимых или интересных транзакций, в отличие от head-based сэмплирования, где данные выбираются произвольно с фиксированной вероятностью. Этот подход специально оптимизирует хранение и анализ таких транзакий, как длительные процессы или ошибки.
Для реализации Infinite Tracing в GMONIT мы используем OpenTelemetry Collector и специальный tail_sampling процессор.
Настройка
Заголовок раздела «Настройка»Помимо GMONIT collector’а нам понадобится дистрибутив otelcollector от GMONIT настроенный следующим образом:
- добавьте в
compose.ymlследующий сервис
services:... otelcollector: image: cr.yandex/crpih7d63vpcj5dfn8jj/otelcollector:master command: [ "--config=/etc/otelcol-config.yml" ] environment: GMONIT_API_URL: http://collector:8080/otlp volumes: - ./otelcollector/otelcol-config.yml:/etc/otelcol-config.yml...otelcol-config.ymlдолжен выглядеть следующим образом
receivers: nrinfinitetracing: secret_token: ${SECRET_TOKEN} # тот же самый что и в GMONIT collector grpc: endpoint: "0.0.0.0:4317" transport: "tcp"
processors: tail_sampling: policies: # см. ссылку выше для более точной настройки # у нас пока нет экспертизы какой конкретно алгоритм сэмплинга # должен быть - name: test-policy type: always_sample
exporters: otlphttp/gmonit: tls: insecure: true endpoint: ${GMONIT_API_URL} encoding: json
service: pipelines: traces: receivers: - nrinfinitetracing processors: - tail_sampling exporters: - otlphttp/gmonit