このトピックでは、評価式を使用してトリガー条件を指定する方法について説明します。 このトピックでは、関連する使用上の注意事項と制限についても説明します。

Log Serviceでは、アラートモニタリングルールでトリガー条件を指定するときに評価式を使用できます。 たとえば、[Trigger Condition] パラメーターを [data matches the expression] に設定し、評価式を指定します。 クエリおよび分析結果のデータが指定された評価式と一致する場合、アラートがトリガーされます。 評価式では、動的変数、論理演算子、および比較演算子を使用できます。 evaluate式の構文の詳細については、「評価式の構文」をご参照ください。

設定

アラートモニタリングルールでは、評価式を使用してセット操作の結果を評価します。 結果がアラートモニタリングルールのトリガー条件を満たす場合、アラートがトリガーされます。 トリガー条件には、次のオプションがあります。
  • Data is returned: セット操作の結果でデータが返された場合、アラートがトリガーされます。
  • クエリ結果に含まれるもの: セット操作の結果に特定の数のデータエントリが含まれている場合、アラートがトリガーされます。 サポートされている比較演算子には、より大きい、より小さい、および等しい。 たとえば、トリガー条件として [クエリ結果に> 10] を指定し、集合演算の結果に4つのデータエントリが含まれている場合、結果のデータエントリの数が指定されたトリガー条件を満たさないため、アラートはトリガーされません。
  • data matches the expression: set演算の結果に、指定された評価式と一致するデータが含まれている場合、アラートがトリガーされます。 たとえば、data match the expression pv>1000をトリガー条件として指定し、セット操作の結果にPVが900されているデータエントリが1つしか含まれていない場合、結果のデータが指定されたトリガー条件を満たしていないため、アラートはトリガーされません。
  • クエリ結果に含まれる: クエリ結果と分析結果に、指定された評価式と一致する特定の数のデータエントリが含まれている場合、アラートがトリガーされます。 たとえば、トリガー条件としてのクエリ結果に> 3、pv>1000を指定し、セット操作の結果にPVが900、1100、1200、1001の4つのデータエントリが含まれている場合、結果のデータが指定されたトリガー条件を満たしているため、アラートがトリガーされます。
トリガー条件

変数

説明 クエリおよび分析結果に対して実行される集合演算の結果が評価される。 集合演算は、CROSS JOINおよびLEFT JOIN演算を含む。
  • クエリ結果と分析結果に重複するフィールドが含まれていない場合は、フィールドにプレフィックスを追加することなく、評価式のフィールドを引用できます。 プレフィックスには、$0、$1、および $2が含まれます。 例:name == 'sls')。
  • クエリ結果と分析結果に重複するフィールドが含まれている場合は、フィールドにプレフィックスを追加することで、評価式のフィールドを引用できます。 プレフィックスには、$0、$1、および $2が含まれます。 例: $0.name == 'sls' | | $1.name == 'ecs'

    詳細については、「複数集合の演算」をご参照ください。

データ型クエリ文説明
ログデータSELECTを含まないクエリ文ログのクエリには、検索文のみ使用されます。

トリガー条件に評価式を指定すると、クエリ結果に含まれるフィールドを引用できます。

SELECT * FROM ログを含むクエリ文トリガー条件に評価式を指定した場合、Enable Analyticsがオンになっているフィールドを引用できます。
SELECT * FROM (SELECT...) を含むクエリ文トリガー条件に評価式を指定すると、指定したSELECTサブクエリに含まれるフィールドを引用できます。
時系列データSELECT promql(...) を含むクエリ文promql_query(string) 関数とpromql_query_range(string, string) 関数は、メトリック、ラベル、時間、値の固定フィールドを返すことができます。 Log Serviceは、ラベルフィールドをマップ形式で展開します。

トリガー条件に評価式を指定すると、メトリック、ラベル、時間、値のフィールドを引用できます。 ラベルフィールドのサブフィールドを引用することもできます。

SELECT a, b FROM (SELECT promql(...)) を含むクエリ文トリガー条件に評価式を指定した場合、Enable Analyticsがオンになっているフィールドを引用できます。
SELECT * FROM ログを含むクエリ文トリガー条件に評価式を指定した場合、Enable Analyticsがオンになっているフィールドを引用できます。
リソースデータなしリソースデータのフィールドの値は、文字列、浮動小数点数、または数値型にすることができます。 JSON 型はサポートされていません。

トリガー条件に評価式を指定すると、リソースデータのフィールドのIDを引用できます。

  • 例1: タスクの成功率が90% より低く、1日の待ち時間が60秒を超える場合、アラートがトリガーされます。

    [トリガー条件]パラメーターを [データが式に一致]、「success < 90 && delay > 60」に設定します。

    トリガー条件の例
  • 例2: リクエストに対してHTTPステータスコード500が15分で返される回数が10回に達すると、アラートがトリガーされます。

    [トリガー条件]パラメーターを [データが式に一致]、「status == 500 && total > 10」に設定します。

    トリガー条件の例