12 Обнаружение с использованием данных Prometheus

Обзор

Данные, представленные в формате строк Prometheus, могут использоваться для низкоуровневого обнаружения.

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

Настройка

Правило низкоуровневого обнаружения должно быть создано как зависимый элемент данных от основного элемента данных HTTP, собирающего данные Prometheus.

Prometheus в JSON

В правиле обнаружения перейдите на вкладку «Предобработка» и выберите опцию Prometheus в JSON. Для обнаружения необходимы данные в формате JSON, и опция предварительной обработки Prometheus в JSON отформатирует их именно таким образом со следующими атрибутами:

  • название метрики (metric name)
  • значение метрики (metric value)
  • помощь (help; если имеется)
  • тип (type; если имеется)
  • метки (labels; если имеются)
  • необработанная строка (raw line)

Например, запрос wmi_logical_disk_free_bytes:

из этих строк Prometheus:

# HELP wmi_logical_disk_free_bytes Free space in bytes (LogicalDisk.PercentFreeSpace)
       # TYPE wmi_logical_disk_free_bytes gauge
       wmi_logical_disk_free_bytes{volume="C:"} 3.5180249088e+11
       wmi_logical_disk_free_bytes{volume="D:"} 2.627731456e+09
       wmi_logical_disk_free_bytes{volume="HarddiskVolume4"} 4.59276288e+08

вернёт:

[
           {
               "name": "wmi_logical_disk_free_bytes",
               "help": "Free space in bytes (LogicalDisk.PercentFreeSpace)",
               "type": "gauge",
               "labels": {
                   "volume": "C:"
                },
               "value": "3.5180249088e+11",
               "line_raw": "wmi_logical_disk_free_bytes{volume=\"C:\"} 3.5180249088e+11"
           },
           {
               "name": "wmi_logical_disk_free_bytes",
               "help": "Free space in bytes (LogicalDisk.PercentFreeSpace)",
               "type": "gauge",
               "labels": {
                   "volume": "D:"
                },
               "value": "2.627731456e+09",
               "line_raw": "wmi_logical_disk_free_bytes{volume=\"D:\"} 2.627731456e+09"
           },
           {
               "name": "wmi_logical_disk_free_bytes",
               "help": "Free space in bytes (LogicalDisk.PercentFreeSpace)",
               "type": "gauge",
               "labels": {
                   "volume": "HarddiskVolume4"
                },
               "value": "4.59276288e+08",
               "line_raw": "wmi_logical_disk_free_bytes{volume=\"HarddiskVolume4\"} 4.59276288e+08"
           }
       ]
Сопоставление LLD макросов

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

{#VOLUME}=$.labels['volume']
       {#METRIC}=$['name']
       {#HELP}=$['help']
Прототип элемента данных

Вы можете создать прототип элемента данных наподобие следующего:

с опциями предобработки: