我有一个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"
]
}
]
}
我认为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"
]
}
]
}
我总是得到0.0作为最大时间。这是什么原因呢?
答案 0 :(得分:1)
MAX表示执行端点所需的最长时间。
对/user/asset/getAllAssets
COUNT TOTAL_TIME MAX
5 115 17
6 122 17 (Execution Time = 122 - 115 = 17)
7 131 17 (Execution Time = 131 - 122 = 17)
8 187 56 (Execution Time = 187 - 131 = 56)
9 204 56 From Now MAX will be 56 (Execution Time = 204 - 187 = 17)
对特定端点的请求数量不影响MAX (请参阅Spring Boot Admin中的图像)
有一个 Timer 将该值设置为0。当一段时间未调用或执行端点时,Timer将MAX设置为0。此处近似的定时器值为2至2.30分钟(120到150秒)
DistributionStatisticConfig 具有.expiry(Duration.ofMinutes(2))
,如果在最近的 2分钟内没有发出请求 ,则将一些测量值设置为0 (120秒)
为此接口编写了public TimeWindowMax(Clock clock,...)
,private void rotate()
Clock 接口之类的方法。您可能会看到实现here
为此,我采取了6个样本(对同一端点执行了6次)。为此,我确定了调用端点的时间
MAX 属性属于enum Statistic使用的Measurement (在测量中,我们获得COUNT,TOTAL_TIME,MAX)
公共静态最终统计信息MAX
记录的最大数量。当这代表时间的时候 报告监视系统的基本时间单位。
注释:
这是来自特定端点(此处为/actuator/metrics/http.server.requests?tag=uri:/user/asset/getAllAssets
)的度量标准的情况。
用于actuator/metrics/http.server.requests
的通用度量
MAX将设置为0。我认为/http.server.requests
的MAX将与特定端点相同。
更新
The document已针对MAX更新。
注意:基本
DistributionSummary
实现的最大值例如CumulativeDistributionSummary
,StepDistributionSummary
是一个时间 最大窗口(TimeWindowMax
)。这意味着它的值是最大值 时间窗口内的值。如果时间窗口结束,它将重置为 0,新的时间窗口再次开始。时间窗口大小将是 计价器注册表的步长,除非到期DistributionStatisticConfig
已明确设置为其他值。
答案 1 :(得分:0)