Запрос label_values ​​не найден в Prometheus

В документации Grafana я обнаружил, что могу запрашивать у моего сервера Prometheus все экземпляры, доставляющие данные мониторинга, с помощью запроса label_values.

Запрос, который я использую в Grafana:

label_values(up, instance)

К сожалению, Прометей говорит мне, что не знает label_values:

Error executing query: parse error at char 13: unknown function with name "label_values"

Я использую Prometheus 2.0.0 и Grafana 5.

Что я делаю неправильно?


person Tim Hartnack    schedule 19.03.2018    source источник
comment
label_values ​​- это не функция Prometheus, это часть шаблонов Grafana.   -  person lukapiske    schedule 15.10.2019


Ответы (3)


label_values() - допустимая функция только в рамках шаблонов. Вы можете использовать его для заполнения раскрывающегося списка шаблона, например, список доступных экземпляров или доступных показателей, но вы не можете использовать его на панели инструментов или при непосредственном запросе Prometheus.

person Oliver    schedule 19.03.2018
comment
Хорошо. Несмотря на то, что в запросе e.x показано несколько экземпляров, label_values ​​() не заполняет мое раскрывающееся меню в графане. Любая идея - person Tim Hartnack; 20.03.2018
comment
Я получаю ошибку при расширении шаблона: ошибка при выполнении шаблона ... at \ ‹query›: ошибка при вызове запроса: ошибка синтаксического анализа в char 13: неизвестная функция с именем label_values ​​›в шаблоне Prometheus, это не работает в Prometheus ... Это работает только в Grafana. - person Sasha Golikov; 31.12.2019

Заглянув в шаблонный код Grafana для Prometheus в grafana / public / app / plugins / datasource / prometheus / metric_find_query.ts вы можете видеть, что они не используют PromQL, но посещают определенные конечные точки, чтобы получить значения меток, поэтому для label_values(instance) URL будет примерно таким это:

http://localhost:9090/api/v1/label/instance/values

Однако этот возвращает все метки с именем instance из каждой метрики в TSDB. Если метка уникальна для одной конкретной метрики, тогда у вас есть свой ответ. В противном случае код шаблона для чего-то вроде label_values(up, instance) немного сложнее, и кажется, что он фактически загружает всю серию для метрики из:

http://localhost:9090/api/v1/series?match[]=up

также добавляя параметры временного диапазона start и end, которые я опустил для ясности, затем находит значения меток путем анализа вывода JSON.

Я бы тоже хотел сделать то же самое в PromQL, но так и не понял, возможно это или нет.

person mac13k    schedule 16.06.2020

labels(pg_up,instances) это правильный синтаксис

person shivam    schedule 10.06.2021