2 回答

TA貢獻1887條經驗 獲得超5個贊
指標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 的原因。

TA貢獻1872條經驗 獲得超4個贊
您可以使用?tag=url:{endpoint_tag}
在根/actuator/metrics/http.server.requests
調用的響應中定義的方式來查看各個指標。這些值的詳細信息measurements
是;
COUNT:每秒呼叫速率。
TOTAL_TIME:記錄的總次數。以監控系統的基本時間單位上報
MAX:記錄的最大數量。當這表示時間時,它以監控系統的基本時間單位報告。
既然給在這里,也在這里。
您看到的差異是由于計時器的存在。這意味著在一段時間后,任何標記指標的當前定義MAX
值都可以重置為0
.?您可以添加一些新調用,/user/asset/getAllAssets
然后立即調用以查看給定標簽的/actuator/metrics/http.server.requests
非零值嗎?MAX
這是由于MAX
為每個較小的周期獲取指標背后的想法。當您看到這些指標時,您將能夠MAX
在很長一段時間內獲得一組值,而不是單個值。
您可以在 Micrometer 源代碼中看到這一點。有一種rotate()
方法專注于重置MAX
值以創建上述行為。
您可以看到每次調用都會調用它poll()
,每隔一段時間就會觸發一次以收集指標。
MAX代表什么
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)??
如果我們對特定端點的請求數量較少(或 1 個請求),MAX 是否會為 0?
沒有特定端點的請求數不影響MAX
當 MAX 為 0 時
有一個定時器,它的值為 0。當端點沒有被調用或執行一段時間時,定時器將 MAX 設置為 0。這里的定時器值近似為 2.30 分鐘(150 秒)
我如何確定定時器值?
為此,我采集了 6 個樣本(執行相同的端點 6 次)。為此,我確定了調用端點的時間與 MAX 設置回零的時間之間的時間差
DistributionStatisticConfig.expiry(Duration.ofMinutes(2)).bufferLength(3)
?如果在到期時間或旋轉時間之間沒有請求,則將某些測量值設置為 0?。
MAX屬性屬于?Measurement使用的枚舉統計(在 Measurement 中我們得到 COUNT、TOTAL_TIME、MAX)
公共靜態最終統計MAX
記錄的最大金額。當這表示時間時,它以監控系統的基本時間單位報告。
注意:?這是來自特定端點(此處)的指標的情況/actuator/metrics/http.server.requests?tag=uri:/user/asset/getAllAssets
。
對于廣義度量actuator/metrics/http.server.requests
正如您從請求 1 和請求 2(有問題)中看到的那樣,MAX 已減少(從 3.0002913 到 2.3612968),因此可能由于定時器,某些端點的 MAX 將被設置回 0。在我看來,MAX for/http.server.requests
將與特定端點相同。(但可以肯定的是,對此進行調查)
添加回答
舉報