问题描述
Histogram histogram = Histogram.build().name(name).help((String) metricData.get(HELP)).register(registry);
Histogram.Timer timer = histogram.startTimer();
logger.info("Sleeps for 1 milli");
Thread.sleep(1);
histogram.observe(timer.observeDuration());
我的 Prometheus 直方图如下所示:
HELP myJob_histogram_no_buckets_test histogram with some info about something
TYPE myJob_histogram_no_buckets_test histogram
myJob_histogram_no_buckets_test_bucket{instance="",job="myJob",le="0.005"} 2
myJob_histogram_no_buckets_test_bucket{instance="",le="0.01"} 2
myJob_histogram_no_buckets_test_bucket{instance="",le="0.025"} 2
myJob_histogram_no_buckets_test_bucket{instance="",le="0.05"} 2
myJob_histogram_no_buckets_test_bucket{instance="",le="0.075"} 2
myJob_histogram_no_buckets_test_bucket{instance="",le="0.1"} 2
myJob_histogram_no_buckets_test_bucket{instance="",le="0.25"} 2
myJob_histogram_no_buckets_test_bucket{instance="",le="0.5"} 2
myJob_histogram_no_buckets_test_bucket{instance="",le="0.75"} 2
myJob_histogram_no_buckets_test_bucket{instance="",le="1"} 2
myJob_histogram_no_buckets_test_bucket{instance="",le="2.5"} 2
myJob_histogram_no_buckets_test_bucket{instance="",le="5"} 2
myJob_histogram_no_buckets_test_bucket{instance="",le="7.5"} 2
myJob_histogram_no_buckets_test_bucket{instance="",le="10"} 2
myJob_histogram_no_buckets_test_bucket{instance="",le="+Inf"} 2
myJob_histogram_no_buckets_test_sum{instance="",job="latrodectus"} 0.006341000000000001
myJob_histogram_no_buckets_test_count{instance="",job="latrodectus"} 2
我明白为什么我所有的桶值都增加了,但我不明白两件事:
- 我希望这些值是 1,我的源代码做错了什么?为什么所有值都是 2?
- 如何将存储桶设置为使用范围,而不是
提前致谢!
解决方法
我希望值是 1,我的源代码做错了什么?为什么所有值都是 2?
你观察了两次。如果您使用的是 observeDuration
,则您也不需要 observe
。
如何将存储桶设置为使用范围,而不是
你不能,这就是 histogram_quantile
期望的存储桶。