在某些業務情境中,使用者希望根據自己的商務邏輯來設定一些自訂的監控指標,並根據這些指標進行Auto Scaling,例如每秒鐘接收的異常資料個數等。為滿足這一需求,EAS提供了即時指標上報的介面,並打通了從資料擷取、儲存、展示到Auto Scaling的完整鏈路。您只需在代碼中配置定期上報自訂指標的邏輯,並在服務部署時聲明自訂指標。服務部署成功後,通過該鏈路,EAS便能夠接收服務定期上報的自訂指標資料,並在服務監控頁面中進行展示。
使用限制
僅QPS和CPU Utilization指標支援自動彈性擴縮容。
僅使用自訂鏡像或自訂Processor部署服務時,支援通過metrics欄位聲明該服務需要上報的指標名稱和類型等資訊。
步驟一:配置定期上報指標的介面
部署服務前,您需要準備自訂鏡像或自訂Processor,並在代碼中配置需要上報的自訂指標以及定期上報自訂指標的介面。具體操作,請參考服務部署:自訂鏡像或服務部署:自訂Processor。
例如,在您的代碼中實現的POST要求方法為http://localhost:8080/api/builtin/realtime_metrics
,Request Body如下:
[
{
"name": "qps",
"tags": {
"status": "200"
},
"value": 20
},
{
"name": "qps",
"tags": {
"status": "400"
},
"value": 13
}
]
上述樣本表示上傳了一個名為qps的指標。其中,狀態代碼為200的平均qps為20,狀態代碼為400的平均qps為13。在簡單情境中,如果您不需要使用標籤(tags)對指標進行進一步分類或細分,可以直接忽略tags欄位,如下所示:
[
{
"name": "qps",
"value": 20
}
]
您需要自己編寫代碼,實現定期調用上述介面上報自訂指標的功能。
步驟二:部署服務
定義好自訂指標後,如果希望服務上傳這些自訂指標,您在部署服務時,需要事先在服務配置的JSON檔案中,通過metrics欄位聲明需要上報的指標名稱和類型等資訊。EAS架構會根據您聲明的指標資訊,在服務部署時進行相關初始化,並完成構建監控頁面的dashboard等操作。具體操作步驟如下:
準備服務配置的JSON檔案。
您需要在檔案中增加metrics欄位,用來聲明指標名稱和類型等資訊。以使用自訂鏡像部署服務為例,JSON檔案樣本如下:
{ "name": "metrics_test", "containers": [ { "image": "registry-vpc.cn-chengdu.aliyuncs.com/eas/eas-image-****:metrics", "command": "python3 -u /image.py", "port": 5000 } ], "metrics": [ { "name": "qps", "tags": "status" } ], "metadata": { "instance": 1, "cpu": 2, "memory":1000 } }
其中image配置為前期已準備好的自訂鏡像;metrics各欄位的詳細含義說明如下,其他參數說明,請參見服務模型所有相關參數說明。
參數
是否必選
參數說明
name
是
服務中要上報的自訂指標的名稱。
服務監控頁面會根據該名稱建立監控圖表dashboard。
在Auto Scaling時,根據該名稱來配置Auto Scaling的參考指標。
tags
否
指標的tags名稱。當同一個指標需要進行細分時,可以使用不同的子指標。例如,在qps中,可以按照狀態代碼對指標進行細分。
上述配置表示基於Docker鏡像來部署服務,您可以通過自訂鏡像來構建自己的商務邏輯。metrics欄位配置表示聲明了一個名為qps的指標,監控資料的到期時間為一個星期,超過一個星期的資料會自動清理。同時還定義了一個名為status的tag,可以用於對同一個監控指標上報不同的tag資訊。例如,在qps指標中,使用者通常希望記錄不同狀態代碼所對應的請求數量,比如status=200,status=400等。
使用設定檔部署模型服務。
進入部署服務頁面。具體操作,請參見控制台上傳部署。
在對應配置編輯地區,單擊JSON獨立部署,並將上述準備好的JSON檔案內容粘貼到編輯框中。
單擊部署。
步驟三:展示指標
服務部署完成後,根據您的代碼邏輯定期上報自訂指標資料。EAS架構提供了本地的API用於接收上報的自訂指標資料。
在對接Auto Scaling時,將使用即時上報的資料。
在資料擷取和展示的鏈路中,由於資料量較大,不會按上報的頻率展示,資料加工鏈路會在一分鐘之內進行採集展示,監控頁面展示的是分鐘層級的資料。
以自訂指標qps為例,查詢方法如下:
在服務列表中,單擊服務名稱,進入服務詳情頁面。
切換到服務監控頁簽,在該頁面的左上方選擇custom面板。
在該面板中,您可以查看自訂指標的監控資料,包括以下兩部分內容:
展示服務中所有執行個體的平均指標資料。
分別展示服務中每個執行個體的指標資料。
步驟四:配置Auto Scaling
服務可以開啟基於自訂指標的Auto Scaling,與常規指標的操作方法一致。操作詳情,請參見水平自動擴縮容功能。
以自訂指標qps為例,配置方法如下:
通過本地用戶端開啟Auto Scaling,樣本如下。具體操作方法及參數說明,請參見方式二:通過本地用戶端管理水平自動擴縮容功能。
當配置的自訂指標不需要上報tag時
eascmd autoscale service_name -Dmin=1 -Dmax=10 -Dstrategies.custom[qps]=3
該配置表示當qps指標的平均值超過3時開始擴容,小於3時開始縮容。
當配置的自訂指標需要精確到tag維度時
eascmd autoscale service_name -Dmin=1 -Dmax=10 -Dstrategies.custom[qps]@status[200]=3
該配置表示當qps指標的狀態代碼為200的曲線平均指標超過3時開始擴容,小於3時開始縮容。
通過控制台開啟Auto Scaling,樣本如下。具體操作方法及參數說明,請參見方式一:通過控制台管理水平自動擴縮容功能。
當配置的自訂指標不需要上報tag時,您需要在自動彈性擴縮容設定對話方塊的自訂擴縮容指標處,組態變數名為custom[qps]、變數值為3。
當配置的自訂指標需要精確到tag維度時,您需要在自動彈性擴縮容設定對話方塊的自訂擴縮容指標處,組態變數名為custom[qps]@status[200]、變數值為3。