Шаблон розгортання — Агент

Надсилання сигналів до колекторів і звідти до бекендів

У моделі розгортання агентів сигнали телеметрії можуть надходити з

Сигнали надсилаються до екземпляра Collector, який працює разом із застосунком або на тому самому хості, наприклад, у вигляді sidecar або DaemonSet.

Кожен SDK на стороні клієнта або підлеглий (downstream) Колектор налаштовується з урахуванням адреси екземпляра Колектора:

Концепція децентралізованого розгортання колектора
  1. У застосунку SDK налаштований на надсилання даних OTLP до колектора.
  2. Колектор налаштований на надсилання даних телеметрії до одного або більше бекендів.

Приклад

У цьому прикладі шаблону розгортання агента почніть з ручного інструментування Java-застосунку для експорту метрик за допомогою OpenTelemetry Java SDK, включаючи стандартне значення OTEL_METRICS_EXPORTER, otlp. Далі налаштуйте експортер OTLP з адресою вашого колектора. Наприклад:

export OTEL_EXPORTER_OTLP_ENDPOINT=http://collector.example.com:4318

Далі налаштуйте колектор, що працює за адресою collector.example.com:4318, наступним чином:

receivers:
  otlp: # OTLP приймач, до якого застосунок надсилає трейси
    protocols:
      http:
        endpoint: 0.0.0.0:4318

exporters:
  otlp/jaeger: # Jaeger підтримує OTLP безпосередньо
    endpoint: https://jaeger.example.com:4317
    sending_queue:
      batch:

service:
  pipelines:
    traces/dev:
      receivers: [otlp]
      exporters: [otlp/jaeger]
receivers:
  otlp: # OTLP приймач, до якого застосунок надсилає метрики
    protocols:
      http:
        endpoint: 0.0.0.0:4318

exporters:
  prometheusremotewrite: # PRW експортер, для передачі метрик до бекенду
    endpoint: https://prw.example.com/v1/api/remote_write
    sending_queue:
      batch:

service:
  pipelines:
    metrics/prod:
      receivers: [otlp]
      exporters: [prometheusremotewrite]
receivers:
  otlp: # OTLP приймач, до якого застосунок надсилає логи
    protocols:
      http:
        endpoint: 0.0.0.0:4318

exporters:
  file: # File експортер, для передачі логів до локального файлу
    path: ./app42_example.log
    rotation:

service:
  pipelines:
    logs/dev:
      receivers: [otlp]
      exporters: [file]

Щоб докладно ознайомитися з цією схемою, див. приклади Java або Python.

Компроміси

Переваги:

  • Простий початок роботи
  • Чітке 1:1 зіставлення між застосунком та колектором

Недоліки:

  • Обмежена масштабованість для команд та інфраструктурних ресурсів
  • Негнучкість для складних або мінливих розгортань

Востаннє змінено December 26, 2024: [uk] Ukrainian documentation for OpenTelemetry (2a3c5648)