Ess報警任務全新升級

摘要: AutoScaling(彈性伸縮) 報警任務迎來全新升級,本次升級從監控範圍,監控方式,監控響應速度等三個方面作出了全方位的優化,升級後的 AutoScaling 報警任務將您提供一種更全面,更可靠的利用報警任務動態管理 AutoScaling 伸縮組的方式。html

AutoScaling(彈性伸縮) 報警任務迎來全新升級,本次升級從監控範圍,監控方式,監控響應速度等三個方面作出了全方位的優化,升級後的 AutoScaling 報警任務將您提供一種更全面,更可靠的利用報警任務動態管理 AutoScaling 伸縮組的方式。java

本次的升級內容主要包括:網絡

  1. 增長了對系統磁盤,網卡,TCP鏈接數等監控指標的報警任務支持。
  2. 報警任務最小統計週期升級到 1分鐘,提供更靈敏的監控報警。
  3. 增長自定義監控,爲用戶自有監控系統接入 AutoScaling 報警任務提供標準化方式。

AutoScaling 報警任務

AutoScaling 報警任務是 AutoScaling 與 雲監控服務(CMS) 深度合做,提供的一種動態管理伸縮組的方式,相似於 AutoScaling 定時任務,AutoScaling 報警任務經過觸發您指定的伸縮規則來執行伸縮活動,達到調整伸縮組內實例個數的目的。app

定時任務能夠在您指定的時間執行您指定的伸縮規則,當業務場景在時間上可預料時,可以提早作出響應,可是,在面對突發或者時間上不可預料的業務場景時,定時任務就顯得捉襟見肘,此時,就須要報警任務來提供更靈活的觸發伸縮規則的方式,在業務高峯期增長伸縮組內實例數量來緩解業務壓力,在業務低谷時釋放伸縮組內實例,減少生產成本。maven

報警任務經過監控特定的監控指標,對數據指標進行實時的統計,當統計值知足您指定的報警條件時,觸發報警,執行您指定的伸縮規則。使用報警任務,您能夠實時的根據業務的變化來不斷調整伸縮組內的實例數量,保證您監控的指標維持在您指望的範圍內。工具

AutoScaling 系統監控報警任務

AutoScaling 系統監控報警任務的監控指標是雲監控爲用戶採集的 ECS 實例的相關數據指標,好比CPU,負載等。用戶在 AutoScaling 中設置的系統監控的報警任務是以伸縮組做爲監控粒度的,即以伸縮組內的全部實例的監控指標的統計平均值做爲伸縮組的指標值,當伸縮組內實例數量發生變化時,監控指標也會同時進行更新。字體

支持的監控指標

AutoScaling 系統監控報警任務目前支持的監控項,其中紅色字體表明本次升級新增支持的監控項:優化

監控項 單位
CPU %
內存 %
系統平均負載
內網出流量 KB/min
內網入流量 KB/min
外網出流量 KB/min
外網入流量 KB/min
系統盤寫bps Byte/s
系統盤讀bps Byte/s
系統盤寫iops 個/s
系統盤讀iops 個/s
外網網卡發包數(經典網絡) 個/s
外網網卡收包數(經典網絡) 個/s
內網網卡發包數 個/s
內網網卡收包數 個/s
TCP總鏈接數
TCP已創建鏈接數

注意事項

  1. AutoScaling 伸縮組在同一時刻只能執行一個伸縮活動,當伸縮組內存在正在執行的伸縮活動是,由報警任務觸發伸縮規則產生的伸縮活動將被拒絕。
  2. AutoScaling 報警任務在觸發伸縮規則時受伸縮規則冷卻時間影響,伸縮規則在冷卻時間內時,將拒絕執行伸縮規則。伸縮組內新增長的 ECS 實例從加入伸縮組到完成系統啓動配置,部署用戶業務,獲取到監控數據須要必定的時間(一般須要幾分鐘),所以您應該根據具體的業務場景,設置合適的冷卻時間,防止在新增實例的監控數據缺失的這段時間中,重複觸發伸縮規則。
  3. AutoScaling 報警任務,默認設置了一分鐘的沉默時間,即觸發報警以後,一分鐘內不會再次觸發伸縮規則。
  4. 部分系統監控項(內存,負載,網卡發包數,TCP鏈接數)指標的採集須要爲您安裝雲監控客戶端。默認狀況下,當您針對須要雲監控客戶端採集的監控項設置報警任務時,將爲報警任務關聯的伸縮組內的全部實例安裝雲監控客戶端,同時,將爲您在雲監控控制檯開啓 新購ECS自動安裝雲監控,爲您全部新購的 ECS 實例安裝雲監控客戶端。

AutoScaling 自定義監控項報警任務

AutoScaling 自定義監控項報警任務的監控對象爲用戶自主上報到雲監控中的監控指標。在一些場景下,系統監控項可能不包含您所須要的監控指標,您可能擁有本身的一套監控系統,而且關心的是與您特定業務相關的某些指標,自定義監控報警任務,爲您自有的監控系統,或者與業務相關的自有監控指標提供了設置報警任務的接入點。ui

AutoScaling 自定義監控報警任務是針對阿里云云監控服務的自定義監控項設置報警的,用戶在使用 AutoScaling 自定義監控報警任務以前須要首先向雲監控上報自定義監控數據,即自定義監控項。雲監控自定義監控是提供給用戶自由定義監控項及報警規則的一項服務,經過此服務,用戶能夠針對本身關心的業務指標進行監控,將採集到監控數據上報至雲監控,由雲監控來進行數據的處理,並能夠對其設置報警規則。阿里雲

上報監控數據到雲監控

雲監控的自定義監控服務爲您提供了上報監控數據的方式,您能夠將本身採集到的時序數據上報到雲監控,這樣的數據稱做時間序列。雲監控提供了OpenAPI、Java SDK 和阿里雲命令行工具(CLI) 三種方式上報數據,這裏咱們將主要關注如何使用Java SDK的方式上報監控數據。更多詳細的信息您能夠查看文檔 上報監控數據 。

使用Java sdk以前您須要首先在項目中引入相應的jar包,若是您使用maven管理項目,您只須要在項目中加入如下依賴:

<dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>3.2.6</version>
        </dependency>

        <dependency>
            <groupId>com.aliyun.openservices</groupId>
            <artifactId>aliyun-cms</artifactId>
            <version>0.2.4</version>
        </dependency>

您能夠按照以下的方式向雲監控上報自定義監控項:

static String endPoint     = "https://metrichub-cms-cn-hangzhou.aliyuncs.com";
CMSClient cmsClient = new CMSClient(endPoint, accAutoScalingKey, accAutoScalingSecret);
CustomMetricUploadRequest request = CustomMetricUploadRequest.builder()
                    .append(CustomMetric.builder()
                    .setMetricName("myCustomMetric")//自定義指標名
                    .setGroupId(54504L)//設置分組id
                    .setTime(new Date())//時間
                    .setType(CustomMetric.TYPE_VALUE)//類型爲原始值,
                    .appendValue(MetricAttribute.VALUE, number)//原始值,key只能爲這個
                    .appendDimension("key1", "value1")//添加維度
                    .appendDimension("key2","value2")
                    .build())
                 .build();
            CustomMetricUploadResponse response = cmsClient.putCustomMetric(request);//上報

在上述的代碼片斷中,咱們上報了一個數據點到雲監控。上報時,必須指定groupId參數,即雲監控應用分組id,該分組id能夠是您在雲監控中已建立的應用分組,也能夠是一個不存在的應用分組。您能夠在 雲監控應用分組 建立和查看應用應用分組信息。您上報的自定義監控項(時間序列),能夠在雲監控控制的 自定義監控 中查看。

咱們建議您向一個 雲監控中已經存在的應用分組中推送自定義監控數據,雲監控的應用分組是針對多種雲產品的邏輯分組,向一個已存在的應用分組推送自定義監控數據將使您在須要使用雲監控等相關功能時保留擴展的能力。固然,您也能夠徹底沒必要理會應用分組的概念,選擇向任意一個分組id推送數據。

您上報到雲監控的監控數據,雲監控會自動幫您進行聚合,固然,當您須要推送的數據量太大時,您也能夠選擇在本地聚合以後再推送到雲監控。詳細信息能夠參考 上報監控數據 。

須要注意,雲監控對用戶上報監控數據設置瞭如下限制:

  1. 單雲帳號QPS限制爲100。
  2. 單次最多上報100條數據,body最大爲256KB。
  3. 「metricName」字段只支持字母、數字、下劃線。須要以字母開頭,非字母開頭會替換爲大寫「A」,非法字符替換爲「_」。
  4. 「dimensions」字段不支持「=」、「&」、「,」 ,非法字符會被替換爲「_」。
  5. metricName 和dimensions的Key-value 最大均爲64字節,超過64字節會被截斷。
  6. 其餘限制請關注計量計費說明。

最佳實踐

在本文的最佳實踐中將具體講解 如何在 AutoScaling 控制檯建立,查看,以及修改一條報警任務。

建立系統監控項報警任務

首先進入 AutoScaling控制檯,選中報警任務側邊欄,點擊建立報警任務。

在彈出的建立報警任務對話框中,咱們選中監控類型爲 系統監控,設置任務名稱,描述等基本信息,而後選擇監控資源,即報警任務監控的伸縮組,選擇監控項爲cpu(cpu使用率),統計週期選擇1分鐘,表示將對每1分鐘的監控數據進行統計檢查,判斷是否知足報警條件。統計辦法咱們選擇了 平均值>=50%,重複3次,這表示,當cpu的使用了在1分鐘平均值超過閾值50%,而且連續3次知足統計辦法時,將發生報警。報警觸發規則爲伸縮規則add1,代表在發生報警時,將執行報警規則add1,爲伸縮組增長1臺機器。

建立自定義監控項報警任務

建立自定義監控項報警任務的過程和建立系統監控相似,惟一的不一樣在於,系統監控報警任務的監控項是由雲監控爲用戶採集,而自定義監控報警任務的監控項則須要用戶本身上報至雲監控。

在建立自定義監控類型的報警任務時,首先須要存在已上報的自定義監控項,即時間序列。而後才能針對該時間序列設置報警規則。

在上圖建立自定義報警任務以前,已經向雲監控推送了一條自定義監控數據流(時間序列)。該時間序列所屬的應用分組爲54504,監控項名稱爲testMetric,維度信息爲 age=10。

查看監控項詳情

在成功的建立完報警任務以後,咱們能夠在報警任務列表看到咱們剛剛建立的報警任務。

切換到自定義監控列表,查看剛剛建立的自定義報警任務。

點擊報警任務的名稱,將跳轉到詳情頁,在詳情頁您將看到報警任務對應監控項的歷史數據。

修改報警任務

您能夠在報警任務的列表頁修改報警任務,也能夠進入報警任務的詳情頁修改報警規則。

修改報警任務分爲兩個部分,一個是修改報警任務的基本信息,另一個是修改報警規則的觸發規則。

修改基本信息包括修改任務名稱,監控項,統計週期,統計辦法,重複次數等,咱們不建議您修改報警任務的監控項,由於,修改監控項意味着監控不一樣的指標,此時,新建一條針對新指標的報警任務是更合適的方法。

寫在最後

AutoScaling 報警任務爲您提供了一種經過監控特定監控指標來動態調整伸縮組內實例數量的方法,讓您可以根據業務的變化實時的執行指定的伸縮規則,調整伸縮組內的實例數量。

本次的 AutoScaling 報警任務的升級,擴展了原有的監控指標,並在原有監控項的基礎上,支持用戶接入自定義的監控項,提供定製化的報警任務,大大加強了 AutoScaling 報警任務的可用性和實用性,知足用戶具體的,多樣化的需求。

原文連接

相關文章
相關標籤/搜索