首页 > 解决方案 > 如何在使用通配符时获取 prometheus/grafana 中单个指标的速率?

问题描述

我的服务中有许多计数器,每次我收到价格更新时它们都会增加。使用prometheus/client_golang,我像这样创建这些计数器:

priceCounter := promauto.NewCounter(prometheus.CounterOpts{
        Name: fmt.Sprintf("my_thing_%s_%s_price_update_total", exchange, stock),
    })

在 grafana 中,我过滤了{__name__=~"my_thing.*price_update_total"}- 这很有效,我可以看到我的计数器在上升,但我想对其应用 a rate(),即:rate({__name__=~"my_thing.*price_update_total"}[1m])

但是这样做时,我收到错误“向量不能包含具有相同标签集的指标”。我找到了这个报价rate() keeps all labels except __name__, but it drops __name__ to avoid any confusion.,但我不知道如何继续。

我尝试在没有通配符的情况下将 rate() 应用于这些指标,并且它有效,但我有太多事情要做。这是否意味着我需要为我想要度量的每个不同价格添加一个命名空间和一个子系统?我对普罗米修斯还是很陌生,仍在尝试解决问题,并且碰壁了。

标签: prometheusgrafanametrics

解决方案


推荐阅读