Chr*_*ina 7 spring metrics spring-boot spring-boot-actuator micrometer
我有一个Spring Boot应用程序,并且正在使用Spring Boot Actuator和Micrometer来跟踪有关我的应用程序的指标。我特别关注“ http.server.requests”指标和MAX统计信息:
{
"name": "http.server.requests",
"measurements": [
{
"statistic": "COUNT",
"value": 2
},
{
"statistic": "TOTAL_TIME",
"value": 0.079653001
},
{
"statistic": "MAX",
"value": 0.032696019
}
],
"availableTags": [
{
"tag": "exception",
"values": [
"None"
]
},
{
"tag": "method",
"values": [
"GET"
]
},
{
"tag": "status",
"values": [
"200",
"400"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我认为MAX统计信息是执行一个请求的最长时间(因为我已经发出了两个请求,所以这是对其中一个请求进行较长时间处理的时间)。
每当我通过任何标签过滤指标时,例如 localhost:9090/actuator/metrics?tag=status:200
{
"name": "http.server.requests",
"measurements": [
{
"statistic": "COUNT",
"value": 1
},
{
"statistic": "TOTAL_TIME",
"value": 0.029653001
},
{
"statistic": "MAX",
"value": 0.0
}
],
"availableTags": [
{
"tag": "exception",
"values": [
"None"
]
},
{
"tag": "method",
"values": [
"GET"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我总是得到0.0作为最大时间。这是什么原因呢?
您可以使用?tag=url:{endpoint_tag}根/actuator/metrics/http.server.requests调用响应中定义的方式查看各个指标。值的详细信息measurements是:
- MAX:记录的最大金额。当它表示时间时,会以监控系统的基本时间单位进行报告。
您看到的差异是由于计时器的存在造成的。这意味着一段时间后,MAX任何标记指标的当前定义值都可以重置回0。您可以向端点添加一些新调用,然后立即调用以查看给定标记的/actuator/metrics/http.server.requests非零值吗?MAX
MAX这是由于获取每个较小时期的指标背后的想法。当您看到这些指标时,您将能够MAX在很长一段时间内获得一组值而不是单个值。
您可以在 Micrometer 源代码中看到它的实际效果。有一种rotate()方法专注于重置MAX值以创建上述行为。
您可以看到每次调用都会调用此方法poll(),每隔一段时间就会触发一次以进行指标收集。
| 归档时间: |
|
| 查看次数: |
1154 次 |
| 最近记录: |