フィールドの指定方法
ルール、アクション、トリガーで AlertHub の各種情報を取得するためのフィールドの指定方法について説明します。
フィールドについての詳細な説明は、「設定の流れ > フィールドの種類と操作」を参照してください。
message
メッセージの詳細を取得します。
受信メッセージが webhook の場合
主に取得可能な情報と入力値は下記の通りです。
取得したい内容 | 入力する値 |
---|---|
リクエストボディ全体の内容 | message.content.body |
リクエストボディをパースした結果の内容 | message.content.data |
リクエストを受信した URL | message.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
とします。
さらに、ルール/トリガー/ランブックでは、リストの内容も取得できます。
リストとなっている relations
の 123
を取得したい場合は、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
とします。
リストの内容を指定する場合、最初の要素を 0
番として昇順で指定します。
Kompira cloud スペース上部の「?」をクリックすると「API ドキュメント」の項目が出現するため、選択して参照します。