フィールドの指定方法

ルール、アクション、トリガーで AlertHub の各種情報を取得するためのフィールドの指定方法について説明します。

フィールドについての詳細な説明は、「設定の流れ > フィールドの種類と操作」を参照してください。

message

メッセージの詳細を取得します。

受信メッセージが webhook の場合

主に取得可能な情報と入力値は下記の通りです。

取得したい内容入力する値
リクエストボディ全体の内容message.content.body
リクエストボディをパースした結果の内容message.content.data
リクエストを受信した URLmessage.metadata.requestUrl
リクエストヘッダの内容message.metadata.headers

下記のような webhook メッセージを受信した場合を例に説明します。

{
  "level": "warning",
  "message": "ping failed"
}

実際の AlertHub 上では message の内容として下記のようにデータが受け取られます。

{
  "message": {
    "receiveSlotId": "6f148d9b-bd7f-4f3b-a209-8014941cd0e5",
    "receiveSlotKind": "webhook",
    "content": {
      "body": "{\"level\": \"warning\",\"message\": \"ping failed\",\"relations\": [123,456,789]}",
      "data": {
        "level": "warning",
        "message": "ping failed",
        "relations":[
          123,
          456,
          789
          ]
      }
    },
    "metadata": {
      "requestUrl": "https://receiver.cloud.dev.kompira.jp/webhook/XXXXXXXXXX",
      "headers": {
        "Accept": "*/*",
        "Connection": "close",
        "Content-Length": "0",
        "Content-Type": "application/json"
    }
  }
}

この場合、message.content.body とすると body である {level: warning,message: ping failed,relations: [123,456,789]} を文字列として取得できます。

リクエストボディをパースした内容の一部である level の値(今回は warning)のみ取得したい場合は、message.content.data.level とします。

さらに、ルール/トリガー/ランブックでは、リストの内容を取得することもできます。
リストとなっている relations123 を取得したい場合は、message.content.data.relations.0 と指定します1

ただし、アクションではリストの内容を指定できないため、一度ランブックのオペレーターステップ「あるフィールドから別のフィールドに値をコピーする」によりリストの内容をフィールドへ保存する必要があります。

受信メッセージがメールの場合

主に取得可能な情報と入力値は下記の通りです。

取得したい内容入力する値
メールの件名message.content.subject
メールの本文(テキスト形式)message.content.text
メールの本文(HTML形式)message.content.html
メールを受信したメールアドレスmessage.metadata.deliveredTo
メール送信元のメールアドレスmessage.metadata.from.email
メール送信先のメールアドレスmessage.metadata.to.email
CC先のメールアドレスmessage.metadata.cc.email
メール作成日時message.metadata.date
メールヘッダ情報message.metadata.headers

下記のようなメールメッセージを受信した場合を例に説明します。

件名:【要確認】障害通知
送信元:障害通知用アドレス <from@example.com>
宛先:abcdef@receiver.cloud.kompira.jp
本文:
テストサーバーにて障害が発生しました。
内容を確認し対応をお願いします。

実際の AlertHub 上では message の内容として下記のようにデータが受け取られます。

{
  "message": {
    "receiveSlotId": "ce424d64-6c8f-4768-891c-5d07e7e0faa8",
    "receiveSlotKind": "email",
    "content": {
      "subject": "【要確認】障害通知",
      "text": "テストサーバーにて障害が発生しました。\n内容を確認し対応をお願いします。",
      "html": "<html><body>テストサーバーにて障害が発生しました。<br>内容を確認し対応をお願いします。</body></html>"
    },
    "metadata": {
      "deliveredTo": "abcdef@receiver.cloud.kompira.jp",
      "from": {
        "name": "障害通知用アドレス",
        "email": "from@example.com"
      },
      "to": [
        {
          "email": "abcdef@receiver.cloud.kompira.jp"
        }
      ],
      "date": "2022-08-22T18:13:45+09:00",
      "headers": {
        "Content-Type": "multipart/alternative; boundary=\"000000000000064deb05e6d0dec5\"",
        "Date": "Mon, 22 Aug 2022 18:13:45 +0900"
      }
    }
  }
}

この場合、message.content.text とすると テストサーバーにて障害が発生しました。\n内容を確認し対応をお願いします。 というようにメール本文がテキスト形式にて取得できます。

また、メールの送信元が知りたい場合は message.metadata.from とすることにより {"name": "障害通知用アドレス","email": "from@example.com"} というように情報取得が可能です。

message の詳細な構造は、API ドキュメント2/api/apps/alerthub/message/detail/{messageId}「メッセージ詳細の取得」中、枠内下部の「Responses」より「Schema」をクリックし確認してください。

relatedMessageCount

関連メッセージのうち、該当のトリガーにて設定した条件を満たしたメッセージの件数を取得します。

関連メッセージの件数を埋め込む場合は、relatedMessageCount とします。

後述の relatedMessages には件数制限がありますが、それに関わらず条件を満たしたメッセージの件数となります。

関連メッセージ機能が無効の場合は 0 と表示されます。

relatedMessages

関連メッセージのうち、該当のトリガーにて設定した条件を満たしたメッセージの配列を取得します。

長さは最長 100 件で、101 件以上となった場合はイベント発生時刻の古いものから 100 件のみの配列となります。

アクションが手動実行された場合などには空となる可能性があります。

「message」 と同様に設定が可能です。

例えば、webhook にて受信した関連メッセージのリクエストボディ全体を記載したい場合は、relatedMessages.content.body とします。

event

イベントの情報を取得します。

event の詳細な構造は、API ドキュメント2/api/apps/alerthub/scopes/{scopeId}/events/{eventId}「イベントの取得」中、枠内下部の「Responses」内「Schema」をクリックし確認してください。

例えば、イベントが発生する原因となったメッセージの ID を取得したい場合は、event.messageId とします。

scope

スコープの情報を取得します。

scope の詳細な構造は、API ドキュメント2/api/apps/alerthub/scopes/{scopeId}「スコープの取得」中、枠内下部の「Responses」内「Schema」をクリックし確認してください。

例えば、アクションが発生したスコープの現在の深刻度を取得したい場合は、scope.severity とします。

scopeSeverities

スコープが持つ全ての深刻度の情報を取得します。

深刻度の情報を埋め込む場合は、scopeSeverities とします。

例えば、該当スコープの深刻度が下画面の状態の場合で説明します。

深刻度名「01」は深刻度が「0」、深刻度名「webhook error」は深刻度が「3」となっています。

この状態で scopeSeverities とすると、下記の通り深刻度名と深刻度が埋め込まれます。

map[01:0 webhook error:3]

space

スペースの情報を取得します。

space の詳細な構造は、API ドキュメント2/api/space「スペース情報の取得」中、枠内下部の「Responses」内「Schema」をクリックし確認してください。

例えば、スペース ID を取得したい場合は、space.spaceId とします。

1

リストの内容を指定する場合、最初の要素を 0 番として昇順で指定します。

2

Kompira cloud スペース上部の「?」をクリックすると「API ドキュメント」の項目が出現するため、選択して参照します。