日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

報警規則表達式說明

當您創建報警規則時,如果需要配置復雜的報警條件,則需要通過報警規則表達式來實現。本文為您介紹報警規則表達式的基本元素、歷史函數和應用場景。

基本元素

云監控通過報警規則表達式對監控指標的聚合數據或監控指標的某個實例進行計算,當監控數據滿足該表達式時,觸發報警。報警規則表達式包括:監控指標、監控指標的成員、運算符、函數和監控數據,例如:@cpu_total[60].$instanceId != 'i-2ze3jvsy7620giru****' && @cpu_total[60].$Average > 60

  • 監控指標

    各云產品的監控指標名稱,請參見云產品監控項

    監控指標的報警規則表達式為@監控指標名稱[聚合周期],例如:云服務器ECS的監控指標為CPUUtilization,報警規則表達式為@CPUUtilization[60]

    說明
    • 關于如何查詢某個云產品的監控指標的聚合周期,請參見云服務器ECS中的Min Periods列。

    • 監控指標名稱需要符合正則表達式[a-zA-Z][_a-zA-Z0-9]*,不符合該正則表達式的監控指標需要用@(監控指標名稱)[聚合周期]來代替,例如:@('vm.DiskIORead')[60]

    在報警規則表達式中,監控指標不能單獨出現,需要配合監控指標成員來確定具體的監控數據。

  • 監控指標成員

    監控指標成員確定監控指標的某個數據。監控指標成員需要以$開頭,在報警規則表達式中的訪問方式是@指標[聚合周期].$指標成員,例如:云服務器ECS的監控指標CPUUtilization的Statistics為Average、Minimum和Maximum,監控指標CPUUtilization的平均值的報警規則表達式為@CPUUtilization[60].$Average;云服務器ECS的監控指標CPUUtilization的Dimensions為userIdinstanceId,監控指標CPUUtilization的實例ID的報警規則表達式為@CPUUtilization[60].$instanceId

    說明

    關于如何查詢某個云產品的監控指標的成員,請參見云服務器ECS中的DimensionsStatistics列。

  • 運算

    計算監控數據是否達到報警條件。

    • 基本運算符

      運算符分類

      運算符及其說明

      數學運算符

      • +:加。

      • -:減。

      • *:乘。

      • /:除。

      • %:取模。

      • **:指數。

      比較運算符

      • ==:等于。

      • !=:不等于。

      • >:大于。

      • >=:大于等于。

      • <:小于。

      • <=:小于等于。

      邏輯運算符

      • &&and:邏輯與。

      • ||or:邏輯或。

      • !not:邏輯非。

      示例:$Average > 50 && $instanceId != 'i-not-exist'。

      說明

      當數學運算符或比較運算符兩邊不是同一類型時,string類型轉為number類型,例如:'123' + 321 == 123 + '321' == 444 。

    • 字符串操作

      字符串操作

      說明

      示例

      matches

      正則表達匹配。

      通過邏輯非和matches運算符來判斷一個字符串是否匹配某個正則表達式。

      !("hello" matches "^fo.+")

      說明

      由于!的優先級比matches高,因此必須使用括號。

      contains

      包含字符串。

      'abcdef' contains 'cde'

      startsWith

      字符串指定前綴。

      'abcdef' startsWith 'abc'

      endsWith

      字符串指定后綴。

      'abcdef' endsWith 'def'

    • 成員關系運算符

      成員關系運算符

      說明

      示例

      in

      包含。

      • userld in [120886317861****,425876]

        userld120886317861****20654616023382****。

      • "foo"in{'foo':1,'bar':2}

        foo是foobar。

      not in

      不包含。

      • userld not in [120886317861****,425876]

        userld不是120886317861****20654616023382****。

      • "foo"in{'foo1':1,'bar':2}

        foo不是foo1bar。

    • 三元運算

      ?::效果與C++和Java語言中的三元運算相同,例如:@CPUUtilization[60].$Average > 30? "ok": "lower"。

  • 數據操作

    • 數據類型

      數據類型

      說明

      示例

      string

      單引號或雙引號內的字符串。

      "hello", 'hello'

      number

      數值??梢允钦麛祷蚋↑c數。

      說明

      當數值為整數時,可以使用數字分隔符,便于維護和閱讀。

      • 103, 2.5, .5, 2e+6

      • 1_000_000

      array

      數組。

      [1, 2, 3]

      map或dict

      字典。

      {"foo":"bar"}

      bool

      布爾值。

      truefalse

      nil

      空值,即無數據。

      nil

    • 內置函數

      內置函數

      說明

      len(array|map|string)

      Array、Map或字符串的長度。

      now()

      返回毫秒級的時間戳(UTC)。

      abs(number)

      絕對值,返回浮點數。

      rand()

      返回一個介于[0, 1)的浮點數。

      rand(N)

      返回一個介于[0, N)的浮點數。

      toLower(string)

      字符串轉小寫。

      toUpper(string)

      字符串轉大寫。

    • 同比環比

      說明
      • 指標,例如:@cpu_total[60]。

      • 聚合方式(字符串),例如:'$Average'

      • 對比結果(布爾值),本周期大于上個周期為true,小于上個周期為false。

      函數

      說明

      CompareLastPeriod(指標, 聚合方式, 對比結果)

      環比上個周期,例如:CompareLastPeriod(@cpu_total[60], '$Average', true)。

      假設本周期cpu_total的平均值為20%,上周期cpu_total的平均值為15%,對比結果不同取值的計算方法如下:

      • 當為true時,該表達式的結果為(20-15)× 100÷20。

      • 當為false時,該表達式的結果為(15-20)× 100÷20。

      CompareLastHour(指標, 聚合方式, 對比結果)

      同比上個小時。

      CompareLastHour(@cpu_total[60], '$Average', true) > 10:表示當cpu_total的平均值同比上個小時上漲10%時,觸發報警。

      CompareYesterday(指標, 聚合方式, 對比結果)

      同比昨天。

      CompareYesterday(@cpu_total[60], '$Average', true) > 10:表示當cpu_total的平均值同比昨天上漲10%時,觸發報警。

      CompareLastWeek(指標, 聚合方式, 對比結果)

      同比上周。

      CompareLastWeek(@cpu_total[60], '$Average', true) > 10:表示當cpu_total的平均值同比上周上漲10%時,觸發報警。

      ComparePast(指標, 聚合方式, 對比結果, seconds)

      同比seconds之前的數據,該函數是同比和環比的完整形式。

      以上四個函數是該函數的簡化調用,例如:

      • CompareLastHour(@cpu_total[60], '$Average', true) 等價于ComparePast(@cpu_total[60], '$Average', true, 3600) 。

      • CompareYesterday(@cpu_total[60], '$Average', true) 等價于ComparePast(@cpu_total[60], '$Average', true, 24*60*60) 。

      • CompareLastWeek(@cpu_total[60], '$Average', true) 等價于ComparePast(@cpu_total[60], '$Average', true, 7*24*60*60) 。

    • 歷史函數

      函數

      說明

      LastPeriod(指標)

      取上個周期的數據,例如:LastPeriod(@cpu_total[60]).$Average > 75 表示cpu_total上個周期的平均值大于75%,觸發報警。

      LastHour(指標)

      取一小時之前的數據,例如:LastHour(@cpu_total[60]).$Average > 75表示cpu_total一小時之前的平均值大于75%,觸發報警。

      Yesterday(指標)

      取昨天相同時刻的數據,例如:Yesterday(@cpu_total[60]).$Average > 75表示cpu_total昨天相同時刻的平均值大于75%,觸發報警。

      LastWeek(指標)

      取上周相同時刻的數據,例如:LastWeek(@cpu_total[60]).$Average > 75表示cpu_total上周相同時刻的平均值大于75%,觸發報警。

      Past(指標, seconds)

      取seconds秒之前的數據,seconds應為指標聚合周期的整數倍,該函數是上述歷史函數的完整形式,例如:Past(@cpu_total[60], 3600) > 75等價于LastHour(@cpu_total[60]).$Average > 75

應用場景

報警規則表達式的應用場景及其說明如下表所示。

應用場景

報警規則表達式

說明

應用分組中某個特殊實例使用高優先級的排他性閾值(多閾值)

@cpu_total[60].$Average > (@cpu_total[60].$instanceId == 'i-io8kfvcpp7x5****'? 80: 50)

僅實例為i-io8kfvcpp7x5****時,cpu_total的平均值大于80,才會觸發報警;其他實例的cpu_total的平均值大于50,就會觸發報警。

局部黑名單

@cpu_total[60].$instanceId != 'i-io8kfvcpp7x5****' && @cpu_total[60].$Average > 50

當實例為i-io8kfvcpp7x5****時,返回false,不會觸發報警;其他實例的cpu_total平均值大于50,就會觸發報警。

多指標組合

@cpu_total[60].$Average > 50 && @memory_usage[60].$Average > 80

當實例的cpu_total平均值>50%且memory_usage平均值>80%時,觸發報警。

指標延遲上報報警

now() - @heartbeat[60].$reportTime > 60_000

當心跳超時大于1分鐘時,觸發報警。

說明

reportTime為監控指標的上報時間,是指標自帶字段。now()函數為系統內置函數,返回當前時間為毫秒級UTC時間戳。