Java 带直方图计时器的SpringBoot 2.x度量

Java 带直方图计时器的SpringBoot 2.x度量,java,spring-boot,metrics,prometheus,micrometer,Java,Spring Boot,Metrics,Prometheus,Micrometer,在SpringBoot中引入测微计作为基础度量提供程序之前,只需使用Timer.builder()。似乎在SpringBoot 2.x之后,我不再能够在直方图中定义自己的桶边界。我所能找到的只是告诉SpringBoot发布百分位直方图的方法,我无法控制它。自动配置的http.server.requestmetric的百分位柱状图几乎完成了我想要的每一件事,只是对于我的用例来说,它的bucket太多了。我已经到处寻找如何至少配置这个度量的最小值和最大值的解释,但这似乎是不可能的 如果任何人对如何配

SpringBoot
中引入
测微计作为基础度量提供程序之前,只需使用
Timer.builder()。似乎在SpringBoot 2.x之后,我不再能够在直方图中定义自己的桶边界。我所能找到的只是告诉SpringBoot发布百分位直方图的方法,我无法控制它。自动配置的
http.server.request
metric的百分位柱状图几乎完成了我想要的每一件事,只是对于我的用例来说,它的bucket太多了。我已经到处寻找如何至少配置这个度量的最小值和最大值的解释,但这似乎是不可能的

如果任何人对如何配置
计时器的百分比直方图有任何见解,或者如果有一种方法可以直接在
普罗米修斯中组合桶,我将非常感谢您的帮助。

对于您的特定问题(即桶太多),一个解决方法(不是解决方案,但可能足够了)是在普罗米修斯配置中过滤掉刮水时不需要的桶:

您必须使用以下内容(尚未测试):


这应该(同样,未测试)丢弃所有
le=“0.1”
le=“0.5”
le=“1.0”
存储桶。这与Prometheus histograms是完全安全的,无论桶是在范围的末端还是在中间,因为桶是累加的,即<代码> LE =“1”< /代码>桶计数所有出现的值<代码> < 1 < /代码>。但这似乎是解决这个问题的好方法,因为桶太多了。但是,我知道我们有对特定bucket感兴趣的情况,所以我肯定认为首先应该可以操纵应用程序导出的内容。谢谢你的解决办法。
scrape_configs:
 - job_name: 'my_job'
   static_configs:
     - targets:
       - my_target:1234
   metric_relabel_configs:
   - source_labels: [ __name__, le ]
     regex: 'http\.server\.request_buckets;(0.1|0.5|1.0)'
     action: drop