Справка о источнике данных Prometheus
Это общее описание файла 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 |
| 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
|