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