Получать Всего запросов за определенный промежуток времени

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

Для этого мне нужно решить 2 вопроса здесь, я задам вопрос профетея здесь и вопрос Графаны в другой ссылке.

Если у меня есть счетчик http_requests_total, как я могу построить запрос, чтобы получить целое число с общим количеством запросов в течение определенного периода времени (например: 24 часа)?

Ответы

Ответ 1

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

increase(http_requests_total[24h])

Если у вас есть несколько счетчиков http_requests_total (например, из нескольких экземпляров), и вам нужно получить кумулятивное количество запросов, используйте оператор sum():

sum(increase(http_requests_total[24h]))

См. Также мой ответ на эту часть вопроса об использовании выбора временного диапазона Grafana в запросах.

Ответ 2

Поэтому я не буду комментировать ответ йори, поэтому я должен сделать новый...

В Grafana 5.3 они представили $__range для Prometheus, который проще в использовании:

sum(rate(http_requests_total[$__range]))

Эта переменная представляет диапазон для текущей панели инструментов. Рассчитывается до - от

http://docs.grafana.org/features/datasources/prometheus/

Ответ 3

Согласно увеличению() документации, это не оператор агрегации. Таким образом, это даст неправильный ответ. (См. примечание.)

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

sum_over_time(http_requests_total[24h])

Если у вас несколько счетчиков, используйте оператор sum():

sum(sum_over_time(http_requests_total[24h]))

Примечание: У меня есть 5 точек данных, которые имеют значения: 847, 870, 836, 802, 836. (обновляется каждую минуту)

increase(http_requests_total[5m]) returns 2118.75 

sum_over_time(http_requests_total[5m]) returns 4191