API 請求結果桑基圖:由端點到錯誤

追蹤 API 請求由端點到狀態類別,再到每個錯誤嘅成因。睇邊啲端點出錯同原因,再將示範數字換成你自己嘅日誌。

API 結果桑基圖追蹤請求由接收佢嘅端點,去到成功或者某個錯誤類別,再按成因拆開每個錯誤類別。佢會指出最值得先修正嘅端點同成因。

例子有 100 萬個請求,分佈喺四個端點。其中 92 萬成功,6 萬係用戶端錯誤(4xx),2 萬係伺服器錯誤(5xx)。最後一欄顯示每個錯誤嘅成因:用戶端方面有輸入無效、權杖過期、找不到同限流;伺服器方面有逾時、依賴服務故障同程式錯誤。

每個端點嘅錯誤率只係一個數字,而桑基圖會保留路徑:例子入面結帳嘅伺服器錯誤率最高(150 個入面有 7 個),登入嘅用戶端錯誤率最高(200 個入面有 22 個)。數字係虛構嘅。請用同一個時段嘅計數,並說明重試係計一次定每次都計。如果想睇警示而唔係請求嘅同類圖表,可以睇 /yue/sankey/incident-response。

點樣閱讀呢個圖表

  • 1,000 千個請求入面有 920 個(92%)成功;6% 係用戶端錯誤,2% 係伺服器錯誤。
  • 結帳嘅伺服器錯誤率最高:150 個入面有 7 個(約 5%)。
  • 登入嘅用戶端錯誤率最高:200 個請求入面有 22 個(11%)。60 個用戶端錯誤入面,有 20 個係權杖過期造成。
  • 伺服器錯誤入面有一半(20 個入面有 10 個)係逾時。

圖表背後嘅資料

虛構數字,只作說明,並非任何真實公司、團隊或系統嘅資料。

API 請求結果桑基圖:由端點到錯誤 (千個請求)
來源目標數量(千個請求)
搜尋成功(2xx)370
搜尋用戶端錯誤(4xx)22
搜尋伺服器錯誤(5xx)8
結帳成功(2xx)135
結帳用戶端錯誤(4xx)8
結帳伺服器錯誤(5xx)7
登入成功(2xx)175
登入用戶端錯誤(4xx)22
登入伺服器錯誤(5xx)3
目錄成功(2xx)240
目錄用戶端錯誤(4xx)8
目錄伺服器錯誤(5xx)2
用戶端錯誤(4xx)輸入無效25
用戶端錯誤(4xx)權杖過期20
用戶端錯誤(4xx)找不到10
用戶端錯誤(4xx)被限流5
伺服器錯誤(5xx)逾時10
伺服器錯誤(5xx)依賴服務故障6
伺服器錯誤(5xx)程式錯誤4

同樣嘅資料(CSV)

source,target,value
搜尋,成功(2xx),370
搜尋,用戶端錯誤(4xx),22
搜尋,伺服器錯誤(5xx),8
結帳,成功(2xx),135
結帳,用戶端錯誤(4xx),8
結帳,伺服器錯誤(5xx),7
登入,成功(2xx),175
登入,用戶端錯誤(4xx),22
登入,伺服器錯誤(5xx),3
目錄,成功(2xx),240
目錄,用戶端錯誤(4xx),8
目錄,伺服器錯誤(5xx),2
用戶端錯誤(4xx),輸入無效,25
用戶端錯誤(4xx),權杖過期,20
用戶端錯誤(4xx),找不到,10
用戶端錯誤(4xx),被限流,5
伺服器錯誤(5xx),逾時,10
伺服器錯誤(5xx),依賴服務故障,6
伺服器錯誤(5xx),程式錯誤,4

運作方式

  1. 匯出一個時段嘅請求日誌

    取一小時、一日或者一個星期,每個請求都要有端點同狀態碼。

  2. 將端點同狀態碼分組

    保留最繁忙嘅四至六個端點,其餘歸入「其他」。將狀態碼按類別分組。

  3. 加入每個錯誤嘅成因

    用你嘅服務返回嘅錯誤碼或者訊息。將成因分成五至七個標籤。

  4. 檢查平衡

    每個錯誤類別流出嘅請求數必須等於流入。成功嘅請求喺第二欄就完結。

常見問題

要唔要顯示重新導向(3xx)?

只有佢同你嘅問題有關先需要。否則可以當作成功,或者略去,並喺資料說明入面講明。

可以用嚟做即時監控嗎?

唔可以。佢係固定時段嘅快照。即時比率用監控工具更好;呢張圖係用嚟解釋失敗從何而來。

編輯呢個 API 桑基圖

將例子開成你自己嘅圖表,輸入你嘅請求數目。

編輯呢個 API 桑基圖

桑基圖的更多內容