Sentry Web 性能監控之Metrics
目錄
- Apdex
- 失敗率
- 吞吐量 (Total, TPM, TPS)
- 延遲
- 平均事務持續時間
- P50 閾值
- P75 閾值
- P95 閾值
- P99 閾值
- 頻率
- User Misery
- 自定義閾值
Apdex
Apdex 是一種行業標準指標,用于根據您的應用程序響應時間(response time)跟蹤和衡量用戶滿意度(satisfaction)。Apdex 分數提供特定 transaction 或端點中滿意(satisfactory)、可容忍(tolerable)和失敗(frustrated)請求的比率。該指標為您提供了一個標準來比較 transaction 性能,了解哪些可能需要額外優化或調查,并為性能設定目標。
以下是 Apdex 的組成部分及其公式:
- T:目標響應時間的閾值。
- Satisfactory(滿意度):當頁面加載時間小于或等于 T 時,用戶對使用該應用感到滿意。
- Tolerable(可容忍度):當頁面加載時間在 T 到 4T 之間時,用戶認為該應用程序可以容忍使用。
- Frustrated(失敗):當用戶的頁面加載時間大于 4T 時,他們對應用程序感到失望。
- Apdex:(滿意請求數 +(可容忍請求數/2))/(總請求數)
在 Settings > Performance 中為 Apdex 配置令人滿意的響應時間閾值 (ms)。您可以使用自定義閾值為每個項目設置此項。
失敗率
failure_rate() 表示不成功 transaction 的百分比。Sentry 將狀態為 “ok”、“canceled” 和 “unknown” 以外的 transaction 視為失敗。有關更多詳細信息,請參閱可能的狀態值列表。
- https://develop.sentry.dev/sdk/event-payloads/span/
吞吐量 (Total, TPM, TPS)
吞吐量表示給定時間范圍內的事務數 (Total)、平均每分鐘事務數 (TPM) 或每秒平均事務數 (TPS)。
延遲
平均事務持續時間
平均事務持續時間表示給定事務的所有出現的平均響應時間。
以下函數用于聚合事務(aggregate transaction)持續時間:
- average
- various percentiles(默認情況下,預構建的 Transactions 查詢顯示第 75 個和第 95 個百分位數,但還有許多其他選項,包括自定義百分位數)
- maximum
跟蹤這些統計數據的一個用例是幫助您識別比組織的目標服務級別協議 (SLA) 慢的事務。
查看平均值和百分位數時要注意一點:在大多數情況下,您需要設置跟蹤,以便僅將可能的跟蹤的一小部分實際發送到 Sentry,以避免使您的系統不堪重負。此外,您可能希望按日期或其他因素過濾您的 transaction 數據,或者您可能正在跟蹤一個相對不常見的操作。由于所有這些原因,您最終可能會得到方向正確但不準確的平均值和百分位數據。(以最極端的情況為例,如果只有單個事務與您的過濾器匹配,您仍然可以計算“平均(average)”持續時間,即使這顯然不是“平均(average)”通常的意思。)
對于某些指標,樣本量小(以及由此導致的無法有效準確)的問題會比其他指標更頻繁地發生,并且樣本量也會因行而異。例如,計算有意義的平均值所需的數據少于計算同樣有意義的第 95 個百分位數所需的數據。此外,代表對 /settings/my-awesome-org/ 的請求的一行可能包含的事務數量是代表對 /settings/my-awesome-org/projects/best-project-ever/ 的請求的事務的數倍。
- https://docs.sentry.io/product/sentry-basics/tracing/distributed-tracing/#data-sampling
P50 閾值
P50 閾值表示 50% 的事務持續時間大于閾值。這也是中位數。例如,如果 P50 閾值設置為 10 毫秒,則 50% 的事務超過該閾值,耗時超過 10 毫秒。
P75 閾值
P75 閾值表示 25% 的事務持續時間大于閾值。例如,如果 P75 閾值設置為 10 毫秒,則 25% 的事務超過該閾值,耗時超過 10 毫秒。
P95 閾值
P95 閾值表示 5% 的事務持續時間大于閾值。例如,如果 P95 閾值為 50 毫秒,則 5% 的事務超過該閾值,耗時超過 50 毫秒。
P99 閾值
P99 閾值表示 1% 的事務持續時間大于閾值。例如,如果 P99 閾值為 5 秒,則 1% 的事務超過該閾值,耗時超過 5 秒。
頻率
以下函數匯總 transaction 計數和 transaction 記錄速率:
- count
- count unique values (對于給定字段)
- average requests (事務) per second
- average requests (事務) per minute
這些函數中的每一個都是根據給定行中的事務集合計算的,這意味著數字會隨著您過濾數據或更改時間窗口而發生變化。此外,如果您已設置 SDK 來對數據進行采樣,請記住,只有發送到 Sentry 的事務才會被計算在內。因此,如果包含代表對給定端點的請求的事務的行計算為每秒接收 5 個請求,并且您啟用了 25% 的采樣率,則實際上您每秒收到大約 20 個請求到該端點。(20 因為您收集了 25% - 或 1/4 - 的數據,所以您的實際數量是您在 Sentry 中看到的數量的 4 倍。)
- https://docs.sentry.io/product/sentry-basics/tracing/distributed-tracing/#data-sampling
User Misery
User Misery 是一個用戶加權的性能指標,用于評估應用程序性能的相對大小。雖然您可以使用 Apdex 檢查各種響應時間閾值級別的比率,但 User Misery 會根據滿意響應時間閾值 (ms) 的四倍計算感到失望的唯一用戶數。User Misery 突出顯示對用戶影響最大的事務。
您可以使用自定義閾值為每個項目設置令人滿意的閾值。
自定義閾值
對于每個項目,您可以在 [Project] > Settings > Performance 中配置 Apdex 和 User Misery 的計算方式。您可以在 Transaction Summary > Settings 中覆蓋事務級別(transaction level )的項目級別設置。
計算方法確定持續時間是定義為事務的整個長度還是定義為特定的 Web Vital,例如 LCP。響應時間閾值確定令人滿意的基線持續時間是多少毫秒。此閾值可能因項目而異,具體取決于項目面向用戶的方式。
- https://docs.sentry.io/product/performance/web-vitals/