Log Service では、アラートテンプレートを設定するときに通知内容をカスタマイズできます。

テンプレート変数の使用

アラートテンプレートを設定する場合、メールまたは DingTalk メッセージのタイトルと内容にテンプレート変数を追加できます。 Log Service からアラート通知が送信される場合、テンプレート変数が実際の値に置き換えられます。 たとえば、変数が ${project} の場合は実際のプロジェクトの名前に置き換えられます。 詳細については、「テンプレート変数」をご参照ください。

アラートがトリガーされると、毎回アラート情報が自動的に生成され、 Results フィールドに保存されます。 Results フィールドのすべてのサブフィールドはテンプレート変数として使用できます。 詳細については、「 アラームログフィールド」をご参照ください。
  • 配列型のフィールドは、${results[{index}]} 形式で参照します。 {index} は 0 から始まる配列サブスクリプトを示します。 たとえば、${results[0]} の場合、Results 配列の最初の要素を参照することを示します。
  • オブジェクトタイプのフィールドは、${object.key} 形式で参照します。 例えば、${results[0].StartTimeTs} の場合は、タイムスタンプ 1542453580 を示します。
RawResults FireResult のフィールドのみがクエリ結果です。 これらのフィールドでは大文字と小文字が区別されます。 その他のフィールドでは大文字と小文字が区別されません。

Results 配列の例:

{
  "EndTime": "2006-01-02 15:04:05",
  "EndTimeTs": 1542507580,
  "FireResult": {
    "__time__": "1542453580",
    "field": "value1",
    "count": "100"
  },
  "FireResultAsKv": "[field:value1,count:100]",
  "Truncated": false,
  "LogStore": "test-logstore",
  "Query": "* | SELECT field, count(1) group by field",
  "QueryUrl": "http://xxxx",
  "RawResultCount": 2,
  "RawResults": [
    {
      "__time__": "1542453580",
      "field": "value1",
      "count": "100"
    },
    {
      "__time__": "1542453580",
      "field": "value2",
      "count": "20"
    }
  ],
  "RawResultsAsKv": "[field:value1,count:100],[field:value2,count:20]",
  "StartTime": "2006-01-02 15:04:05",
  "StartTimeTs": 1542453580
}

内容の形式

  • DingTalk

    DingTalk メッセージでは、Markdown 構文のサブセットがサポートされています。 次の 2 つの要素が利用可能です。

    • タイトル
      # Level 1 heading
      ## Level 2 heading
      ### Level 3 heading
      #### Level 4 heading
      ##### Level 5 heading
      ###### Level 6 heading
    • リファレンス
      > A man who stands for nothing will fall for anything.
    • 太字と斜体のテキスト
      **bold**
      *italic*
    • リンク
      [this is a link](http://name.com)
    • 画像
      ![](http://name.com/pic.jpg)
    • 順不同リスト
      - item1
      - item2
    • 順序付けされたリスト
      1. item1
      2. item2
  • Webhook

    Webhook では、一度に 1 件または複数のメッセージの送信がサポートされています。

    • 一度に 1 件のメッセージを送信:
      {
        "Project": "${project}",
        "Alert name": "${alert_name}"
      }
    • 一度に複数のメッセージを送信:
      [
        {
          "Project": "project-name1",
          "Alert name": "alert-name1"
        },
        {
          "Project": "project-name2",
          "Alert name": "alert-name2"
        }
      ]
  • メール
    メールでは HTML タグがサポートされています。 例:
    • 改行には <br> を使用します。
    • リンクを追加するには <a href="${query_url}">View details</a> を使用します。 リンクをクリックすると、アラートの詳細を表示できます。
    • アラートの重大度を太字で表示するには、<strong>${severity}</strong> を使用します。