Вычисление сводки гистограмм

Материал из Документация Ключ-АСТРОМ
Принимать гистограммы напрямую

Начиная с версии Ключ-АСТРОМ 1.300, приём гистограмм поддерживается напрямую через API OTLP. Следовательно, нет необходимости использовать Collector в качестве обходного решения. Ключ-АСТРОМ рекомендует принимать гистограммы напрямую, без дополнительной обработки данных.

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

Предустановка

  • Один из следующих дистрибутивов Collector:
  • URL-адрес конечной точки API Ключ-АСТРОМ, на которую следует экспортировать данные.
  • Токен API с соответствующей областью доступа (требуется только для SaaS и АктивногоШлюза)

Информацию о настройке Collector с использованием указанной ниже конфигурации см. в разделах Развертывание коллектора и Конфигурация коллектора.

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

receivers:

  otlp:

    protocols:

      grpc:

        endpoint: 0.0.0.0:4317

      http:

        endpoint: 0.0.0.0:4318

processors:

  transform:

    metric_statements:

      - context: metric

        statements:

          # Get count from the histogram. The new metric name will be <histogram_name>_count

          - extract_count_metric(true) where type == METRIC_DATA_TYPE_HISTOGRAM

          # Get sum from the histogram. The new metric name will be <histogram_name>_sum

          - extract_sum_metric(true) where type == METRIC_DATA_TYPE_HISTOGRAM

          # convert the <histogram_name>_sum metrics to gauges.

          - convert_sum_to_gauge() where IsMatch(name, ".*_sum")

  filter:

    metrics:

      metric:

        # Drop metrics of type histogram. The _count and _sum metrics will still be exported.

        - type == METRIC_DATA_TYPE_HISTOGRAM

exporters:

  otlphttp:

    endpoint: ${env:DT_ENDPOINT}

    headers:

      Authorization: "Api-Token ${env:DT_API_TOKEN}"

service:

  pipelines:

    metrics:

      receivers: [otlp]

      processors: [transform,filter]

      exporters: [otlphttp]

Компоненты

Для нашей конфигурации мы настраиваем следующие компоненты.

Приемники

В разделе receivers мы указываем стандартный приемник otlp в качестве активного компонента приемника для нашего экземпляра Collector и настраиваем его на прием запросов OTLP по gRPC и HTTP.

Процессоры

В разделе processors мы настраиваем следующие два экземпляра процессора:

  • transform, чтобы вычислить желаемую сумму и количество значений гистограмм:
    • Сначала мы используем функцию extract_count_metric для вычисления количества значений в каждом блоке гистограммы.
    • Затем мы используем функцию extract_sum_metric для вычисления общей суммы всех ее значений и преобразуем ее в калибровку с помощью convert_sum_to_gauge.
  • filter, чтобы удалить существующие сегменты гистограммы (на основе type) и избежать сообщений об ошибках, связанных с гистограммой.

При такой конфигурации Collector удаляет метрики гистограммы и создает вместо них две новые метрики для суммы и количества элементов каждой соответствующей гистограммы.

Экспортеры

В разделе exporters мы указываем экспортер otlphttp по умолчанию и настраиваем его с помощью URL-адреса нашего API Ключ-АСТРОМ и требуемого токена аутентификации.

Для этой цели мы устанавливаем следующие две переменные среды и ссылаемся на них в значениях конфигурации для endpointи Authorization:

  • DT_ENDPOINT содержит базовый URL-адрес конечной точки API Ключ-АСТРОМ (например, https://{your-environment-id}.live.dynatrace.com/api/v2/otlp)
  • DT_API_TOKEN содержит токен API

Сервисные контейнеры

В разделе service мы собираем наши объекты приемника и экспортера в метрический контейнер и включаем два процессора, ссылаясь на них в разделе processors.