全部产品
Search
文档中心

Resource Orchestration Service:ALIYUN::SLS::Alert

更新时间:Jul 06, 2025

ALIYUN::SLS::Alert digunakan untuk membuat aturan peringatan.

Sintaksis

{
  "Type": "ALIYUN::SLS::Alert",
  "Properties": {
    "Project": String,
    "Detail": Map
  }
}

Properti

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Batasan

Project

String

Ya

Tidak

Nama proyek.

Tidak ada.

Detail

Map

Ya

Ya

Detail aturan peringatan.

Untuk informasi lebih lanjut, lihat Properti Detail.

Sintaksis Detail

"Detail": {
  "Type": String,
  "Description": String,
  "Configuration": Map,
  "State": String,
  "Schedule": Map,
  "DisplayName": String,
  "Name": String
}

Properti Detail

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Batasan

Type

String

Tidak

Tidak

Jenis aturan peringatan.

Tidak ada.

Description

String

Tidak

Ya

Deskripsi aturan peringatan.

Tidak ada.

Configuration

Map

Ya

Ya

Konfigurasi aturan peringatan.

Untuk informasi lebih lanjut, lihat Properti Konfigurasi.

State

String

Tidak

Tidak

Menentukan apakah akan mengaktifkan aturan peringatan.

Nilai valid:

  • Aktif

  • Nonaktif

Schedule

Map

Ya

Ya

Interval waktu di mana Log Service mengevaluasi aturan peringatan.

Jika lebih dari 100 entri log dikembalikan ketika Log Service mengevaluasi aturan peringatan, hanya 100 entri log pertama yang diperiksa.

Untuk informasi lebih lanjut, lihat Properti Jadwal.

DisplayName

String

Ya

Ya

Nama tampilan aturan peringatan.

Nama harus memiliki panjang 1 hingga 64 karakter.

Name

String

Ya

Tidak

Nama aturan peringatan.

Tidak ada.

Sintaksis Konfigurasi

"Configuration": {
  "Throttling": String,
  "Condition": String,
  "NotificationList": List,
  "NotifyThreshold": Integer,
  "Dashboard": String,
  "QueryList": List,
  "Type": String,
  "GroupConfiguration": Map,
  "NoDataFire": Boolean,
  "Threshold": Integer,
  "SeverityConfigurations": List,
  "Labels": List,
  "AutoAnnotation": Boolean,
  "PolicyConfiguration": Map,
  "SendResolved": Boolean,
  "NoDataSeverity": Integer,
  "Annotations": List,
  "MuteUntil": Integer,
  "JoinConfigurations": List,
  "Version": String
}

Properti Konfigurasi

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Batasan

Throttling

String

Tidak

Ya

Interval waktu di mana Log Service mengirimkan notifikasi peringatan.

Tidak ada.

Condition

String

Tidak

Ya

Kondisi pemicu.

Operator aritmatika berikut didukung: penambahan (+), pengurangan (-), perkalian (*), pembagian (/), dan modulo (%). Operator pembanding berikut didukung: lebih besar dari (>), lebih besar dari atau sama dengan (>=), kurang dari (<), kurang dari atau sama dengan (<=), sama dengan (==), tidak sama dengan (!=), cocok (=~), dan tidak cocok (!~).

Untuk informasi lebih lanjut, lihat Sintaksis kondisi pemicu dalam aturan peringatan.

NotificationList

List

Tidak

Ya

Daftar notifikasi peringatan.

Untuk informasi lebih lanjut, lihat Properti NotificationList.

NotifyThreshold

Integer

Tidak

Ya

Ambang batas berdasarkan mana notifikasi peringatan dipicu.

Tidak ada.

Dashboard

String

Ya

Ya

Dasbor yang terkait dengan aturan peringatan.

Tidak ada.

QueryList

List

Ya

Ya

Daftar pernyataan kueri.

Untuk informasi lebih lanjut, lihat Properti QueryList.

Type

String

Tidak

Ya

Jenis aturan peringatan.

Setel nilai ke default.

GroupConfiguration

Map

Tidak

Ya

Konfigurasi evaluasi grup.

Untuk informasi lebih lanjut, lihat Properti GroupConfiguration.

NoDataFire

Boolean

Tidak

Ya

Menentukan apakah akan mengaktifkan fitur peringatan tanpa data.

Nilai default: false. Nilai valid:

  • true: mengaktifkan fitur peringatan tanpa data.

    Jika Anda mengatur properti ini ke true, peringatan dipicu ketika jumlah kali tidak ada data yang dikembalikan untuk hasil kueri dan analisis melebihi nilai properti Threshold.

    Catatan

    Jika beberapa hasil kueri dan analisis ada, peringatan dipicu ketika jumlah kali tidak ada data yang dikembalikan untuk operasi set pada hasil kueri dan analisis melebihi nilai properti Threshold.

    Untuk informasi lebih lanjut, lihat Peringatan tanpa data.

  • false: menonaktifkan fitur peringatan tanpa data.

Threshold

Integer

Tidak

Ya

Ambang batas berdasarkan mana peringatan dipicu.

Jika jumlah kali berturut-turut kondisi pemicu terpenuhi mencapai ambang batas yang ditentukan, peringatan dipicu. Sistem tidak menghitung jumlah kali ketika kondisi pemicu tidak terpenuhi.

SeverityConfigurations

List

Tidak

Ya

Kondisi pemicu. Anda harus menentukan setidaknya satu kondisi pemicu.

Untuk informasi lebih lanjut, lihat Properti SeverityConfigurations.

Labels

List

Tidak

Ya

Label aturan peringatan.

Untuk informasi lebih lanjut, lihat Properti Labels.

AutoAnnotation

Boolean

Tidak

Ya

Menentukan apakah memungkinkan sistem secara otomatis menambahkan anotasi ke aturan peringatan.

Nilai default: true. Nilai valid:

  • true: memungkinkan sistem secara otomatis menambahkan anotasi seperti __count__ ke aturan peringatan.

    Untuk informasi lebih lanjut, lihat Saklar Tambah Otomatis.

  • false: tidak memungkinkan sistem secara otomatis menambahkan anotasi ke aturan peringatan.

PolicyConfiguration

Map

Tidak

Ya

Konfigurasi kebijakan peringatan.

Untuk informasi lebih lanjut, lihat Properti PolicyConfiguration.

SendResolved

Boolean

Tidak

Ya

Menentukan apakah mengirim notifikasi pemulihan ketika peringatan dibersihkan.

Nilai default: false. Nilai valid:

  • true: mengirim notifikasi pemulihan ketika peringatan dibersihkan.

    Untuk informasi lebih lanjut, lihat Notifikasi Pemulihan.

  • false: tidak mengirim notifikasi pemulihan ketika peringatan dibersihkan.

NoDataSeverity

Integer

Tidak

Ya

Tingkat keparahan peringatan tanpa data.

Untuk informasi lebih lanjut, lihat Tingkat Keparahan Peringatan.

Annotations

List

Tidak

Ya

Anotasi aturan peringatan.

Untuk informasi lebih lanjut, lihat Properti Annotations.

MuteUntil

Integer

Tidak

Ya

Ambang batas berdasarkan mana peringatan dipicu.

Tidak ada.

JoinConfigurations

List

Tidak

Ya

Konfigurasi operasi set.

Untuk informasi lebih lanjut, lihat Properti JoinConfigurations.

  • Jika Anda menentukan hanya satu pernyataan kueri dalam properti QueryList, Anda tidak perlu menentukan properti JoinConfigurations.

  • Jika Anda menentukan dua atau tiga pernyataan kueri dalam properti QueryList, Anda harus menentukan properti JoinConfigurations untuk mengaitkan hasil kueri dan analisis.

    Untuk informasi lebih lanjut, lihat Operasi multi-set.

Version

String

Tidak

Ya

Versi aturan peringatan.

Setel nilai ke 2.0.

Sintaksis NotificationList

"NotificationList": [
  {
    "Type": String,
    "MobileList": List,
    "ServiceUri": String,
    "Content": String,
    "EmailList": List,
    "Method": String,
    "Headers": Map
  }
]

Properti NotificationList

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Batasan

Type

String

Ya

Tidak

Metode yang digunakan untuk mengirim notifikasi peringatan.

Nilai valid:

  • Email: email

  • MessageCenter: Pusat Pesan

  • DingTalk: webhook chatbot DingTalk

  • Webhook: webhook kustom

Content

String

Tidak

Tidak

Isi notifikasi peringatan.

Anda dapat menggunakan variabel template berikut dalam konten: ${Project}, ${Condition}, ${AlertName}, ${AlertID}, ${Dashboard}, ${FireTime}, and ${Results}.

Untuk informasi lebih lanjut, lihat Konfigurasikan metode notifikasi.

MobileList

List

Tidak

Tidak

Daftar nomor ponsel.

Nomor ponsel dapat menerima hingga 50 pesan teks setiap hari.

ServiceUri

String

Tidak

Tidak

URL permintaan.

Properti ini diperlukan jika Anda mengatur properti Type ke Webhook atau DingTalk.

EmailList

List

Tidak

Tidak

Daftar alamat email.

Properti ini diperlukan jika Anda mengatur properti Type ke Email.

Alamat email dapat menerima hingga 100 email setiap hari.

Method

String

Tidak

Tidak

Metode permintaan.

Tidak ada.

Headers

Map

Tidak

Tidak

Detail header permintaan.

Tidak ada.

Sintaksis QueryList

"QueryList": [
  {
    "Query": String,
    "LogStore": String,
    "Start": String,
    "TimeSpanType": String,
    "End": String,
    "ChartTitle": String,
    "DashboardId": String,
    "Region": String,
    "RoleArn": String,
    "StoreType": String,
    "PowerSqlMode": String,
    "Project": String,
    "Store": String
  }
]

Properti QueryList

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Batasan

Query

String

Ya

Tidak

Pernyataan kueri.

Tidak ada.

LogStore

String

Tidak

Tidak

Logstore.

Tidak ada.

Start

String

Ya

Tidak

Awal rentang waktu untuk kueri.

Tidak ada.

TimeSpanType

String

Ya

Tidak

Rentang waktu untuk kueri.

Tidak ada.

End

String

Ya

Tidak

Akhir rentang waktu untuk kueri.

Tidak ada.

ChartTitle

String

Tidak

Tidak

Judul grafik.

Tidak ada.

DashboardId

String

Tidak

Tidak

ID dasbor yang terkait dengan aturan peringatan.

Tidak ada.

Region

String

Tidak

Tidak

Wilayah proyek.

Tidak ada.

RoleArn

String

Tidak

Tidak

Nama ARN Alibaba Cloud dari peran RAM yang diperlukan untuk mengakses data.

Untuk informasi lebih lanjut, lihat Konfigurasikan kebijakan kontrol akses.

StoreType

String

Tidak

Tidak

Jenis sumber data.

Nilai valid:

  • log: Data Logstore

  • metric: Data Metricstore

  • meta: data sumber daya

PowerSqlMode

String

Tidak

Tidak

Menentukan apakah memungkinkan sistem mengaktifkan SQL Khusus.

Nilai valid:

  • auto: Sistem secara otomatis mengaktifkan atau menonaktifkan SQL Khusus.

  • enable: Sistem mengaktifkan SQL Khusus.

  • disable: Sistem menonaktifkan SQL Khusus.

Project

String

Tidak

Tidak

Proyek yang terkait dengan pernyataan kueri.

Tidak ada.

Store

String

Tidak

Tidak

Logstore, Metricstore, atau data sumber daya yang terkait dengan pernyataan kueri.

Tidak ada.

Sintaksis Jadwal

"Schedule": {
  "Type": String,
  "Interval": String,
  "Hour": Integer,
  "DayOfWeek": Integer,
  "CronExpression": String,
  "Delay": Integer,
  "RunImmediately": Boolean
}

Properti Jadwal

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Batasan

Type

String

Ya

Ya

Jenis jadwal berdasarkan mana aturan peringatan dipicu.

Nilai valid:

  • Hourly: Aturan peringatan dipicu setiap jam.

  • Daily: Aturan peringatan dipicu setiap hari.

  • Weekly: Aturan peringatan dipicu setiap minggu.

  • FixedRate: Aturan peringatan dipicu secara berkala.

  • Cron: Aturan peringatan dipicu berdasarkan ekspresi CRON.

Interval

String

Tidak

Ya

Interval waktu di mana aturan peringatan dipicu secara berkala.

Properti ini diperlukan jika Anda mengatur properti Type ke FixedRate.

Nilai valid:

  • 10d: Aturan peringatan dipicu setiap 10 hari.

  • 10h: Aturan peringatan dipicu setiap 10 jam.

  • 10m: Aturan peringatan dipicu setiap 10 menit.

Hour

Integer

Tidak

Ya

Jam hari ketika aturan peringatan dipicu.

Properti ini diperlukan jika Anda mengatur properti Type ke Daily atau Weekly.

Nilai valid: 0 hingga 23.

DayOfWeek

Integer

Tidak

Ya

Hari dalam seminggu ketika aturan peringatan dipicu.

Properti ini diperlukan jika Anda mengatur properti Type ke Weekly.

Nilai valid: 1 hingga 7.

CronExpression

String

Tidak

Ya

Ekspresi CRON berdasarkan mana aturan peringatan dipicu.

Properti ini diperlukan jika Anda mengatur properti Type ke Cron.

RunImmediately

Boolean

Tidak

Ya

Menentukan apakah akan segera memicu aturan peringatan.

Nilai valid:

  • true

  • false

Delay

Integer

Tidak

Ya

Menentukan apakah menunda pemantik aturan peringatan.

Tidak ada.

Sintaksis SeverityConfigurations

"SeverityConfigurations": {
 "EvalCondition": Map,
 "Severity": Integer
}

Properti SeverityConfigurations

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Batasan

EvalCondition

Map

Tidak

Tidak

Kondisi pemicu.

Untuk informasi lebih lanjut, lihat Properti EvalCondition.

Severity

Integer

Ya

Tidak

Tingkat keparahan peringatan.

Untuk informasi lebih lanjut, lihat Struktur data aturan pemantauan peringatan.

Sintaksis EvalCondition

"EvalCondition": {
"Condition": String,
"CountCondition": String
}

Properti EvalCondition

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Batasan

Condition

String

Tidak

Tidak

Ekspresi yang digunakan untuk mencocokkan data.

  • Jika Anda tidak perlu mencocokkan data, atur nilainya ke string kosong.

  • Pada skenario lain, atur nilainya ke ekspresi. Contoh: errCnt > 10.

CountCondition

String

Tidak

Tidak

Ekspresi yang digunakan untuk mencocokkan jumlah entri data.

  • Jika Anda ingin ekspresi cocok ketika data ada, atur nilainya ke string kosong.

  • Pada skenario lain, atur nilainya ke ekspresi. Contoh: __count__ > 3.

Sintaksis Labels

"Labels": [{
 "Value": String,
 "Key": String
}]

Properti Labels

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Batasan

Value

String

Ya

Tidak

Nilai bidang.

Tidak ada.

Key

String

Ya

Tidak

Kunci bidang.

Tidak ada.

Sintaksis GroupConfiguration

"GroupConfiguration": {
 "Type": String,
 "Fields": List
}

Properti GroupConfiguration

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Batasan

Type

String

Ya

Tidak

Jenis evaluasi grup.

Nilai valid:

  • no_group: Hasil kueri dan analisis tidak dikelompokkan.

  • custom: Hasil kueri dan analisis dikelompokkan berdasarkan bidang kustom yang Anda tentukan.

  • labels_auto: Hasil kueri dan analisis secara otomatis dikelompokkan berdasarkan label yang Anda tentukan. Nilai ini hanya didukung untuk data deret waktu.

Fields

List

Tidak

Tidak

Bidang berdasarkan mana evaluasi grup dilakukan.

Tidak ada.

Sintaksis Annotations

"Annotations": [{
 "Value": String,
 "Key": String
}]

Properti Annotations

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Batasan

Key

String

Ya

Tidak

Kunci bidang.

Tidak ada.

Value

String

Ya

Tidak

Nilai bidang.

Tidak ada.

Sintaksis JoinConfigurations

"JoinConfigurations": {
 "Type": String,
 "Condition": String
}

Properti JoinConfigurations

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Batasan

Condition

String

Tidak

Tidak

Ekspresi kondisional.

Properti ini diperlukan jika Anda mengatur properti Type ke cross_join, concat, atau no_join. Contoh: $0.host == $1.ip.

Type

String

Ya

Tidak

Jenis operasi set.

Nilai valid:

  • cross_join: Produk Kartesius.

  • inner_join: inner join.

  • left_join: left join

  • right_join: right join.

  • full_join: full join.

  • left_exclude: pengecualian kiri.

  • right_exclude: pengecualian kanan.

  • concat: penggabungan. Sistem melintasi setiap dataset secara berurutan.

  • no_join: tanpa join. Sistem hanya menggunakan dataset pertama.

Sintaksis PolicyConfiguration

"PolicyConfiguration": {
"RepeatInterval": String,
 "ActionPolicyId": String,
 "AlertPolicyId": String,
 "UseDefault": Boolean
}

Properti PolicyConfiguration

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Batasan

RepeatInterval

String

Tidak

Tidak

Interval pengulangan.

Tidak ada.

ActionPolicyId

String

Tidak

Tidak

ID kebijakan tindakan.

Dalam mode lanjutan, jika kebijakan peringatan tidak menggunakan kebijakan tindakan dinamis, atur nilainya ke string kosong.

AlertPolicyId

String

Tidak

Tidak

ID kebijakan peringatan.

  • Dalam mode sederhana atau standar, atur nilainya ke sls.builtin.dynamic. Nilai tersebut menentukan kebijakan peringatan dinamis bawaan.

  • Dalam mode lanjutan, atur nilainya ke ID kebijakan peringatan yang ingin Anda gunakan.

UseDefault

Boolean

Tidak

Tidak

Bidang kompatibilitas.

Atur nilainya ke false.

Nilai Pengembalian

Fn::GetAtt

Nama: Nama aturan peringatan.

Contoh

  • YAML format

    ROSTemplateFormatVersion: '2015-09-01'
    Parameters: {}
    Resources:
      Alert:
        Type: ALIYUN::SLS::Alert
        Properties:
          Project: TestSlsProject
          Detail:
            DisplayName: ros-test-alert
            Description: test
            Schedule:
              Delay: 1
              Interval: 15m
              Type: FixedRate
              RunImmediately: false
            State: Enabled
            Configuration:
              Throttling: 5m
              NotifyThreshold: 1
              QueryList:
                - End: now
                  LogStore: audit-cf5362d1f87754fb29
                  ChartTitle: k8s-log-c7b729e7ea122425182133bc2c3ea
                  Start: '-15m'
                  Query: |-
                    objectRef.resource : "networkpolicies" and verb : create NOT  user.username: node NOT  user.username: serviceaccount NOT  user.username: apiserver NOT  user.username: kube-scheduler NOT  user.username: kube-controller-manager       | SELECT auditID as "Event ID", date_format(from_unixtime(__time__), '%Y-%m-%d %T' ) as "Operation time", "objectRef.name" as "Name", "objectRef.namespace" as "Namespace", "responseStatus.code" as "Status code",
                     CASE WHEN "user.username" != 'kubernetes-admin' then "user.username"
                     WHEN "user.username" = 'kubernetes-admin' and regexp_like("annotations.authorization.k8s.io/reason", 'RoleBinding') then regexp_extract("annotations.authorization.k8s.io/reason", ' to User "(\w+)"', 1) ELSE 'kubernetes-admin' END  
                     as "Username", 
                    CASE WHEN json_array_length(sourceIPs) = 1 then json_format(json_array_get(sourceIPs, 0)) ELSE  sourceIPs END
                    as "Source IP address" order by "Operation time"
                  TimeSpanType: Custom
              Dashboard: audit-cf5362d1f87754fb4a_network_policy_op_cn
              NotificationList:
                - Content: Pesan
                  ServiceUri: http://xxxx
                  Type: DingTalk
                - Content: Pesan Email
                  EmailList:
                    - abc@test.com
                  Type: Email
                - MobileList:
                    - 132373830xx
                  Content: Pesan ponsel
                  Type: SMS
              Condition: total  > 1
            Type: Alert
            Name: alert_2
    Outputs:
      Name:
        Description: Nama peringatan.
        Value:
          Fn::GetAtt:
            - Alert
            - Name
  • JSON format

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Parameters": {
      },
      "Resources": {
        "Alert": {
          "Type": "ALIYUN::SLS::Alert",
          "Properties": {
            "Project": "TestSlsProject",
            "Detail": {
              "DisplayName": "ros-test-alert",
              "Description": "test",
              "Schedule": {
                "Delay": 1,
                "Interval": "15m",
                "Type": "FixedRate",
                "RunImmediately": false
              },
              "State": "Enabled",
              "Configuration": {
                "Throttling": "5m",
                "NotifyThreshold": 1,
                "QueryList": [
                  {
                    "End": "now",
                    "LogStore": "audit-cf5362d1f87754fb29",
                    "ChartTitle": "k8s-log-c7b729e7ea122425182133bc2c3ea",
                    "Start": "-15m",
                    "Query": "objectRef.resource : \"networkpolicies\" and verb : create NOT  user.username: node NOT  user.username: serviceaccount NOT  user.username: apiserver NOT  user.username: kube-scheduler NOT  user.username: kube-controller-manager       | SELECT auditID as \"Event ID\", date_format(from_unixtime(__time__), '%Y-%m-%d %T' ) as \"Operation time\", \"objectRef.name\" as \"Name\", \"objectRef.namespace\" as \"Namespace\", \"responseStatus.code\" as \"Status code\",\n CASE WHEN \"user.username\" != 'kubernetes-admin' then \"user.username\"\n WHEN \"user.username\" = 'kubernetes-admin' and regexp_like(\"annotations.authorization.k8s.io/reason\", 'RoleBinding') then regexp_extract(\"annotations.authorization.k8s.io/reason\", ' to User \"(\\w+)\"', 1) ELSE 'kubernetes-admin' END  \n as \"Username\", \nCASE WHEN json_array_length(sourceIPs) = 1 then json_format(json_array_get(sourceIPs, 0)) ELSE  sourceIPs END\nas \"Source IP address\" order by \"Operation time\"",
                    "TimeSpanType": "Custom"
                  }
                ],
                "Dashboard": "audit-cf5362d1f87754fb4a_network_policy_op_cn",
                "NotificationList": [
                  {
                    "Content": "Pesan",
                    "ServiceUri": "http://xxxx",
                    "Type": "DingTalk"
                  },
                  {
                    "Content": "Pesan Email",
                    "EmailList": [
                      "abc@test.com"
                    ],
                    "Type": "Email"
                  },
                  {
                    "MobileList": [
                      "132373830xx"
                    ],
                    "Content": "Pesan ponsel",
                    "Type": "SMS"
                  }
                ],
                "Condition": "total  > 1"
              },
              "Type": "Alert",
              "Name": "alert_2"
            }
          }
        }
      },
      "Outputs": {
        "Name": {
          "Description": "Nama peringatan.",
          "Value": {
            "Fn::GetAtt": [
              "Alert",
              "Name"
            ]
          }
        }
      }
    }