代码之家  ›  专栏  ›  技术社区  ›  Leo

无边界普罗米修斯桶

  •  0
  • Leo  · 技术社区  · 6 年前

    要有一个有效的普罗米修斯柱状图,我需要一个bucket,它是一组值,当传递给 observe 方法(我使用 https://github.com/prometheus/client_ruby )将被记录。所以当我的桶是:

    [1,2,3, 100] 
    

    它将被记录下来 1 作为 1个 , 2.1 作为 2 等。

    如何使它记录3到100之间的所有内容,而不显式地将值传递给bucket? 我怎样才能让它记录 1个 infinity 就像这里 https://hexdocs.pm/prometheus_ex/Prometheus.Buckets.html ?

    1 回复  |  直到 6 年前
        1
  •  3
  •   yamenk    6 年前

    直方图表示为一组计数器,其中每个计数器表示一个bucket。它通常用于跟踪延迟。

    每个bucket存储一个表示事件的数字 较少的 比桶值还大。

    hello_world_latency_seconds_bucket{le="1.0",} 16.0
    hello_world_latency_seconds_bucket{le="2.0",} 16.0
    hello_world_latency_seconds_bucket{le="3.0",} 16.0
    hello_world_latency_seconds_bucket{le="100.0",} 16.0
    hello_world_latency_seconds_bucket{le="+Inf",} 16.0 
    

    这个 le 标签来自初始化时传递给直方图的数组。

    如何使它记录3到100之间的所有内容,而不显式地将值传递给bucket?

    您需要显式传递3和100的特定值。而且,你不能直接得到3到100之间的所有值,你需要减去下面的数字。

    hello_world_latency_seconds_bucket{le="100.0",} - hello_world_latency_seconds_bucket{le="3.0",}
    

    如何使它记录从1到无穷大的值

    与上述技术相同:

    hello_world_latency_seconds_bucket{le="+Inf",} - hello_world_latency_seconds_bucket{le="1.0",}
    
    推荐文章