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