全部產品
Search
文件中心

Cloud Monitor:通過Function Compute處理警示通知

更新時間:Jul 30, 2025

當CloudMonitorWebhook現有的警示通知渠道(DingTalk、企業微信、飛書和Slack),以及警示投遞渠道(Auto Scaling、Log Service)和輕量訊息佇列(原 MNS)不能滿足您的需求時,可以通過Function Compute編寫代碼來實現更為廣泛的需求。

前提條件

  • 請確保您已開通Function Compute服務。具體操作,請參見開通Function Compute服務

  • 如果您希望CloudMonitor通知渠道以外的工具也能收到警示通知,請提前準備好他們的Webhook地址。

應用情境

  • 通過Function Compute對警示通知內容的格式進行處理,來實現CloudMonitor通知渠道以外的工具接收警示通知。

  • 通過Function Compute對警示通知的內容進行處理,來實現CloudMonitor警示通知內容的個人化。

步驟一:在Function Compute中部署代碼函數

  1. 建立服務。

    輸入服務名稱,其他參數均使用預設值。具體操作,請參見建立服務

  2. 建立函數。

    基本設定地區,輸入函數名稱請求處理常式類型選擇處理事件請求,其他參數均使用預設值。具體操作,請參見建立函數

    本文以運行環境Java 8為例進行介紹。

    說明

    函數進階配置地區的請求處理常式函數入口)必須與函數代碼對應,例如:函數預設的請求處理常式example.App::handleRequest,其中example標識為包名,App標識為類名,handleRequest標識為類方法。其他語言要求,請參見Function Compute運行時的事件請求處理常式(Event Handler)。

  3. 部署函數代碼。

    1. 在目標函數的函數代碼頁簽,先單擊右上方的上傳代碼,然後選擇上傳JAR包

      說明

      Java是編譯型語言,不支援線上查看編輯代碼,需要您先在本地完成開發後,再通過OSS或JAR包上傳。在Java環境編輯部署程式碼封裝,請參見編譯部署程式碼封裝

      函數代碼中JAR包的樣本如下。表示CloudMonitor的警示通知數據先通過inputStream傳給函數,然後您可以修改資料格式,再將其發送到不同的Webhook地址進行其他商務邏輯處理。該程式碼範例實現了StreamRequestHandler介面,僅將警示通知數據列印出來。

      package example;
      
      import com.aliyun.fc.runtime.Context;
      import com.aliyun.fc.runtime.FunctionInitializer;
      import com.aliyun.fc.runtime.StreamRequestHandler;
      
      import java.io.IOException;
      import java.io.InputStream;
      import java.io.OutputStream;
      
      /**
       * Hello world!
       */
      public class App implements StreamRequestHandler, FunctionInitializer {
      
          public void initialize(Context context) throws IOException {
              //TODO
          }
      
          @Override
          public void handleRequest(
                  InputStream inputStream, OutputStream outputStream, Context context) throws IOException {
              int n;
              StringBuilder sb = new StringBuilder();
              while ((n = inputStream.read()) != -1) {
                  sb.append((char) n);
              }
              System.out.println("alert param");
              System.out.println(sb.toString());
          }
      }
      說明

      代碼開發可以參考以下文檔:

    2. 通過ZIP、JAR包或WAR包上傳代碼對話方塊,先上傳程式碼封裝,然後單擊儲存並部署

  4. 測試函數代碼。

    1. 在目標函數的函數代碼頁簽,單擊測試函數頁簽。

    2. 測試函數頁簽,先單擊配置測試事件,然後將以下CloudMonitor警示通知數據拷貝到建立新測試事件中,再單擊測試函數

      執行成功後,您可以查看返回結果、日誌輸出及業務驗證結果。

      {
          "product":"KVstore",
          "metricName":"ShardingCpuUsage",
          "instance":{
              "instanceId":"r-bp1wt5u2ov6e5w****",
              "resource":"r-bp1wt5u2ov6e5w****",
              "instanceName":"online",
              "vpc":{
                  "vswitchInstanceId":"vsw-bp1rpjm10in1wgxd4****",
                  "vpcInstanceId":"vpc-bp1n5sng5dntm3daf****"
              },
              "aliUid":173651113438****,
              "category":"KVSTORE",
              "region":{
                  "regionId":"cn-hangzhou",
                  "availabilityZone":""
              },
              "networkType":"VPC",
              "dimension":{
      
              },
              "desc":"",
              "tags":[
                  {
                      "value":"1",
                      "key":"__level__"
                  }
              ]
          },
          "Average":0.483,
          "userId":"173651113438****",
          "curLevel":"INFO",
          "Maximum":0.483,
          "__ts__":168612****,
          "instanceId":"r-bp1wt5u2ov6e5w****",
          "escalation":{
              "comparisonOperator":"GreaterThanOrEqualToThreshold",
              "expression":"$Average >= 0.1",
              "level":4,
              "statistics":"Average",
              "tag":"INFO",
              "threshold":"0.1",
              "times":1
          },
          "ruleName":"test-tair",
          "nodeId":"r-bp1wt5u2ov6e5w****-db-1",
          "timestamp":1686123300000
      }

步驟二:在CloudMonitor中設定警示

  1. 登入CloudMonitor控制台

  2. 在左側導覽列,選擇警示服務 > 警示規則

  3. 警示規則頁面,單擊建立警示規則

  4. 建立警示規則頁面,先設定警示規則的基本資料,然後單擊進階設定,開啟Function Compute開關,再配置Function Compute的地區ServiceFunction

    警示規則相關參數的設定方法,請參見建立警示規則

    說明

    本操作中選擇的函數資訊必須與步驟一中建立的服務、函數和歸屬地區保持一致。

  5. 單擊確認

步驟三:查看警示觸發結果

當已設定Function Compute的警示規則發生警示時,會觸發調用目標函數。您可以從Function Compute控制台查看目標函數的調用日誌,並判斷調用日誌是否符合預期。

  1. 登入Function Compute控制台

  2. 在左側導覽列,單擊函數,然後選擇頂部功能表列地區。

  3. 函數列表頁面,單擊目標函數名稱。

  4. 在目標函數的管理頁,單擊下方日誌頁簽,再單擊調用請求頁簽,然後選擇目標時間範圍。

    說明

    當您初次查看函數的調用日誌時,需要單擊一鍵啟用,啟用日誌功能。

  5. 單擊目標調用日誌對應操作列的請求日誌

    您可以查看日誌詳情。