天天看點

1分鐘建構API網關日志解決方案通路日志可以搞些什麼事情玩轉API網關通路日志怎樣開通日志功能

通路日志(Acccess Log)是由web服務生成的日志,每一次api請求都對應一條通路記錄,内容包括調用者IP、請求的URL、響應延遲、傳回狀态碼、請求和響應位元組數等重要資訊。

通路日志對于API網關的意義尤為重要,它可以幫助使用者打破黑盒,了解其web服務的運作狀況。但實際上,雲服務廠商為其使用者提供通路日志确實存在不小的挑戰:

日志分發到使用者空間的實時性:從使用者通路服務産生日志到日志對使用者可見,業界不少的方案是“T+1”時效的;做到秒級延遲對于使用者有非常的意義,使得異常告警、快速問題修複成為可能。

日志的ad-hoc查詢能力:對于trouble shooting場景,工程師在個人經驗和業務知識的基礎上,不斷縮小問題範圍以緻最終定位解決,這個過程中對于日志的分析和查詢需求是不斷變化的,即時查詢的價值由此得到展現。

海量日志的快速分析能力:通路日志和請求PV是對應的,擁有百萬級使用者的服務每天甚至可以達到TB級别的通路日志規模,秒級延遲下滿足常見的日志分析場景是一個重要能力。

開通API網關日志功能後,你可以在日志服務上實時擷取所有通路日志記錄。日志服務對于通路日志的常見使用場景都提供了支援:

報表分析:通過ad-hoc分析文法實時計算結果,并對結果提供豐富的可視化展示

實時查詢:業界有競争力的通路日志查詢體驗,使用者API被調用後可以秒級(1分鐘,90%情況下15秒内)延遲擷取對應的請求日志,查詢文法支援全文關鍵詞、Key-Value、Range查詢,可以在1秒内處理千萬級别日志

異常告警:借助分析文法對日志内容做個性化統計,對于統計結果支援門檻值報警,對接阿裡雲通知中心、短信、釘釘進行告警

日志投遞:一鍵配置資料投遞OSS(低成本歸檔、數倉計算)、MaxCompute(數倉計算)等雲産品,全托管運作

其它:更多個性化需求,可以通過函數計算、消費組、EMR等方式處理通路日志

1分鐘建構API網關日志解決方案通路日志可以搞些什麼事情玩轉API網關通路日志怎樣開通日志功能

阿裡雲API網關的通路日志格式如下:

字段名

字段含義

requestId

每次請求的唯一ID

apiGroupUid

分組ID

apiGroupName

分組名稱

apiStageUid

環境ID

apiStageName

環境名稱

apiUid

API的唯一ID

apiName

API名稱

clientIp

調用者IP

appId

調用者的應用ID

appName

調用者應用名稱

domain

請求的域名

httpMethod

請求方法

path

請求path

statusCode

HTTP狀态碼

errorMessage

錯誤資訊

exception

異常資訊

providerAliUid

API提供者阿裡雲ID

region

regionId

requestHandleTime

請求處理時間

requestSize

請求大小

responseSize

響應大小

serviceLatancy

服務端延時(機關毫秒)

基于靈活的分析文法,你可以按照自己的思路寫出分析語句,通過ad-hoc查詢完成業務需求。日志服務對計算結果提供多種可視化展示方式,dashboard内每個圖表的統計名額支援即時修改生效。

日志服務預設提供了一些API網關的分析報表如下:

api請求成功率、後端服務失敗占比

1分鐘建構API網關日志解決方案通路日志可以搞些什麼事情玩轉API網關通路日志怎樣開通日志功能

請求PV最高的app、請求出現錯誤的api統計

1分鐘建構API網關日志解決方案通路日志可以搞些什麼事情玩轉API網關通路日志怎樣開通日志功能

通路來源app數、top請求次數的appGroup

1分鐘建構API網關日志解決方案通路日志可以搞些什麼事情玩轉API網關通路日志怎樣開通日志功能

api請求PV、服務延遲統計

1分鐘建構API網關日志解決方案通路日志可以搞些什麼事情玩轉API網關通路日志怎樣開通日志功能

top延時的api統計、top請求次數的api統計

1分鐘建構API網關日志解決方案通路日志可以搞些什麼事情玩轉API網關通路日志怎樣開通日志功能

除了官方提供的報表以外,你還可以自己寫分析語句生成報表,例如,統計clientIp的通路來源的城市分布。

在日志Logstore查詢框中填寫分析語句:

儲存查詢結果并添加到儀表盤:

1分鐘建構API網關日志解決方案通路日志可以搞些什麼事情玩轉API網關通路日志怎樣開通日志功能

在儀表盤中看到效果如下:

1分鐘建構API網關日志解決方案通路日志可以搞些什麼事情玩轉API網關通路日志怎樣開通日志功能

快速問題診斷是一項非常重要的能力,可以幫助線上服務減少異常帶來的損失。差別于業界常見的“T+1”日志投送能力,我們可以在日志服務上準實時擷取到最新通路日志,為短時間内定位問題根源提供可能。

在收到告警或看到異常名額後,日志服務的大資料查詢能力可以幫助你快速找到到值得關注的日志記錄。例如,我們排查非getName api,GET請求且狀态碼為500、501、503的通路日志記錄:

1分鐘建構API網關日志解決方案通路日志可以搞些什麼事情玩轉API網關通路日志怎樣開通日志功能

我們在日志服務上儲存一個查詢語句,計算api請求中非200 pv在總體請求pv的占比:

1分鐘建構API網關日志解決方案通路日志可以搞些什麼事情玩轉API網關通路日志怎樣開通日志功能
1分鐘建構API網關日志解決方案通路日志可以搞些什麼事情玩轉API網關通路日志怎樣開通日志功能

你可以在日志服務、API網關兩個産品的控制台上任選其一開通日志功能。

若Logstore已存在請跳過本步驟。

1分鐘建構API網關日志解決方案通路日志可以搞些什麼事情玩轉API網關通路日志怎樣開通日志功能

若Logstore是第一步建立出來的:

1分鐘建構API網關日志解決方案通路日志可以搞些什麼事情玩轉API網關通路日志怎樣開通日志功能

如果Logstore是之前已存在的:

1分鐘建構API網關日志解決方案通路日志可以搞些什麼事情玩轉API網關通路日志怎樣開通日志功能
1分鐘建構API網關日志解決方案通路日志可以搞些什麼事情玩轉API網關通路日志怎樣開通日志功能
1分鐘建構API網關日志解決方案通路日志可以搞些什麼事情玩轉API網關通路日志怎樣開通日志功能

在後的dashboard中将使用到這裡列出的索引配置,請謹慎修改。

1分鐘建構API網關日志解決方案通路日志可以搞些什麼事情玩轉API網關通路日志怎樣開通日志功能

投遞與ETL配置可暫不設定,在将來需要時再建立。

1分鐘建構API網關日志解決方案通路日志可以搞些什麼事情玩轉API網關通路日志怎樣開通日志功能

至此,wizard初始化工作完成,你可以選擇剛才設定的Logstore:api-gateway-access-log進行日志查詢、分析,或者進入儀表盤檢視報表。

1分鐘建構API網關日志解決方案通路日志可以搞些什麼事情玩轉API網關通路日志怎樣開通日志功能

在上圖步驟之後,你的API網關通路日志可以分發到指定Logstore。

如果需要對Logstore做進一步分析,請參考“日志服務控制台上開通步驟”中b~f完成後續配置工作。