Вычисление сводки гистограмм
| Принимать гистограммы напрямую
Начиная с версии Ключ-АСТРОМ 1.300, приём гистограмм поддерживается напрямую через API OTLP. Следовательно, нет необходимости использовать Collector в качестве обходного решения. Ключ-АСТРОМ рекомендует принимать гистограммы напрямую, без дополнительной обработки данных. В следующем примере конфигурации показано, как использовать Collector для вычисления и сбора сводок по сегментам гистограммы, например, общей суммы всех значений в сегменте и их общего количества. |
Предустановка
- Один из следующих дистрибутивов Collector:
- Collector Ключ-АСТРОМ
- OpenTelemetry Core или Contrib
- Пользовательская версия Builder
- 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.