Как написать запрос Prometheus, который возвращает значение метки?

Я делаю панель мониторинга Grafana и хочу, чтобы панель отображала самую последнюю версию нашего приложения. Версия сообщается как метка в метке app_version (скажем):

app_version_updated{instance="eu99",version="1.5.0-abcdefg"}

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

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

count(app_version_updated) by (version)

возвращает элемент {version="1.5.0-abcdefg"} со значением 1. Когда он помещается на приборную панель Grafana на одной панели значений, это не отображает строку версии, а вместо этого значение счета (1).

Как я могу построить запрос Prometheus, который возвращает строку версии?

Ответ 1

Недавно мы добавили поддержку отображения сериального имени в качестве значения в отдельной панели статистики (https://github.com/grafana/grafana/issues/4740). Таким образом, вам нужно запустить нашу ночную сборку, пока мы не выпустим 4.0.

Просто убедитесь, что запрос возвращает одну серию, и вы можете использовать значение "имя" в раскрывающемся списке в разделе "Параметры → большое значение". Затем вы можете отформатировать строку, используя средство формирования легенды. Ex {{job}} вернет "node" в качестве серийного имени.

Надеюсь, это ответит на ваш вопрос.

Ответ 2

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

https://github.com/grafana/grafana/issues/5094 отслеживает это.

Ответ 3

Мой ответ пытается уточнить ответ карла. Я предполагаю, что макет графического интерфейса, возможно, немного изменился с 2016 года, поэтому мне потребовалось некоторое время, чтобы найти вариант "имя".

Предполагая, что у вас есть метрика следующим образом:

# HELP db2_prometheus_adapter_info Information on the state of the DB2-Prometheus-Adapter
# TYPE db2_prometheus_adapter_info gauge
db2_prometheus_adapter_info{app_state="UP") 1.0

и вы хотите показать значение метки app_state.

Выполните следующие действия:

  • Создайте визуализацию SingleStat.
  • Перейдите на вкладку "Запросы":
    • Введите имя (здесь db2_prometheus_adapter_info) метрики.
    • Введите название метки в качестве легенды, используя обозначение {{[LABEL]}} (здесь {{app_state}}).
    • Активируйте "мгновенный" вариант.

Settings in Queries Tab

  • Перейдите на вкладку "Визуализация":
    • Выберите значение "Имя" в разделе "Значение - Стат".

Setting in Visualization Tab

Примечание о параметре "Мгновенный". Этот параметр переключается с запроса диапазона на упрощенный запрос, возвращающий только самое последнее значение показателя (см. также Что делает флажок "мгновенный" на графиках графана, основанных на прометее)?). Если она не активирована, на панели отобразится ошибка, как только в истории метрики появится более одного отдельного значения для метки. Для "нормальной" метрики вы бы исправили это, выбрав "current" в опции "Value - Stat". Но, делая это здесь, вы не сможете увидеть значение вашего ярлыка.