CreateAlert 操作を呼び出して、アラートルールを作成できます。
前提条件
パラメーター
def create_alert(self, project, detail): # アラートを作成するリクエストパラメーター
パラメーター | タイプ | 必須 | 説明 | 例 |
project | String | はい | プロジェクトの名前。 | demo-test-project |
detail | Dictionary | はい | アラートルールを作成するための設定を含む構成。 | |
レスポンスパラメーター
レスポンスパラメーターの詳細については、「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()
関連情報
アラートルールに関連する API の詳細については、次のトピックを参照してください。
サンプルコードの詳細については、GitHub の Alibaba Cloud Simple Log Service SDK for Python を参照してください。