无边界的普罗米修斯水桶

时间:2018-11-26 10:51:08

标签: histogram prometheus

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

[1,2,3, 100] 

它将1记录为12.1记录为2等。

如何在不将值显式传递到存储桶的情况下使其记录3到100之间的所有内容? 如何使它像这样https://hexdocs.pm/prometheus_ex/Prometheus.Buckets.html记录从1infinity的值?

1 个答案:

答案 0 :(得分:2)

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

每个存储桶都存储一个表示事件的数字,该数字小于存储桶值。

ranges = (-0.4, -0.35, -0.3, -0.25, -0.2, -0.15, -0.1, -0.05, 0, 0.05, 0.1, 0.15 ,0.2, 0.25, 0.3, 0.35, 0.4)
number_observations =
df.groupby(pandas.cut(df['price_variation'], ranges)).count()

matplotlib.pyplot.bar(x = ranges, y = number_observations)

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 标签来自初始化时传递给直方图的数组。

  

如何在不将值显式传递到存储桶的情况下使其记录3到100之间的所有内容?

您需要显式传递3和100的特定值。此外,您不能直接获得3到100之间的所有数字,您需要减去以下数值以获得该数字。

le
  

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

与上述相同的技术:

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