Запрос на график скорости попадания в кеш с помощью prometheus

Я использую кеш кофеина с приложением Spring Boot. Все метрики включены, поэтому у меня они есть на Prometheus и Grafana.

На основе показателя cache_gets_total я хочу построить график HitRate.

Я пытался получить попадания в кеш:

delta(cache_gets_total{result="hit",name="myCache"}[1m])

и все извлекается из кеша:

sum(delta(cache_gets_total{name="myCache"}[1m]))

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

delta(cache_gets_total{result="hit",name="myCache"}[1m]) / sum(delta(cache_gets_total{name="myCache"}[1m]))

Почему этот запрос не работает и как получить график HitRate на основе информации, полученной из Spring Boot и Caffeine?


person Dmytro Patserkovskyi    schedule 23.07.2019    source источник


Ответы (1)


Выполните оба запроса («попадания в кеш» и «все получает») по отдельности в prometheus и сравните полученные наборы меток с результатами. Для работы операции «/» обе стороны должны иметь точно одинаковые метки (и значения). Обычно требуется некоторая агрегация, чтобы «отбросить» ненужные измерения / метки (например: если у вас уже есть одно значение из обоих запросов, просто оберните их оба в sum () - перед разделением).

person bjakubski    schedule 23.07.2019
comment
Понял, попробовал sum(delta(cache_gets_total{result="hit",name="myCache"}[1m]))/sum(delta(cache_gets_total{name="myCache"}[1m])), все работает, спасибо! - person Dmytro Patserkovskyi; 23.07.2019
comment
Для счетчиков следует использовать скорость, а не дельту. - person brian-brazil; 24.07.2019