• Русский
  • Параметры конфигурации

    Архитектура OpenTelemetry Collector состоит из пяти основных типов компонентов, которые совместно обрабатывают данные телеметрии на протяжении всего их жизненного цикла:

    • Receivers: Компоненты, которые принимают данные телеметрии в Collector
    • Processors: Компоненты, которые преобразуют, фильтруют или обогащают данные по мере их прохождения по pipeline
    • Exporters: Компоненты, которые отправляют обработанные данные в backend-системы или целевые назначения
    • Connectors: Компоненты, которые связывают сегменты pipeline, выступая одновременно как exporters и receivers
    • Extensions: Необязательные компоненты, которые предоставляют вспомогательную функциональность без непосредственной обработки данных телеметрии

    Конфигурация компонентов

    Вы можете определить несколько экземпляров каждого типа компонента в YAML-файле custom resource. Однако, чтобы компоненты стали активными, их необходимо явно включить через определения pipeline в разделе spec.config.service.

    TIP

    В качестве рекомендации по лучшей практике включайте только те компоненты, которые вам действительно нужны. Это снижает потребление ресурсов и упрощает устранение неполадок.

    Пример конфигурации

    Следующий пример демонстрирует базовую конфигурацию OpenTelemetry Collector с OTLP receivers и несколькими exporters:

    apiVersion: opentelemetry.io/v1beta1
    kind: OpenTelemetryCollector
    metadata:
      name: cluster-collector
      namespace: tracing-system
    spec:
      mode: deployment
      replicas: 1
      observability:
        metrics:
          enableMetrics: true
      config:
        receivers:
          otlp:
            protocols:
              grpc: {}
              http: {}
        processors: {}
        exporters:
          otlp:
            endpoint: otel-collector-headless.tracing-system.svc:4317
            tls:
              ca_file: "/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt"
          prometheus:
            endpoint: 0.0.0.0:8889
            resource_to_telemetry_conversion:
              enabled: true # by default resource attributes are dropped
        service:
          pipelines:
            traces:
              receivers: [otlp]
              processors: []
              exporters: [otlp]
            metrics:
              receivers: [otlp]
              processors: []
              exporters: [prometheus]
    1. Компоненты, определенные в конфигурации, но не указанные в разделе service.pipelines, остаются неактивными. Чтобы компонент начал работать, его необходимо добавить как минимум в один pipeline.

    Параметры конфигурации

    В следующей таблице описаны основные параметры конфигурации, используемые Operator для определения OpenTelemetry Collector:

    ПараметрОписаниеЗначенияПо умолчанию
    receiversОпределяет, как данные поступают в Collector. Для корректной конфигурации в pipeline должен быть включен как минимум один receiver.otlp, jaeger, prometheus, zipkin, kafkaNone
    processorsОпределяет операции преобразования данных, применяемые между получением и отправкой. Processors необязательны.batch, memory_limiter, resourcedetection, attributes, span, k8sattributes, filter, routingNone
    exportersОпределяет назначения для обработанных данных. Для корректной конфигурации в pipeline должен быть включен как минимум один exporter.otlp, otlphttp, debug, prometheus, kafkaNone
    connectorsОпределяет компоненты, которые связывают пары pipeline, потребляя данные как exporters и выдавая их как receivers.spanmetrics, count, routing, forwardNone
    extensionsОпределяет необязательные компоненты для вспомогательных задач, не связанных с обработкой данных телеметрии.bearertokenauth, oauth2client, pprof, health_check, memory_ballast, zpagesNone
    service.pipelinesВключает компоненты, добавляя их в pipeline. Чтобы компонент стал активным, его необходимо указать здесь.N/ANone

    Конфигурация pipeline

    Pipeline определяются в разделе service.pipelines и задают поток данных телеметрии через Collector. Каждый тип pipeline (traces, metrics, logs) может иметь собственный набор receivers, processors и exporters.

    Пример конфигурации pipeline:

    service:
      pipelines:
        traces:
          receivers: [otlp, jaeger]
          processors: [batch, memory_limiter]
          exporters: [otlp, debug]
        metrics:
          receivers: [otlp, prometheus]
          processors: [batch]
          exporters: [prometheus]
        logs:
          receivers: [otlp]
          processors: [batch]
          exporters: [otlp]

    Каждый pipeline независимо обрабатывает свой тип телеметрии, что позволяет настраивать различную логику обработки для traces, metrics и logs в соответствии с вашими требованиями к observability.