【问题标题】:Query for a cache hit rate graph with prometheus使用 prometheus 查询缓存命中率图
【发布时间】:2019-07-23 09:43:04
【问题描述】:

我在 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 图表?

【问题讨论】:

    标签: spring-boot grafana prometheus caffeine


    【解决方案1】:

    在 prometheus 中分别运行(“缓存命中”和“所有获取”)查询,并将获得的标签集与结果进行比较。 要使“/”操作正常工作,双方必须完全具有相同的标签(和值)。通常需要一些聚合来“删除”不需要的维度/标签(例如:如果您已经从两个查询中获得了一个值,那么只需将它们都包装在 sum() 中 - 在划分之前)。

    【讨论】:

    • 知道了,尝试了sum(delta(cache_gets_total{result="hit",name="myCache"}[1m]))/sum(delta(cache_gets_total{name="myCache"}[1m])),它有效,谢谢!
    • 您应该使用 rate 而不是 delta 与计数器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-02
    相关资源
    最近更新 更多