本トピックでは、新しいバージョンのアラートテンプレートに含まれる変数と、それらの参照方法について説明します。
参照構文
-
変数を参照する際は、その名前が完全に一致している必要があります。
-
変数が存在しない場合、または誤って参照された場合、SLS ではデフォルトで空文字列に置き換えられます。
-
参照される値がオブジェクトである場合、SLS では JSON 文字列に変換されます。
-
-
変数名は英字、数字、およびアンダースコア (_) のみで構成され、先頭に数字を含めることはできません。
-
変数名がこれらの規則に準拠している場合、ドット表記(例:
{{alert.xxx}})を使用して値を取得できます。 -
変数名がこれらの規則に準拠していない場合(例:
__tag__:__namespace__のような特殊文字を含む場合)、ブラケット表記を使用して値を取得する必要があります:{{alert.annotations["__tag__:__namespace__"] }}。
-
アクションポリシーを構成する際には、アラートテンプレートを選択する必要があります。アラートテンプレートでは、アラート通知の本文および件名の内容が定義されます。本文 および 件名/件名 フィールドでは、{{ alert.xxx }} 構文を使用して変数を参照できます。SLS がアラート通知を送信する際に、本文 および 件名/件名 内の変数は、実際の値に置き換えられます。たとえば、{{ alert.project }} は、アラートルールを含むプロジェクトの名称に置き換えられます。

変数を直接参照するほか、制御フロー構造およびビルトイン関数を用いて、変数の操作および処理も可能です。テンプレート構文およびビルトイン関数の詳細については、「コンテンツテンプレート構文(新)」および「ビルトインテンプレート関数」をご参照ください。
アラート属性
|
パラメーター |
説明 |
型 |
値 |
使用例 |
|
aliuid |
プロジェクトに関連付けられた Alibaba Cloud アカウント ID。 |
string |
117918634953**** |
|
|
alert_instance_id |
このアラートインスタンスの固有 ID。 |
string |
ee16a8f435485f3f-5be6b81edc520-3d6**** |
インスタンス ID は |
|
alert_id |
プロジェクト内で一意となるアラートルール ID。 |
string |
alert-12345 |
アラートルール ID は |
|
alert_name |
アラートルールの名称。 |
string |
テストアラートルール |
アラートルール |
|
alert_type |
アラートの種類。
|
string |
sls_alert |
アラート種別は |
|
region |
アラートがトリガーされたリージョン。 |
string |
cn-hangzhou |
アラートは |
|
project |
アラートルールが属するプロジェクト。 |
string |
my-project |
|
|
next_eval_interval |
次回評価までの間隔(秒単位)。 |
int |
300 |
次回評価は |
|
alert_time |
現在の評価時刻。 |
int |
1616744734 |
現在のアラート評価時刻は |
|
fire_time |
アラートが初めてトリガーされた時刻。 |
int |
1616059834 |
アラートは |
|
status |
アラートステータス。
|
string |
firing |
アラートステータスは |
|
resolve_time |
アラートの解決時刻。
|
int |
0 |
アラートは |
|
severity |
アラート重大度。
|
int |
10 |
アラート重大度は |
|
labels |
アラートのラベルを定義するキーと値のペアのマップ。 |
map |
{"env":"test"} |
アラートラベルは |
|
annotations |
アラートに関する追加情報を提供するキーと値のペアのマップ。 |
map |
{ "title": "アラートタイトル","desc": "アラートの説明" } |
アラートアノテーションは |
|
results |
アラート評価から得られたクエリおよび結果データを含む配列。データ構造の詳細については、「QueryData 構造」をご参照ください。 |
array |
本トピック末尾の付録を参照してください。 |
最初のクエリの開始時刻は |
|
fire_results |
アラートをトリガーしたデータ(集合演算の結果)。最大 100 件のデータエントリが返されます。 fire_results 変数の値が 2 KB を超える場合、またはクエリ結果フィールドの内容が 1 KB を超える場合、超過分は切り捨てられます。詳細については、「アラート通知における不完全なログ表示をどう処理しますか?」をご参照ください。 |
array |
本トピック末尾の付録を参照してください。 |
アラートをトリガーしたデータは |
|
fire_results_count |
アラートをトリガーしたデータエントリの合計数。この値は 100 を超えることがあります(例:デカルト積演算後の合計数)。 |
int |
3 |
アラートをトリガーしたデータエントリの合計数は |
|
condition |
評価されたトリガー条件(変数はアラートをトリガーした値に置き換えられ、角括弧 |
string |
|
トリガー条件は |
|
raw_condition |
元のトリガー条件(変数は実際の値に置き換えられません)。フォーマットは |
string |
|
元のトリガー条件は |
|
policy |
トリガーされたアラートポリシーまたはアクションポリシーの詳細を含むオブジェクト。データ構造の詳細については、「ポリシー構造」をご参照ください。 |
map |
本トピック末尾の付録を参照してください。 |
アラートポリシー ID は |
|
dashboard |
アラートに関連付けられたダッシュボードの名称。 |
string |
mydashboard |
関連付けられたダッシュボードは |
|
alert_url |
コンソール内のアラート詳細ページへの直接 URL。 |
string |
https://sls.console.alibabacloud.com/lognext/project/test-xxxx/alert/alert-1617164106-940166 |
アラート URL は |
|
query_url |
検索および分析ページへの URL(アラート評価の最初のクエリで事前に入力済み)。 |
string |
https://sls.console.alibabacloud.com/lognext/project/test-xxx/logsearch/test-alert-access?encode=base64&endTime=1617175989&queryString=KiB8IHNlbGVjdCBjb3VudCgxKSBhcyBjbn****&queryTimeType=99&startTime=1617175089 |
最初のクエリの URL は |
|
alert_history_dashboard_url |
アラート履歴統計ダッシュボードの URL。 |
string |
https://sls.console.alibabacloud.com/lognext/project/test-xx/dashboard/internal-alert-analysis |
アラート履歴統計ダッシュボードの URL は |
|
dashboard_url |
アラートに関連付けられたダッシュボードの URL。 |
string |
https://sls.console.alibabacloud.com/next/project/myproject/dashboard/mydashboard |
関連付けられたダッシュボードの URL は |
|
fingerprint |
アラート指紋。詳細については、「指紋に基づくアラートの重複排除」をご参照ください。 |
string |
478325709134bc5c |
アラート指紋は |
|
signin_url |
コンソールへのログインなしでアラート詳細を表示するための URL。詳細については、「ログイン不要モードでのアラート詳細表示」をご参照ください。 |
string |
https://sls.console.alibabacloud.com/console/AlertAjax/slsSignIn.json?token=xxxx |
|
ポリシー構造
以下の表は、policy 内で参照可能な変数を示しています。
|
パラメーター |
説明 |
型 |
例 |
|
alert_policy_id |
アラートポリシーの ID。 |
string |
sls.test-alert |
|
action_policy_id |
アラートルールで指定されたアクションポリシーの ID。この変数は、アラートポリシーが動的アクションポリシーを使用する場合にのみ利用可能です。 |
string |
sls.test-action |
|
repeat_interval |
繰り返し間隔。この変数は、アラートポリシーが動的アクションポリシーを使用する場合にのみ利用可能です。 |
string |
4h |
QueryData 構造
以下の表は、results 変数のフィールドを説明しています。
|
パラメーター |
説明 |
型 |
値 |
|
store_type |
ストレージタイプ。有効な値:
|
string |
log |
|
region |
対象ストアのリージョン。
|
string |
cn-hangzhou |
|
Project |
対象ストアのプロジェクト。
|
string |
sls-test-alert |
|
store |
対象ストアの名称。 |
string |
test-LogStore |
|
query |
クエリ文。 |
string |
error | select count(1) as cnt |
|
start_time |
クエリ時間範囲の開始時刻(秒単位の UNIX タイムスタンプ)。
|
int |
1616741485 |
|
end_time |
クエリ時間範囲の終了時刻(秒単位の UNIX タイムスタンプ)。
|
int |
1616745085 |
|
raw_results |
最大 100 件のクエリ結果レコードを含む配列。 raw_results の値が 2 KB を超える場合、または単一フィールドの内容が 1 KB を超える場合、データは切り捨てられます。 |
array |
|
|
raw_results_count |
クエリによって返されたレコードの総数(100 を超える場合があります)。 |
int |
20 |
|
fire_result |
アラートをトリガーした結果セットの最初のレコード。 |
map |
|
|
query_url |
クエリ結果を表示するためのコンソール URL。
|
string |
https://sls.console.alibabacloud.com/lognext/project/test-xxx/logsearch/test-alert-access?encode=base64&endTime=1617175989&queryString=KiB8IHNlbGVjdCBjb3VudCgxKSBhcy*******&queryTimeType=99&startTime=1617175089 |
|
dashboard_url |
クエリに関連付けられたダッシュボードの URL。 |
string |
https://sls.console.alibabacloud.com/next/project/myproject/dashboard/mydashboard |
|
role_arn |
サービスロールの Alibaba Cloud リソースネーム (ARN)。 |
string |
acs:ram::117918634953****:role/aliyunslsalertmonitorrole |
よくある質問
付録
-
results構造[{ "store_type": "Logstore", "region": "中国 (杭州)", "project": "sls-alert-test", "store": "test", "query": "* | select count(1) as cnt", "start_time": 1616741485, "end_time": 1616745085, "dashboard_id": "mydashboard", "raw_results": [{ "cnt": "4" }], "raw_result_count": 1, "fire_result": { "cnt": "4" }, "truncated": false, "role_arn": "" }] -
fire_results構造[{ "host": "example.com", "host__1": "example.com", "pv": "836", "slbid": "slb-02", "status": "200" }, { "host": "example.com", "host__1": "example.com", "pv": "836", "slbid": "slb-02", "status": "200" }] -
policy構造{ "alert_policy_id": "sls.test-alert", "action_policy_id": "sls.test-action", "repeat_interval": "5m0s" }
例
以下は、コンテンツテンプレートを用いた通知内容の定義例です。
アラート内容:
{ "alert_id": "test-alert", "alert_name": "PV/UV アラート", "project": "project-1", "status": "firing", "severity": 6, "labels": { "app": "nginx", "host": "host-1" }, "results": [ { "project": "project-1", "logstore": "logstore-1", "query": "* | select count(*) as pv" }, { "project": "project-2", "logstore": "logstore-2", "query": "* | select count(distinct user_id) as uv" } ] }アラートテンプレートの構成:
- アラート ID: {{ alert.alert_id }} - アラート名: {{ alert.alert_name }} - プロジェクト: {{ alert.project }} - ステータス: {% if alert.status == "firing" %}FIRING{% else %}RESOLVED{% endif %} - ラベル: {%- for key, val in alert.labels.items() %} - {{ key }}: {{ val }} {%- endfor %} - クエリ: {{ alert.results[0].query }}出力結果:
- アラート ID: test-alert - アラート名: PV/UV アラート - プロジェクト: project-1 - ステータス: FIRING - ラベル: - app: nginx - host: host-1 - クエリ: * | select count(*) as pv