Grafana: Запрос функции: принимать переменные в сетке пороговых уровней

Созданный на 10 окт. 2014  ·  66Комментарии  ·  Источник: grafana/grafana

Привет, @torkelo , мне не хватает переменных пороговых значений для каждого шаблона панели инструментов

Предположим, я разрабатываю шаблон информационной панели продукта (например, веб-сервер Apache) и мне нужно следить, когда время отклика превышает пороговое значение.

Хотя панель инструментов такая же, мы можем переключаться на другие экземпляры с переменными, но время отклика (хорошее оно или нет) зависит от серверной части, которая на самом деле обрабатывает (может быть сервер приложений, может быть статический HTML или, возможно, LAMP server), пороги в каждом случае будут сильно отличаться.

Также было бы неплохо сопоставить эти пороговые значения (2 цифры) с одной из переменных в шаблоне (имя экземпляра) на примере.

aredashboartemplating arepanegraph typfeature-request

Самый полезный комментарий

@kmoczydlowski @bogatuadrian @sofixa @golddiga @ cattt84
Пожалуйста, прекратите нажимать +1, вы отправляете каждому подписчику уведомление (и, возможно, электронное письмо)

Используйте реакции справа от каждого комментария, чтобы выразить свой голос.
Спасибо 😄

Все 66 Комментарий

: +1:

Я тоже хотел бы это увидеть: +1:

не уверен, работает ли это вообще, но, возможно, если бы мы могли создать связанную переменную $ threshold, которая обновляет порог на основе настройки переменной, а затем порог просто использует $ threshold

+1, который откроет много новых возможностей в плане динамических панелей мониторинга

Я бы хотел иметь возможность сопоставить метрику с порогом. Я использую Grafana, чтобы рисовать графики использования ссылок для сетевого оборудования, и приятно иметь порог, сопоставленный с типом интерфейса. На данный момент я использую источник SNMP IfSpeed, чтобы получить активную скорость интерфейса и нарисовать ее как незаполненную метрику, но этот способ нарушает динамическую функцию максимума / минимума Grafana.

+1, было бы очень круто иметь эту функцию. Мне нужно установить порог с помощью тегов Influxdb.

Есть какие-нибудь новости по этой теме?

Мне это тоже очень нужно. В идеале значение переменной шаблона может быть результатом запроса (не имя пути, а значение, возвращаемое этим запросом)

+1

Хотите динамически установить пороговое значение на основе запроса elasticsearch.

Для использования Grafana в качестве замены PNP4Nagios было бы очень полезно иметь возможность устанавливать пороги предупреждения / критического удара и минимальные / максимальные значения оси Y на основе значений полей!

Это тоже нужно.
Например, у меня есть график памяти и переменная cant swtich $ server. Серверы имеют разный объем памяти, и я хочу знать, сколько в ГиБ (не%) используется, но я не помню общий объем памяти на них. Поэтому мне нужен порог (или, может быть, Y-Max) с переменной $ total_mem.

+1 здесь нужно принять переменную $

+1

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

Я бы тоже хотел иметь эту функцию. Каков текущий статус этого?

+1

+1

+1

+1

@kmoczydlowski @bogatuadrian @sofixa @golddiga @ cattt84
Пожалуйста, прекратите нажимать +1, вы отправляете каждому подписчику уведомление (и, возможно, электронное письмо)

Используйте реакции справа от каждого комментария, чтобы выразить свой голос.
Спасибо 😄

почему нельзя использовать шаблоны?

Можно ли реализовать динамический порог для источника данных simpleJson.

+1

+1

+1

Итак, у нас 2018 год. Как насчет этой функции?

+1

+1 по этому поводу.

Как это было открыто 4 года? Один из наших вариантов использования - мониторинг квот хранения файлов. Пороговое значение определяется как мягкое и жесткое ограничение, оба из которых определяются для общего файлового ресурса, поэтому установить его вручную невозможно, поскольку диаграммы создаются динамически. Кажется тривиальным позволить нам выбрать значение метрики для передачи в качестве значения порога. Эти пороговые значения также можно использовать для оповещения.

Я также следил за этим (для панели singlestat) и реализовал версию, которая, надеюсь, будет объединена со сторонним плагином singlestat-math (первая попытка создания плагина - так что могут быть грубые края).
PR здесь: https://github.com/black-mirror-1/singlestat-math/pull/14
Вы можете взять его из моей ветки, если хотите использовать его сейчас.
Все, что вам нужно сделать, это добавить дополнительный источник данных, дать ему имя и использовать это имя в пороговых значениях. Этот плагин также поддерживает пороговые значения n , которые могут быть полезны некоторым.

Мне это нужно, чтобы проверить, не отстает ли какая-либо работа. В качестве обходного пути на данный момент я использую запрос переменной шаблона max(my_prometheus_metric) и устанавливаю его на скрытую переменную, а затем у меня есть дополнительный запрос для моего табличного представления, который выполняет abs(my_prometheus_metric - $variable) , и добавляю к нему привязку. столбец. К сожалению, невозможно скрыть столбец, который используется для установки цвета строки, поэтому я тоже был бы рад этой функции.

Есть обновления по этой функции?

@ debmalyapan53 Извините, я упал, но я только что поставил еще один пиар против последней версии. Надеюсь, это будет объединено не так долго. Текущий PR находится по адресу: https://github.com/black-mirror-1/singlestat-math/pull/30.
Ваше здоровье.

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

+1

используя шаблон, мы можем обойти это, это моя установка:

image

image

Обратите внимание, что я отключил один сервер за последние несколько минут, и порог изменился.

К сожалению, это не решает все проблемы, мы не можем «заполнить выше» и не можем получать предупреждения, основанные на этом. Таким образом, хотя обходной путь работает во многих случаях, он не решает всех проблем, графана по-прежнему необходима, чтобы иметь возможность использовать переменные / запросы для настройки пороговых значений / предупреждений.

5 лет и никаких новостей об этом подвиге. запрос?

Я хотел бы предупредить о результатах Elastic ML с Grafana. Пример панели инструментов, о которой я хотел бы предупредить. У меня есть нижний / верхний порог на графике, который является графиком модели.

image

+1
это очень важная особенность. Любопытно, почему он отстает.

Это действительно самая необходимая функция. Можем ли мы получить последнюю информацию по этому поводу?

Это действительно самая необходимая функция. Можем ли мы получить последнюю информацию по этому поводу?

Я поддерживаю это. Пожалуйста пожалуйста пожалуйста....

Так что, по сути, этого никогда не произойдет, несмотря на то, что многие люди просят об этом здесь, а также во множестве других запросов, отчетов об ошибках и в Интернете в целом в течение 5 лет. Способ принять участие пользователей и улучшить ваше приложение.

Мне это тоже нужно.

Проверьте https://github.com/grafana/grafana/pull/19102 - Если вы можете использовать свою переменную для генерации значения из запроса, это может сработать. "ВЫБРАТЬ $ {var} ИЗ xyz"

В качестве обходного пути я делаю следующее. Предполагается, что вторая ось Y не используется (или имеет фиксированное минимальное и максимальное значение).

Пример:
image

Вот как это создать:

  • Добавьте показатель с названием "вниз" (или что-то еще)

    • Используйте такой запрос Prometheus (несколько строк!). см. примечания ниже.

      1 - (day_of_week(vector(time())) > bool 0)
      * (day_of_week(vector(time())) < bool 6)
      * (((hour(vector(time()))  >= bool 7 - 2)))
      * (hour(vector(time())) < bool 19 - 2)
  • Добавьте переопределение визуализации для этого показателя с именем «вниз»:

    • Заполнение линии: 1

    • Ширина линии: 0

    • Линия лестницы: true

    • Цвет: светло-серый, как "rgb (167, 167, 167)"

    • Ось Y: 2

    • Z-index: 1 _ (перед другими показателями) _

    • Легенда: ложь

    • Скрыть во всплывающей подсказке: false

  • Настройте визуализацию 2-й оси Y:

    • мин: 0

    • max: 1 (или как хотите ... соответственно умножьте метрику выше)

Примечание относительно запроса:

  • В приведенном выше примере запроса «7-2» - это 7:00 утра, «-2» - это мой часовой пояс и смещение перехода на летнее время!
  • Пример запроса также обрабатывает выходные
  • Вы можете ответить на этот комментарий, если адаптируете запрос для других источников данных.

Тьфу ... очень нужно это и это 2019 год ... это старая ветка

то же самое здесь .. наверное никогда не произойдет?

Это сложно реализовать или просто никто не хочет этого делать? Если да, то я бы хотел попробовать

@EggTronic Я искал, что это будет включать, я думаю, что все сводится к объекту Threshold:
https://github.com/grafana/grafana/blob/4a25ec0d36edcb551e6efd60e665df0fa93cb954/packages/grafana-data/src/types/threshold.ts#L1 -L4

Я рассматривал реализацию этого специально для бар-гида. Здесь используются пороги:
https://github.com/grafana/grafana/blob/4a25ec0d36edcb551e6efd60e665df0fa93cb954/public/app/plugins/panel/bargauge/BarGaugePanel.tsx#L37

И далее в том же файле используется функция replaceVariables , я думаю, она используется для оценки переменных grafana:
https://github.com/grafana/grafana/blob/4a25ec0d36edcb551e6efd60e665df0fa93cb954/public/app/plugins/panel/bargauge/BarGaugePanel.tsx#L53 -L61

Я вижу, как это делается

  1. Измените тип Threshold чтобы вместо него value могло быть именем переменной (строкой).
  2. Добавьте логику к каждому типу панели для вызова replaceVariables для любых Threshold.value которые являются строками.
  3. Сделайте так, чтобы окно настройки порогового значения принимало строки (имена переменных).

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

+1 за запрос функции

+1

Я действительно мог бы использовать это для панели Gauge. Я хочу показать шкалу для каждого таглоггера, записывающего в мою базу данных. Каждый регистратор сообщает о своей скорости приема и теоретической оптимальной скорости приема. Но для каждого регистратора требуются разные пороговые значения для соответствующей скорости приема.

+1

Есть ли способ обхода этой функциональности (для панели SingleStat)? Или можно обновить пороги с помощью запроса MySQL?

Каков статус этого вопроса? Будет ли это реализовано? Или это сложно реализовать?

Я уже спрашивал об этом, но ответа не получил: # 25313

+1

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

@liamdiprose ИМХО уместно, не могли бы вы предложить
Теоретическая причина избегать динамических легенд заключается в том, что шаблон панели должен относиться к единому набору данных. Открытие динамической легенды для общего шаблона, который может управлять различными потоками данных, и это может быть неверно. IMHO Я столкнулся со случаем использования, когда несколько индексов используют одинаковый макет панели с разными масштабами и цветовым отображением.
Наличие динамических пороговых значений позволяет мне управлять одной панелью мониторинга вместо репликации для разных индексов.

Есть ли отзывы @torkelo или любого другого в лаборатории grafana или основных участников? некоторые функции управляются на https://github.com/grafana/grafana/pull/24763 ?

@luipir Пока нет, нам очень нужна эта функция в работе, но она все еще в моей очереди. :плакать:

Grafana 7, похоже, движется в направлении, управляемом данными, поэтому я считаю, что эта функция в конечном итоге будет добавлена. @ryantxu из GrafanaLabs упомянул, что использование переменных таким образом планируется в аналогичной теме: https://github.com/grafana/grafana/issues/4929#issuecomment -601958742

Я бы хотел, чтобы каждое окно настроек принимало переменные. Может быть, каждое значение, указанное пользователем, должно быть «оценено»: имена переменных оцениваются по их значению, значения оцениваются сами по себе. Для оценки переменной потребуется правильная функция replaceVariables (предоставленная панели в качестве опоры) для работы.

Было бы неплохо, если бы replaceVariables было заменено на eval(varname) -> value , и тогда replaceVariables может стать служебной функцией, которая принимает eval в качестве параметра.

+1

+1

+1

+1

Это было бы чрезвычайно полезной функцией при составлении графиков акций. Например, у меня могут быть пороговые значения на основе цены открытия биржевого символа, не отображая ее в виде метрики. Проблема, с которой я столкнулся при отображении его как метрики, заключается в том, что он сглаживает / нормализует график.

Без графика цены открытия:
image

После построения графика цены открытия:
image

Установка цены открытия в качестве порога (синяя линия):
image

+1

+1, эта функция давно запрашивается и кажется довольно «стандартной». С нетерпением жду будущего обновления с этой функцией!

+1

Вместо скучного +1 я ставлю (гигантский) 🍺 в качестве награды за того, кто воплотит эту функцию в реальность.

Пример использования: пытаясь создать общую панель мониторинга SLO для всех конечных точек API, я бы хотел, чтобы панель получала условия SLO через URL-адрес панели мониторинга.

У меня была аналогичная проблема, у меня есть запрос mysql и панель инструментов с переменными для min и max. Отсутствие возможности использовать переменные min / max в порогах разочаровало. Но мне удалось изобразить нечто подобное, что, по крайней мере, позволило мне визуализировать выбросы.

  1. В запросе укажите свои переменные как дополнительные столбцы.
    select time, data, ${minimum} as data_min, ${maximum} as data_max from table
  2. Добавьте переопределение серии с совпадением регулярных выражений по минимуму и максимуму (например, /data_(min|max)/ )
  3. Установите переопределение на:

    1. Включить линии (при условии, что график в противном случае указывает на точки)

    2. Отключить точки

    3. Используйте другой цвет (или используйте индивидуальные переопределения для мин. / Макс.)

    4. Отключить легенду

    5. Отключить подсказки

Если у вас есть столбец метрики, вы, вероятно, захотите назвать свое значение данных как '' ( data as '' ), что оставит легенду / всплывающую подсказку без украшений.

Конечно, это всего лишь визуальный обходной путь, вы не получаете других преимуществ пороговых значений, поэтому этот запрос функции все еще очень необходим.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги