gpt4 book ai didi

java - Spring Boot 执行器 - MAX 属性

转载 作者:行者123 更新时间:2023-12-02 09:39:06 24 4
gpt4 key购买 nike

我正在使用 Spring Boot Actuator 依赖项来获取应用程序的见解。为此,我使用了 Spring Boot Admin。客户端-服务器的配置工作正常。我必须测量将要执行的端点的计数、总时间和最大值。

uri:/user/asset/getAllAssets
TOTAL_TIME: 831ms
MAX: 0ms

uri:/user/getEmployee/{employeeId}
TOTAL_TIME: 98ms
MAX: 0ms

为什么 MAX(时间)为 0,而 TOTAL_TIME: 为 Xms

Spring Boot Admin Image

当我执行泛化表单时

<强> localhost:8889/actuator/metrics/http.server.requests 我得到的 MAX 为 3.00..

我还看到了production-ready-features但找不到任何关于 MAX 是如何计算或者它代表什么的描述

注释:随着请求数量的增加,COUNT、TOTAL_TIME 也在增加,但 MAX 有时会减少(详情请参阅请求 1、请求 2)

请求 1:http.server.requests

 {
"name": "http.server.requests",
"description": null,
"baseUnit": "seconds",
"measurements": [
{
"statistic": "COUNT",
"value": 597
},
{
"statistic": "TOTAL_TIME",
"value": 144.9057076
},
{
"statistic": "MAX",
"value": 3.0002913
}
],
"availableTags": [
{
"tag": "exception",
"values": [
"None"
]
},
{
"tag": "method",
"values": [
"GET"
]
},
{
"tag": "uri",
"values": [
"/actuator/metrics/{requiredMetricName}",
"/**/favicon.ico",
"/actuator",
"/user/getEmployee/{employeeId}",
"/user/asset/getAllAssets",
"/actuator/health",
"/actuator/info",
"/actuator/env/{toMatch}",
"/actuator/metrics",
"/**"
]
},
{
"tag": "outcome",
"values": [
"CLIENT_ERROR",
"SUCCESS"
]
},
{
"tag": "status",
"values": [
"404",
"200"
]
}
]
}
<小时/>

更新

<强> localhost:8889/actuator/metrics/http.server.requests?tag=uri:/user/getEmployee/2

响应 404 (我在请求执行器之前已执行/user/getEmployee/2)

<小时/>

<强> localhost:8889/actuator/metrics/http.server.requests?tag=uri:/user/getEmployee/{employeeId}

响应 400

<小时/>

<强> localhost:8889/actuator/metrics/http.server.requests?tag=uri:/user/asset/getAllAssets

{
"name": "http.server.requests",
"description": null,
"baseUnit": "seconds",
"measurements": [
{
"statistic": "COUNT",
"value": 1
},
{
"statistic": "TOTAL_TIME",
"value": 0.8311609
},
{
"statistic": "MAX",
"value": 0
}
],
"availableTags": [
{
"tag": "exception",
"values": [
"None"
]
},
{
"tag": "method",
"values": [
"GET"
]
},
{
"tag": "outcome",
"values": [
"SUCCESS"
]
},
{
"tag": "status",
"values": [
"200"
]
}
]
}

请求 2:http.server.requests

<强> localhost:8889/actuator/metrics/http.server.requests

{
"name": "http.server.requests",
"description": null,
"baseUnit": "seconds",
"measurements": [
{
"statistic": "COUNT",
"value": 3346
},
{
"statistic": "TOTAL_TIME",
"value": 559.7992767999998
},
{
"statistic": "MAX",
"value": 2.3612968
}
],

最佳答案

MAX 指标是滚动最大值。因此它代表滚动窗口中的最大测量值。

例如,如果您每分钟抓取一次指标:

          Total    Count   Max
Minute 1 100 1 100
Minute 2 500 101 90
Minute 3 4500 1000 10
Minute 4 4500 1000 0

在第 1 分钟内,您有 1 个请求,总共 100 毫秒,因此平均持续时间为 100 毫秒,最慢(最大)为 100 毫秒

在第 2 分钟,总数增加了 400(因为总数是累积的),计数增加了 100。因此平均值为 4 毫秒。然而,由于最大值为 90 毫秒,因此您知道虽然该秒内的大多数请求都很快,但仍有一些请求较慢。

在第 3 分钟内,您又收到了 899 个请求(计数),总数增加了 4000 毫秒。 (4000/899 = ~4.4ms)因此您的平均测量值为 4.4ms,最大值为 10ms。

因此 MAX 的目的是测量最差的异常值,以便您了解代码执行的一致性。

查看第 4 分钟,总数和计数没有增加,因为没有请求。由于没有请求,因此不可能存在针对 MAX 的“最慢”请求,这就是 MAX 为 0 的原因。

关于java - Spring Boot 执行器 - MAX 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57247185/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com