すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:アラートルールの作成

最終更新日:Mar 19, 2025

CreateAlert 操作を呼び出して、アラートルールを作成できます。

前提条件

  • Simple Log Service が 有効化されている。

  • Python 用 Simple Log Service SDK が 初期化されている。

パラメーター

def create_alert(self, project, detail): # アラートを作成する

リクエストパラメーター

パラメーター

タイプ

必須

説明

project

String

はい

プロジェクトの名前。

demo-test-project

detail

Dictionary

はい

アラートルールを作成するための設定を含む構成。

{
    "name": "alert-id-223456", // アラート名
    "displayName": "Alert for testing", // 表示名
    "type": "Alert", // アラートタイプ
    "status": "Enabled", // ステータス
    "schedule": { // スケジュール設定
        "type": "FixedRate", // スケジュールタイプ
        "interval": "1m" // 実行間隔
    },
    "configuration": { // アラート設定
        "version": "2.0", // バージョン
        "type": "default", // タイプ
        "dashboard": "internal-alert-analysis", // ダッシュボードID
        "queryList": [{ // クエリ設定リスト
            "storeType": "log", // ログストアタイプ
            "region": "ap-southeast-1", // リージョン
            "project": "demo-test-project", // プロジェクト名
            "store": "test-logstore", // ログストア名
            "query": "* | select count(*) cnt", // クエリ文
            "timeSpanType": "Truncated", // 時間範囲タイプ
            "start": "-1m", // 開始時間
            "end": "absolute", // 終了時間
            "powerSqlMode": "auto" // PowerSQLモード
        }],
        "groupConfiguration": { // グループ設定
            "type": "no_group", // グループタイプ
            "fields": [] // グループフィールド
        },
        "joinConfigurations": [], // 結合設定
        "severityConfigurations": [{ // 重大度設定リスト
            "severity": 6, // 重大度
            "evalCondition": { // 評価条件
                "condition": "cnt > 0", // 条件式
                "countCondition": "" // カウント条件
            }
        }],
        "labels": [{ // ラベルリスト
            "key": "service", // キー
            "value": "nginx" // 値
        }],
        "annotations": [{ // アノテーションリスト
            "key": "title", // キー
            "value": "Nginx Status Error" // 値
        }, {
            "key": "desc", // キー
            "value": "Nginx Status Error, count: ${cnt}" // 値
        }],
        "autoAnnotation": True, // 自動アノテーション
        "sendResolved": False, // 解決通知送信
        "threshold": 1, // しきい値
        "noDataFire": False, // データなしアラート
        "noDataSeverity": 6, // データなしアラートの重大度
        "policyConfiguration": { // ポリシー設定
            "alertPolicyId": "sls.builtin.dynamic", // アラートポリシーID
            "actionPolicyId": "test-action-policy", // アクションポリシーID
            "repeatInterval": "1m", // 繰り返し間隔
            "useDefault": False // デフォルト使用
        }
    }
}

detail パラメーターの説明

パラメーター

タイプ

必須

説明

name

String

はい

アラートルールの名前。名前がプロジェクト内で一意であることを確認してください。

alert-123456

displayName

String

はい

アラートルールの表示名。

test-alert

type

String

はい

値は Alert に固定されています。

status

String

いいえ

アラート監視ルールのステータス。有効な値:

  • Enabled

  • Disabled (デフォルト)

description

String

いいえ

アラートルールの説明。

アラートルール

schedule

Dictionary

はい

アラートルールのスケジューリング構成。

{
    "type": "FixedRate", // タイプ
    "interval": "1m" // 間隔
}

configuration

Dictionary

はい

アラートルールの詳細構成。

{
    "version": "2.0", // バージョン
    "type": "default", // タイプ
    "dashboard": "internal-alert-analysis", // ダッシュボード
    "queryList": [{ // クエリリスト
        "storeType": "log", // ストアタイプ
        "region": "ap-southeast-1", // リージョン
        "project": "demo-test-project", // プロジェクト
        "store": "test-logstore", // ストア
        "query": "* | select count(*) cnt", // クエリ
        "timeSpanType": "Truncated", // 時間範囲タイプ
        "start": "-1m", // 開始
        "end": "absolute", // 終了
        "powerSqlMode": "auto" // PowerSQLモード
    }],
    "groupConfiguration": { // グループ設定
        "type": "no_group", // タイプ
        "fields": [] // フィールド
    },
    "joinConfigurations": [], // 結合設定
    "severityConfigurations": [{ // 重大度設定
        "severity": 6, // 重大度
        "evalCondition": { // 評価条件
            "condition": "cnt > 0", // 条件
            "countCondition": "" // カウント条件
        }
    }],
    "labels": [{ // ラベル
        "key": "service", // キー
        "value": "nginx" // 値
    }],
    "annotations": [{ // アノテーション
        "key": "title", // キー
        "value": "Nginx Status Error" // 値
    }, {
        "key": "desc", // キー
        "value": "Nginx Status Error, count: ${cnt}" // 値
    }],
    "autoAnnotation": True, // 自動アノテーション
    "sendResolved": False, // 解決送信
    "threshold": 1, // しきい値
    "noDataFire": False, // データなしアラート
    "noDataSeverity": 6, // データなし重大度
    "policyConfiguration": { // ポリシー設定
        "alertPolicyId": "sls.builtin.dynamic", // アラートポリシーID
        "actionPolicyId": "test-action-policy", // アクションポリシーID
        "repeatInterval": "1m", // 繰り返し間隔
        "useDefault": False // デフォルト使用
    }
}

schedule パラメーターの説明

パラメーター

タイプ

必須

説明

type

String

はい

アラートルールのスケジューリング構成のタイプ。有効な値:FixedRate および Cron

Cron

cronExpression

String

いいえ

Cron 式。詳細については、「Cron 式」をご参照ください。

0/5 * * * *

runImmediately

bool

いいえ

スケジュールされたジョブをすぐに実行するかどうかを指定します。

False

timeZone

String

いいえ

Cron 式のタイムゾーン。このパラメーターはデフォルトでは空で、タイムゾーンが UTC + 08:00 であることを示します。

Null

delay

int

いいえ

スケジュールされたジョブが遅延される秒数。

4

interval

String

いいえ

固定間隔。

1m

configuration パラメーターの説明

パラメーター

タイプ

必須

説明

muteUntil

int

いいえ

アラートルールが一時的に無効になる時間。

1698907508

version

String

はい

アラートルールのバージョン。

2.0

type

String

いいえ

アラートルールのタイプ。

default

dashboard

String

いいえ

アラートルールが関連付けられているダッシュボードの ID。

dasnboardExample

threshold

int

はい

トリガー条件を満たすことができる連続回数の上限。

1

noDataFire

bool

はい

データなしアラート機能を有効にするかどうかを指定します。

False

noDataSeverity

int

いいえ

データなしアラートの重大度。

6

sendResolved

bool

はい

アラートがクリアされた後に回復通知を送信するかどうかを指定します。

False

autoAnnotation

bool

はい

システムが自動的にアノテーションを追加することを許可するかどうかを指定します。

False

queryList

List

はい

クエリ文。クエリ文の変数の詳細については、「AlertQuery」をご参照ください。

[{
    "storeType": "log", // ストアタイプ
    "region": "ap-southeast-1", // リージョン
    "project": "demo-test-project", // プロジェクト
    "store": "test-logstore", // ストア
    "query": "* | select count(*) cnt", // クエリ
    "timeSpanType": "Truncated", // 時間範囲タイプ
    "start": "-1m", // 開始
    "end": "absolute", // 終了
    "powerSqlMode": "auto" // PowerSQLモード
}]

annotations

List

いいえ

アラートのアノテーション。アノテーションの変数の詳細については、「AlertTag」をご参照ください。

[{
    "key": "title", // キー
    "value": "Nginx Status Error" // 値
}, {
    "key": "desc", // キー
    "value": "Nginx Status Error, count: ${cnt}" // 値
}]

labels

List

いいえ

アラートのラベル。ラベルの変数の詳細については、「AlertTag」をご参照ください。

[{
    "key": "service", // キー
    "value": "nginx" // 値
}]

templateConfiguration

Dictionary

いいえ

アラートテンプレートの構成。詳細については、「TemplateConfiguration」をご参照ください。

{
    "id": "sls.app.ack.ip.not_enough", // ID
    "type": "sys", // タイプ
    "lang": "cn" // 言語
}

conditionConfiguration

Dictionary

いいえ

アラートをトリガーするために使用される条件。詳細については、「ConditionConfiguration」をご参照ください。

{
    "condition": "cnt > 100", // 条件
    "countCondition": "" // カウント条件
}

severityConfigurations

List

はい

アラートの重大度の構成。構成の変数の詳細については、「SeverityConfiguration」をご参照ください。

[{
    "severity": 6, // 重大度
    "evalCondition": { // 評価条件
        "condition": "cnt > 0", // 条件
        "countCondition": "" // カウント条件
    }
}]

joinConfigurations

List

いいえ

アラートルールのクエリ文の集合演算の構成。構成の変数の詳細については、「JoinConfiguration」をご参照ください。

[{
    "type": "left_join", // タイプ
    "condition": "$0.id == $1.id" // 条件
}]

groupConfiguration

Dictionary

はい

グループ評価の構成。詳細については、「GroupConfiguration」をご参照ください。

{
    "type": "no_group", // タイプ
    "fields": [] // フィールド
}

policyConfiguration

Dictionary

いいえ

[simple Log Service 通知] にアラートを送信するための構成。詳細については、「PolicyConfiguration」をご参照ください。

{
    "alertPolicyId": "sls.builtin.dynamic", // アラートポリシーID
    "actionPolicyId": "test-action-policy", // アクションポリシーID
    "repeatInterval": "1m", // 繰り返し間隔
    "useDefault": False // デフォルト使用
}

sinkEventStore

Dictionary

いいえ

[eventstore] にアラートを送信するための構成。詳細については、「SinkEventStoreConfiguration」をご参照ください。

{
    "enabled": TRUE, // 有効化
    "endpoint": "ap-southeast-1-intranet.log.aliyuncs.com", // エンドポイント
    "project": "exampleProject", // プロジェクト
    "eventStore": "exampleStore", // イベントストア
    "roleArn": "acs:ram::123456789:role/aliyunlogetlrole" // ロールARN
}

sinkCms

Dictionary

いいえ

[cloudmonitor イベントセンター] にアラートを送信するための構成。詳細については、「SinkCmsConfiguration」をご参照ください。

{
    "enabled": True // 有効化
}

sinkAlerthub

Dictionary

いいえ

Simple Log Service の通知システムにアラートを送信するための構成。詳細については、「SinkAlerthubConfiguration」をご参照ください。

{
    "enabled": True // 有効化
}

tags

List

いいえ

アラートのカスタムタグ。

["host"] // ホスト

レスポンスパラメーター

レスポンスパラメーターの詳細については、「CreateAlert」をご参照ください。

サンプルコード

import os
from aliyun.log import LogClient

alert = { # アラート設定
    "name": "alert-id-1234", # アラート名
    "displayName": "Alert for testing", # 表示名
    "type": "Alert", # タイプ
    "status": "Enabled", # ステータス
    "schedule": { # スケジュール
        "type": "FixedRate", # タイプ
        "interval": "1m" # 間隔
    },
    "configuration": { # 設定
        "version": "2.0", # バージョン
        "type": "default", # タイプ
        "dashboard": "internal-alert-analysis", # ダッシュボード
        "queryList": [{ # クエリリスト
            "storeType": "log", # ストアタイプ
            "region": "ap-southeast-1", # リージョン
            "project": "demo-test-project", # プロジェクト
            "store": "test-logstore", # ストア
            "query": "* | select count(*) cnt", # クエリ
            "timeSpanType": "Truncated", # 時間範囲タイプ
            "start": "-1m", # 開始
            "end": "absolute", # 終了
            "powerSqlMode": "auto" # PowerSQLモード
        }],
        "groupConfiguration": { # グループ設定
            "type": "no_group", # タイプ
            "fields": [] # フィールド
        },
        "joinConfigurations": [], # 結合設定
        "severityConfigurations": [{ # 重大度設定
            "severity": 6, # 重大度
            "evalCondition": { # 評価条件
                "condition": "cnt > 0", # 条件
                "countCondition": "" # カウント条件
            }
        }],
        "labels": [{ # ラベル
            "key": "service", # キー
            "value": "nginx" # 値
        }],
        "annotations": [{ # アノテーション
            "key": "title", # キー
            "value": "Nginx Status Error" # 値
        }, {
            "key": "desc", # キー
            "value": "Nginx Status Error, count: ${cnt}" # 値
        }],
        "autoAnnotation": True, # 自動アノテーション
        "sendResolved": False, # 解決送信
        "threshold": 1, # しきい値
        "noDataFire": False, # データなしアラート
        "noDataSeverity": 6, # データなし重大度
        "policyConfiguration": { # ポリシー設定
            "alertPolicyId": "sls.builtin.dynamic", # アラートポリシーID
            "actionPolicyId": "test-action-policy", # アクションポリシーID
            "repeatInterval": "1m", # 繰り返し間隔
            "useDefault": False # デフォルト使用
        }
    }
}


def main():
    # この例では、AccessKey ID と AccessKey シークレットは環境変数から取得されます。
    access_key_id = os.environ.get("ALIBABA_CLOUD_ACCESS_KEY_ID", "")
    access_key_secret = os.environ.get("ALIBABA_CLOUD_ACCESS_KEY_SECRET", "")

    # Simple Log Service エンドポイントを指定します。
    endpoint = "ap-southeast-1.log.aliyuncs.com"

    client = LogClient(endpoint, access_key_id, access_key_secret)

    # プロジェクトの名前。
    project = "demo-test-project"

    res = client.create_alert(project, alert)
    res.log_print()


if __name__ == "__main__":
    main()

関連情報