全部產品
Search
文件中心

Platform For AI:自訂監控及擴縮容指標

更新時間:Jul 13, 2024

在某些業務情境中,使用者希望根據自己的商務邏輯來設定一些自訂的監控指標,並根據這些指標進行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等操作。具體操作步驟如下:

  1. 準備服務配置的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等。

  2. 使用設定檔部署模型服務。

    1. 進入部署服務頁面。具體操作,請參見控制台上傳部署

    2. 對應配置編輯地區,單擊JSON獨立部署,並將上述準備好的JSON檔案內容粘貼到編輯框中。

    3. 單擊部署

步驟三:展示指標

服務部署完成後,根據您的代碼邏輯定期上報自訂指標資料。EAS架構提供了本地的API用於接收上報的自訂指標資料。

  • 在對接Auto Scaling時,將使用即時上報的資料。

  • 在資料擷取和展示的鏈路中,由於資料量較大,不會按上報的頻率展示,資料加工鏈路會在一分鐘之內進行採集展示,監控頁面展示的是分鐘層級的資料。

以自訂指標qps為例,查詢方法如下:

  1. 在服務列表中,單擊服務名稱,進入服務詳情頁面。

  2. 切換到服務監控頁簽,在該頁面的左上方選擇custom面板。

    在該面板中,您可以查看自訂指標的監控資料,包括以下兩部分內容:

    • 展示服務中所有執行個體的平均指標資料。

    • 分別展示服務中每個執行個體的指標資料。

    image.png

步驟四:配置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]、變數值為3image.png

    • 當配置的自訂指標需要精確到tag維度時,您需要在自動彈性擴縮容設定對話方塊的自訂擴縮容指標處,組態變數名為custom[qps]@status[200]、變數值為3image.png