• Русский
  • Настройка метрик для стека мониторинга

    OpenTelemetry Collector можно интегрировать со стеком мониторинга платформы, чтобы экспортировать собственные операционные метрики через Prometheus. Как администратор кластера, вы можете настроить эту интеграцию для выполнения следующих задач:

    • Автоматически создавать ресурсы Prometheus ServiceMonitor, которые собирают как внутренние метрики pipeline Collector, так и любые настроенные endpoints Prometheus exporter.
    • Использовать receiver Prometheus внутри Collector для получения метрик из встроенной инфраструктуры мониторинга кластера.

    Отправка метрик в стек мониторинга

    Пользовательский ресурс (CR) OpenTelemetryCollector поддерживает автоматическое создание ресурсов Prometheus ServiceMonitor или PodMonitor. Эти ресурсы указывают стеку мониторинга собирать метрики как с внутреннего telemetry endpoint Collector, так и с любых endpoints Prometheus exporter, определенных в pipeline.

    Включение автоматического создания ServiceMonitor

    Когда вы включаете параметр enableMetrics в CR Collector, сборка Alauda OpenTelemetry v2 Operator автоматически подготавливает необходимые ресурсы ServiceMonitor или PodMonitor для сбора метрик.

    В следующем примере показан CR Collector, настроенный с Prometheus exporter и включенным автоматическим сбором метрик:

    apiVersion: opentelemetry.io/v1beta1
    kind: OpenTelemetryCollector
    metadata:
      labels:
        prometheus: kube-prometheus
    spec:
      mode: deployment
      replicas: 1
      observability:
        metrics:
          enableMetrics: true
      config:
        exporters:
          prometheus:
            endpoint: 0.0.0.0:8889
            resource_to_telemetry_conversion:
              enabled: true # по умолчанию атрибуты resource отбрасываются
        service:
          telemetry:
            metrics:
              readers:
              - pull:
                  exporter:
                    prometheus:
                      host: 0.0.0.0
                      port: 8888
                      without_scope_info: true
                      without_type_suffix: true
                      without_units: true
          pipelines:
            metrics:
              exporters: [prometheus]
    1. prometheus=kube-prometheus требуется в ACP prometheus.
    2. Позволяет Operator автоматически создавать ресурсы ServiceMonitor или PodMonitor, которые нацелены на endpoints метрик Collector, включая как внутреннее telemetry, так и порты Prometheus exporter.
    NOTE

    Включение enableMetrics приводит к созданию двух отдельных ресурсов ServiceMonitor:

    • ServiceMonitor, нацеленный на сервис <instance_name>-collector-monitoring, который собирает собственные внутренние операционные метрики Collector.
    • ServiceMonitor, нацеленный на сервис <instance_name>-collector, который собирает метрики, публикуемые любым Prometheus exporter, настроенным в pipeline.

    Использование пользовательского PodMonitor

    В сценариях, где требуется более детальный контроль над сбором метрик, например для фильтрации дублирующихся меток, добавляемых при Prometheus scraping, можно создать ресурс PodMonitor вручную вместо использования автоматического создания ServiceMonitor.

    В следующем примере показан PodMonitor, который нацелен на pods Collector и применяет правила relabeling для удаления избыточных меток:

    apiVersion: monitoring.coreos.com/v1
    kind: PodMonitor
    metadata:
      labels:
        prometheus: kube-prometheus
      name: otel-collector
    spec:
      selector:
        matchLabels:
          app.kubernetes.io/name: <cr_name>-collector
      podMetricsEndpoints:
      - port: metrics
      - port: promexporter
        relabelings:
        - action: labeldrop
          regex: pod
        - action: labeldrop
          regex: container
        - action: labeldrop
          regex: endpoint
        metricRelabelings:
        - action: labeldrop
          regex: instance
        - action: labeldrop
          regex: job
    1. prometheus=kube-prometheus требуется в ACP prometheus.
    2. Должно соответствовать имени вашего CR OpenTelemetry Collector по шаблону <cr_name>-collector.
    3. Порт, через который экспортируются внутренние операционные метрики Collector. Этот порт всегда называется metrics.
    4. Порт, через который экспортируются метрики из Prometheus exporter, настроенного в pipeline Collector.