Grafana Singlestat Max не соответствует графику с тем же запросом - PullRequest
0 голосов
/ 25 октября 2018

У меня есть панель Singlestat и диаграмма Graph, которые используют идентичный запрос ( Запрос Singlestat & Graph ).И для Singlestat установлено значение max ( Настройка Singlestat ).

К сожалению, на графике четко показан максимум, превышающий максимальное значение Singlestat (714 против ~ 800): Singlestat противGraph .Судя по спарклайнам в Singlestat, кажется, что вычисления Singlestat менее детальны, чем графики.Может кто-нибудь объяснить, почему это происходит, если они используют один и тот же базовый запрос?Другие функции синглстата (например, Min, Avg и т. Д.) Работают нормально.Это просто максимум, с которым я вижу эту проблему.

Примечание. Я рассмотрел другие публикации Grafana Singlestat и Graph, но, похоже, это другая проблема.

1 Ответ

0 голосов
/ 25 октября 2018

Если вы посмотрите на первое изображение, к которому вы привязали, вы заметите, что есть минимальный шаг ввода со значением по умолчанию 5m.Вот откуда ваше низкое разрешение.Вы можете установить это явно в свой интервал очистки (или меньше, чтобы убедиться, что вы не потеряете ни одной выборки из-за джиттера в интервале очистки, хотя это может оказаться дорогостоящим), но если вы достаточно увеличите диапазон панели мониторинга, вы 'll:

  • (a), вероятно, имеет максимальное значение единственного статического элемента, которое больше, чем что-либо на графике (поскольку ваш график теперь имеет более низкое разрешение, чем исходные данные единственного статического элемента);и
  • (b) достигнет предела 11K выборок Прометея, если вы уменьшите диапазон, превышающий интервал очистки, превышающий 11K.

Лучше всего использовать PromQL для расчетамаксимальное значение, отображаемое на панели синглстата.Вам все равно придется иметь дело с (a) выше (график низкого разрешения, когда диапазон большой), но это будет фактический максимум (настолько, насколько позволяет фактическая выборка значений через некоторый фиксированный интервал) иэто будет более эффективно.

Проблема в том, что с учетом вашего запроса - sum(jvm_thread_count) - нет способа поместить это в один запрос PromQL с max_over_time.Вам нужно будет определить записанное правило (что-то вроде instance:jvm_thread_count:sum = sum(jvm_thread_count), а затем на панели единого статуса отобразить результаты мгновенного запроса max_over_time(instance:jvm_thread_count:sum[$__range_s]) (установите флажок Мгновенный в настройках единого статического элемента).

...