Справка о источнике данных Prometheus: различия между версиями

Материал из Документация Ключ-АСТРОМ
(Новая страница: «Это общее описание файла '''YAML''' расширения на основе источника данных '''Prometheus''' и способо...»)
(нет различий)

Версия 21:01, 23 июня 2025

Это общее описание файла YAML расширения на основе источника данных Prometheus и способов объявления метрик и измерений, которые вы хотели бы собирать с помощью вашего расширения.

Область действия данных

Создайте список конечных точек Prometheus, на которые вы хотели бы ссылаться в своем расширении, а также значений метрик и измерений.

В нашем примере мы создаем простое расширение, собирающее метрики Rabbit MQ.

name: com.dynatrace.extension.prometheus-rabbitmq

version: 1.0.0

minDynatraceVersion: '1.236'

author:

  name: Dynatrace

dashboards:

  - path: 'dashboards/dashboard_exporter.json'

alerts:

  - path: 'alerts/alert_socket_usage.json'

# Extension based on official rabbitmq prometheus exporter available metrics

# list of metrics visible here https://github.com/rabbitmq/rabbitmq-server/blob/master/deps/rabbitmq_prometheus/metrics.md

prometheus:

  - group: rabbitmq metrics

    interval:

      minutes: 1

    featureSet: all

    dimensions:

      - key: rabbitmq

        value: const:rabbitmq

    subgroups:

      # global counters

      - subgroup: rabbitmq global counter

        dimensions:

          - key: global_counters

            value: const:global_counters

        metrics:

          - key: com.dynatrace.extension.prometheus-rabbitmq.global.global_messages_acknowledged_total

            value: metric:rabbitmq_global_messages_acknowledged_total

            type: count

            featureSet: global

          - key: com.dynatrace.extension.prometheus-rabbitmq.global.global_messages_confirmed_total

            value: metric:rabbitmq_global_messages_confirmed_total

            type: count

            featureSet: global

          - key: com.dynatrace.extension.prometheus-rabbitmq.global.global_messages_delivered_consume_auto_ack_total

            value: metric:rabbitmq_global_messages_delivered_consume_auto_ack_total

            type: count

            featureSet: global

Определение области мониторинга Prometheus начинается с узла YAML prometheus. Все настройки в узле относятся к объявленному типу источника данных (в данном случае Prometheus).

Размеры

Для каждого уровня (группы, подгруппы) можно определить до 25 измерений (что дает в общей сложности 50 измерений на метрику).

Размерный ключ

Строка ключа измерения должна соответствовать протоколу приема метрик.

Значение размера

Для определения измерений ваших показателей можно использовать следующие методы:

Обычный текст. Префикс const: или просто добавьте нужный текст

dimensions:

- key: extension.owner

  value: const:Joe.Doe@somedomain.com

Или

dimensions:

- key: extension.owner

  value: const:Joe.Doe@somedomain.com

Prometheus label

dimensions:

- key: customdimension.job

   value: label:job

   filter: const:$eq(prometheus)

Все метки, представленные Prometheus, создаются как измерения автоматически. Вам нужно явно определить измерение на основе меток только в том случае, если вы хотите:

  • применить фильтрацию к значениям,
  • определить пользовательский ключ измерения.

Фильтр извлеченных метрических строк

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

Определите фильтр на основе условия следующим образом:

  • Начинается с – используйте определитель const:$prefix. Пример: filter: const:$prefix(xyz)
  • Заканчивается на – используйте определитель const:$suffix. Пример: filter: const:$suffix(xyz)
  • Содержит – используйте квалификатор const:$contains. Пример: filter: const:$contains(xyz)
  • Равно – используйте квалификатор const:$eq. Пример: filter: const:$eq(xyz) Для выражений, упомянутых выше, вы также можете использовать определители:
    • const:$and– для соединения двух или более выражений с помощью оператора AND. Пример: filter: const:$and(<expr1>,<expr2>)
    • const:$or– для соединения двух или более выражений с помощью оператора OR. Пример: filter: const:$or(<expr1>,<expr2>)
    • const:$not– для отрицания выражения. Пример: filter: const:$not(<expr>)

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

dimensions:

      - key: technology

        value: other

      - key: job

        value: label:job

        filter: const:$or($eq(),$not($or($eq(prometheus),$eq(rabbitmq-server),$eq(redis_exporter),$eq(node_exporter)))

Метрики

Для каждого уровня (группа, подгруппа) можно определить до 100 метрик. Однако следует отметить, что существует жесткое ограничение в 1000 метрик на расширение, применяемое во время выполнения. Это ограничение ниже, чем объединенные ограничения разрешенных групп и подгрупп.

Например:

prometheus:

  - group: rabbitmq metrics

    interval: 1m

    featureSet: all

    dimensions:

      - key: instance

        value: $reference(metric:rabbitmq_identity_info, ref:rabbitmq_node)

    subgroups:

      # global counters

      - subgroup: rabbitmq global counter

        metrics:

          - key: com.dynatrace.extension.prometheus-rabbitmq.global.global_messages_acknowledged_total

            value: metric:rabbitmq_global_messages_acknowledged_total

            type: count

            featureSet: global

          - key: com.dynatrace.extension.prometheus-rabbitmq.global.global_messages_confirmed_total

            value: metric:rabbitmq_global_messages_confirmed_total

            type: count

            featureSet: global

Метрический ключ

Строка ключа метрики должна соответствовать протоколу приема метрик.

Для Ключ-АСТРОМ версий 1.215 и 1.217 метрический узел требует параметр id вместо key. Начиная с Ключ-АСТРОМ версии 1.219, мы рекомендуем использовать параметр key, так как id будет устаревшим.

Лучшие практики для метрических ключей

Метрики, которые вы вставляете в Ключ-АСТРОМ с помощью вашего расширения — это лишь некоторые из тысяч метрик, встроенных и пользовательских, обрабатываемых Ключ-АСТРОМ. Чтобы сделать ключи метрик уникальными и легко идентифицируемыми в Ключ-АСТРОМ, лучше всего добавлять к имени метрики префикс имени расширения. Это гарантирует уникальность ключа метрики, и вы можете легко назначить метрику определенному расширению в вашей среде.

Значение метрики

Ключ метрики Prometheus, из которого вы хотите извлечь значение метрики, с префиксом metric:.

Атрибут type

Фреймворк Ключ-АСТРОМ Расширения 2.0 поддерживает все оригинальные форматы полезной нагрузки метрик Prometheus. Чтобы указать тип метрики, используйте атрибут type.

Prometheus exposed type Astromkey ingest
Count count