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

Simple Log Service:アラートルールの更新

最終更新日:Jan 21, 2025

UpdateAlert APIを呼び出して、アラートルールを更新します。

前提条件

パラメータ説明

def update_alert(self, project, detail):

リクエストパラメーター

パラメーター

必須 / 任意

説明

project

String

対象

プロジェクトの名前。

demo-test-project

詳細

Dictionary

対象

アラートルールを変更するための設定情報。

{
    "name": "alert-id-1234",
    "displayName": "Alert for testing",
    "type": "Alert",
    "state": "Enabled",
    "schedule": {
        "type": "FixedRate",
        "interval": "1m"
    },
    "configuration": {
        "version": "2.0",
        "type": "default",
        "dashboard": "internal-alert-analysis",
        "queryList": [{
            "storeType": "log",
            "region": "cn-hangzhou",
            "project": "demo-test-project",
            "store": "test-logstore",
            "query": "status >= 400 | select count(*) as cnt",
            "timeSpanType": "Truncated",
            "start": "-1m",
            "end": "absolute",
            "powerSqlMode": "auto"
        }],
        "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",
            "actionPolicyId": "test-action-policy",
            "repeatInterval": "1m",
            "useDefault": False
        }
    }
}

詳細パラメータの説明

パラメーター

必須 / 任意

説明

name

String

対象

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

alert-123456

displayName

String

対象

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

テスト-アラート

説明

String

任意

アラートルールの説明を入力します。

アラートルール

スケジュール

Dictionary

対象

アラートルールのスケジューリング設定。

{
    "type": "FixedRate",
    "interval": "1m"
}

設定

Dictionary

対象

アラートルールの詳細な設定。

{
    "version": "2.0",
    "type": "default",
    "dashboard": "internal-alert-analysis",
    "queryList": [{
        "storeType": "log",
        "region": "cn-hangzhou",
        "project": "demo-test-project",
        "store": "test-logstore",
        "query": "* | select count(*) cnt",
        "timeSpanType": "Truncated",
        "start": "-1m",
        "end": "absolute",
        "powerSqlMode": "auto"
    }],
    "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",
        "actionPolicyId": "test-action-policy",
        "repeatInterval": "1m",
        "useDefault": False
    }
}

スケジュールパラメーターの説明

パラメーター

必須 / 任意

説明

タイプ

String

対象

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

Cron

cronExpression

String

任意

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

0/5 * * * *

runImmediately

bool

非対象

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

False

timeZone

String

任意

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

ヌル

遅延

int

非対象

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

4

interval

String

任意

固定間隔。

1m

設定パラメーターの説明

パラメーター

必須 / 任意

説明

muteUntil

int

非対象

アラートルールが一時的に無効になっている時刻。

1698907508

バージョン

String

対象

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

2.0

タイプ

String

任意

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

default

ダッシュボード

String

任意

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

dasnboardExample

しきい値

int

対象

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

1

noDataFire

bool

対象

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

False

noDataSeverity

int

非対象

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

6

sendResolved

bool

対象

アラートのクリア後にリカバリ通知を送信するかどうかを指定します。

False

autoAnnotation

bool

対象

システムが自動的に注釈を追加できるようにするかどうかを指定します。

False

queryList

List

必須

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

[{
    "storeType": "log",
    "region": "cn-hangzhou",
    "project": "demo-test-project",
    "store": "test-logstore",
    "query": "* | select count(*) cnt",
    "timeSpanType": "Truncated",
    "start": "-1m",
    "end": "absolute",
    "powerSqlMode": "auto"
}]

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

辞書

非対象

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

{
    "id": "sls.app.ack.ip.not_enough",
    "type": "sys",
    "lang": "cn"
}

conditionConfiguration

辞書

非対象

アラートのトリガーに使用される条件。 詳細については、「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

辞書

非対象

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

{
    "alertPolicyId": "sls.builtin.dynamic",
    "actionPolicyId": "test-action-policy",
    "repeatInterval": "1m",
    "useDefault": False
}

sinkEventStore

辞書

非対象

Eventstoreにアラートを送信するための設定。 詳細については、「SinkEventStoreConfiguration」をご参照ください。

{
    "enabled": TRUE,
    "endpoint": "cn-shanghai-intranet.log.aliyuncs.com",
    "project": "exampleProject",
    "eventStore": "exampleStore",
    "roleArn": "acs:ram::123456789:role/aliyunlogetlrole"
}

sinkCms

辞書

非対象

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

{
    "enabled": True
}

sinkAlerthub

辞書

非対象

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

{
    "enabled": True
}

tags

List

非対象

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

["host"]

レスポンスパラメーター

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

サンプルコード

import os
from aliyun.log import LogClient


def main():
    # In this example, the AccessKey ID and AccessKey secret are obtained from environment variables.
    access_key_id = os.environ.get("ALIBABA_CLOUD_ACCESS_KEY_ID", "")
    access_key_secret = os.environ.get("ALIBABA_CLOUD_ACCESS_KEY_SECRET", "")

    # Specify a Simple Log Service endpoint.
    endpoint = "cn-hangzhou.log.aliyuncs.com"

    client = LogClient(endpoint, access_key_id, access_key_secret)
    project = "demo-test-project"
    alert_id = "alert-id-1234"

    res = client.get_alert(project, alert_id)
    res.log_print()

    alert = res.get_body()
    alert['configuration']['queryList'][0]['query'] = 'status >= 400 | select count(*) as cnt'
    res = client.update_alert(project, alert)
    res.log_print()


if __name__ == "__main__":
    main()

関連ドキュメント