Zabbix може да тражи метрику изложену у формату линије Prometheus.
Потребна су два корака да би се започело прикупљање Прометхеус података:
https://<prometheus host>/metrics
Постоје две опције за претходну обраду Prometheus података:
Групна обрада је подржана за зависне ставке. Да бисте омогућили кеширање и индексирање, *Prometheus pattern претходна обрада мора бити први** корак претходне обраде. Када је Prometheus pattern први корак пре обраде, онда се рашчлањени Prometheus подаци кеширају и индексирају првим условом <label>==<value>
у кораку препроцесирања Prometheus pattern. Овај кеш се поново користи приликом обраде других зависних ставки у овој групи. За оптималне перформансе, прва ознака треба да буде она са највише различитих вредности.
Ако постоји друга предобрада која треба да се уради пре првог корака, треба је преместити или на главну ставку или у нову зависну ставку која би се користила као мастер ставка за зависне ставке.
Под условом да сте конфигурисали главну HTTP ставку, потребно је да креирате зависну ставку која користи корак претходне обраде Prometheus-а:
Следећи параметри су специфични за опцију претходне обраде Prometheus шаблон:
Parameter | Description | Examples |
---|---|---|
Шаблон | Да бисте дефинисали потребан образац података, можете користити језик за упите који је сличан језику за упите Прометеј (погледајте табелу поређења), нпр.: <metric name> - изаберите по називу метрике {__name__="<metric name>"} - изаберите по називу метрике {__name__=~"<regex>"} - изаберите по називу метрике који се подудара са регуларним изразом <label name>="<label value>",...} - изаберите по називу ознаке {<label name>=~"<regex>",...} - изаберите по називу ознаке који се подудара са регуларним изразом {__name__=~".*"}==<value> - изаберите по вредности метрике Или комбинација горе наведеног: <metric name>{<label1 name>="<label1 value>",<label2 name>=~"<regex>",...}==<value> Вредност ознаке може бити било који низ UTF-8 знакова, али обрнута коса црта, двоструки наводник и знакови за прелазак у други ред морају бити избегнути као \\ , \" и \n респективно; остали знакови се не смеју избегавати. |
wmi_os_physical_memory_free_bytes cpu_usage_system{cpu="cpu-total"} cpu_usage_system{cpu=~".*"} cpu_usage_system{cpu="cpu-total",host=~".*"} wmi_service_state{name="dhcp"}==1 wmi_os_timezone{timezone=~".*"}==1 |
Обрада резултата | Наведите да ли да бисте вратили вредност, ознаку или применили одговарајућу функцију (ако се образац подудара са неколико редова и резултат треба агрегирати): вредност - врати вредност метрике (грешка ако се подудара више редова) ознака - врати вредност ознаке наведене у пољу Ознака (грешка ако се подудара више метрика) сум - врати збир вредности мин - врати минималну вредност макс - врати максималну вредност просек - врати просечну вредност број - врати број вредности Ово поље је доступно само за опцију Прометеј образац. |
Погледајте и примере коришћења параметара испод. |
Излаз | Дефинишите назив ознаке (опционо). У овом случају враћа се вредност која одговара називу ознаке. Ово поље је доступно само за опцију Прометеј образац, ако је изабрано 'Ознака' у пољу Обрада резултата. |
Примери коришћења параметара
/var/db
из:
node_disk_usage_bytes{path="/var/cache"} 2.1766144e+09
node_disk_usage_bytes{path="/var/db"} 20480
node_disk_usage_bytes{path="/var/dpkg"} 8192
node_disk_usage_bytes{path="/var/empty"} 4096
користите следеће параметре:
node_disk_usage_bytes{path="/var/db"}
node_disk_usage_bytes
параметри:node_disk_usage_bytes
elasticsearch_cluster_health_status{cluster="elasticsearch",color="green"} 1
elasticsearch_cluster_health_status{cluster="elasticsearch",color="red"} 0
elasticsearch_cluster_health_status{cluster="elasticsearch",color="yellow"} 0
користите следеће параметре:
elasticsearch_cluster_health_status {cluster="elasticsearch"} == 1
Филтер (на основу нумеричке вредности '1') ће се подударати са одговарајућим редом, док ће ознака вратити опис здравственог стања (тренутно 'зелено'; али потенцијално и 'црвено' или 'жуто').
Подаци из Prometheus се могу користити за откривање ниског нивоа. У овом случају су потребни подаци у JSON формату и опција за претходну обраду * Prometheus у JSON* ће вратити управо то.
За више детаља погледајте Откриће помоћу података Prometheusdata.
Следећа табела приказује разлике и сличности између PromQL-а и језика за упите за претходну обраду Zabbix Prometheus-а.
PromQL селектор инстант вектора | Zabbix Prometheus претходна обрада | |
---|---|---|
Differences | ||
Query target | Prometheus server | Обичан текст у Prometheus формату експозиције |
Returns | Instant vector | Вредност метрике или ознаке (Prometheus шаблон) Низ метрика за једну вредност у JSON-у (Prometheus у JSON) |
Label matching operators | =, !=, =~, !~ | =, !=, =~, !~ |
Регуларни израз који се користи у подударању ознака или имена метрике | RE2 | PCRE |
Оператори поређења | Погледајте листу | Само == (једнако) је подржано за филтрирање вредности |
Similarities | ||
Избор по имену метрике који је једнак стрингу | <metric name> или {__name__="<metric name>"} | <metric name> или {__name__="<metric name>"} |
Избор по имену метрике који се подудара са регуларним изразом | {__name__=~"<regex>"} | {__name__=~"<regex>"} |
Избор по вредности <назив ознаке> која је једнака стрингу | {<label name>="<label value>",...} | {<label name>="<label value>",...} |
Избор по вредности <назив ознаке> која се подудара са регуларним изразом | {<label name>=~"<regex>",...} | {<label name>=~"<regex>",...} |
Избор по вредности која је једнака стрингу | {__name__=~".*"} == <value> | {__name__=~".*"} == <value> |