gpt4 book ai didi

sum - 普罗米修斯:如何评价来自不同机器的相同计数器的总和?

转载 作者:行者123 更新时间:2023-12-03 14:43:48 26 4
gpt4 key购买 nike

我有一个 Prometheus 计数器,我想获取它的 在一个时间范围内(真正的目标是 sum the rate ,有时使用 histogram_quantile 度量)。
但是,我有多台机器运行这种工作,每台机器都有自己的实例标签。这会导致不同的 inc 在不同的机器上对这个计数器进行操作以创建计数器的不同实体,因为标签值的组合是唯一的。
问题是率() 在每个这样的计数器实体上单独工作。
结果是具有唯一组合的计数器实体没有考虑到 率() .
例如,如果我有:

mycounter{aaa="1",instance="1.2.3.4:6666",job="job1"} value: 1
mycounter{aaa="2",instance="1.2.3.4:6666",job="job1"} value: 1
mycounter{aaa="2",instance="1.2.3.4:7777",job="job1"} value: 1
mycounter{aaa="1",instance="5.5.5.5:6666",job="job1"} value: 1

所有计数器实体都是唯一的,因此它们的值为 1。
如果计数器标签总是唯一的(来自不同的机器), 费率(mycounter[5m]) 在这种情况下会得到 0 值,
sum(rate(mycounter[5m])) 会得到 0,这不是我需要的!
我想忽略 实例标签,以便它会引用这些 mycounter inc 操作,因为它们是在同一个柜台实体上进行的。
换句话说,我希望只有 2 个实体(它们可以有一个通用的 实例 值或没有 实例 标签):
mycounter{aaa="1", job="job1"} value: 2
mycounter{aaa="2", job="job1"} value: 2

在这种情况下, inc 在新机器上操作(现有 aaa 值)会增加一些实体计数器而不是添加值为 1 的新实体,和 率() 会得到每个的实际利率,所以我们可以 sum() 他们。
我怎么做?

我做了几次尝试来解决它,但都失败了:
  • 做一个 率() sum() - 由于类型不匹配而失败...
  • 拆卸自动 实例标签,使用 metric_relabel_configswork 行动:labeldrop 在配置中,但随后它会分配默认地址值。
  • 全部更改 实例使用 将值转换为通用值metric_relabel_configswork 更换 ,但似乎其中一个实体覆盖了所有其他实体,因此无济于事...

  • 有什么建议?

    普罗米修斯版本:2.3.2
    提前致谢!

    最佳答案

    如果其他标签( aaa 等)具有一组有限的可能组合,则最好在应用程序启动时将计数器公开为 0。这样rate()函数在底层正常工作,sum()会给你正确的结果。
    如果你非要做rate()sum() , 阅读 this第一的:

    Note that when combining rate() with an aggregation operator (e.g. sum()) or a function aggregating over time (any function ending in _over_time), always take a rate() first, then aggregate. Otherwise rate() cannot detect counter resets when your target restarts.


    如果您可以容忍这种情况(或实例同时重置计数器),则有一种解决方法。定义一个 recording rule作为
    record: job:mycounter:sum
    expr: sum without(instance) (mycounter)
    然后这个表达式有效:
    sum(rate(job:mycounter:sum[5m]))

    关于sum - 普罗米修斯:如何评价来自不同机器的相同计数器的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52697517/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com