我在Spring Boot应用程序中使用Caffeine缓存。所有指标均已启用,因此我将其应用于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]))
为什么我的Spring Boot和Caffeine中的查询不起作用以及如何基于信息获取HitRate图?
答案 0 :(得分:0)
分别在prometheus中运行两个查询(“缓存命中”和“所有获取”),并将获得的标签集与结果进行比较。 为了使“ /”操作正常工作,双方必须具有完全相同的标签(和值)。通常,需要进行一些汇总才能“删除”不需要的维度/标签(例如:如果两个查询中已经有一个值,则只需将它们都包装在sum()中-在除法之前)。