要获得有效的普罗米修斯直方图,我需要一个存储桶,该存储桶是一组值,当传递给observe
方法(我使用https://github.com/prometheus/client_ruby)时,它将被记录。所以当我的水桶是:
[1,2,3, 100]
它将1
记录为1
,2.1
记录为2
等。
如何在不将值显式传递到存储桶的情况下使其记录3到100之间的所有内容?
如何使它像这样https://hexdocs.pm/prometheus_ex/Prometheus.Buckets.html记录从1
到infinity
的值?
答案 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",}