• 製品
  • 使用を開始する
  • 関連ドキュメント
  • リソース

Opsgenie 統合における動的フィールド

Opsgenie はデータを解析して、豊富で有益なアラートを作成します。動的フィールドを使用して、アラートのプロパティやアラート条件をカスタマイズできます。

ドラッグ可能なフィールド

ドラッグ可能なフィールドは、十分な情報に基づくアラートを作成して管理するための重要なデータを提供します。Opsgenie インテグレーション フレームワークは、統合ツールに固有な統合ごとに異なる動的フィールドを提供します。動的フィールドは、アラート フィールドだけでなく統合アクションのフィルターでも使用できます。[フィルター] では、条件ドロップリストでフィールドを選択できます。[アラート] フィールドでは、動的フィールドを適切な入力にドラッグするだけで可能です。

統合設定でのドラッグ可能なフィールドを示す画像。

二重の波かっこで囲まれている式は Opsgenie によって動的フィールドとして解釈されて、Opsgenie に送信されるすべての通知に動的データが入力されます。たとえば、誰かが Jira で課題を作成して、要約として「This is the summary」と入力したとします。Opsgenie の Jira 統合では、[アラート作成] アクションでメッセージの「[Jira] {{summary}}」によって「[Jira] This is the summary」というメッセージのあるアラートが生成されて、ユーザーに通知されます。ここで必要なのは、{{summary}} をメッセージにドラッグするだけです。課題が作成されると、Opsgenie は自動で通知を受け取って、課題の要約をメッセージで知らせるアラートを作成します。

静的テキストと動的フィールドは混在可能です。上記の例のように、"[Jira] {{summary}}" の "[Jira] " は静的であり、作成されたすべてのアラートのメッセージの先頭にきます。"{{summary}}" はアラートごとに異なる場合があります。

Webhook URL、ペイロード、ヘッダーから生のパラメーターを使用する

また、Webhook から URL パラメーターまたは http ペイロード パラメーターをアラートに直接挿入できます。例をあげて説明してみましょう。

Opsgenie Jira インテグレーションを使用しているとします。Jira は、Webhook ペイロードで timestamp という名前の変数を Opsgenie に送信します。ただし、timestamp は [統合] ページのドラッグ可能なフィールドとしては使用できません。それでもアラートでタイムスタンプを使用する必要がある場合は、次の手順に従います。

  • 統合の高度な設定に移動します

  • 入力フィールドで必要な場所に {{_payload.timestamp}} を追加します。

  • 統合を保存します。

ネストされたペイロード変数にもアクセスできます。Jira の例では、Webhook の http 本文にある次の値にアクセスするために、_payload.issue.fields.environment も使用できます。

テキスト

1 2 3 4 5 6 7 { "issue" : { "fields" : { "environment" : "env_val" } } }

Webhook の URL クエリ パラメーターは {{_url.param}} を介してアクセスできます。ここで param は、パラメーター キーです。カスタム パラメーターを Webhook URL に追加して、アラートに挿入できます。わかりやすいように、これを例で説明しましょう。

 

Opsgenie Stackdriver 統合を使用しているとします。複数のプロジェクトを監視しており、すべてのアラートに対して 1 つの統合を使用する必要があるが、依然としてどのアラートがどのドメインに属しているかを識別できる方法が必要です。現時点で可能なことは、プロジェクトごとにカスタム パラメーターを使用することです。

¶m1=val1 などのカスタム パラメーターを Stackdriver 統合の Webhook URL に追加して、{{_url.param1}} を統合の構成に挿入してこれにアクセスします。

リクエスト URL、ペイロード、ヘッダー パラメーターへのアクセスは、アラート API を介したアクションでは利用できません

Webhook リクエストのヘッダーは {{_headers.param}} 経由でも利用できます。param はヘッダーの名前です。アラート フィールドでは、リクエストのすべてのヘッダーを使用できます。

メール ベースの統合の {{_Headers.Param1}} 表記を使用して、メールのヘッダーを使用できます。たとえば、メール ベースの統合のアラート フィールドで {{_Headers.Importance}}} を使用できます。キーには大文字を使用する必要があることにご注意ください。

また、動的フィールドで文字列処理メソッドを使用して、アラート フィールドをさらに操作して制御できます。たとえば、Opsgenie JIRA の統合にコメントの追加アクションがあって、コメントは "note: {{comment_body.substringAfter("is")}}" として構成されます。これで、JIRA の任意のユーザーが "This is the comment" と課題にコメントすると、この課題に関連する Opsgenie のアラートに "note: the comment" というテキストのコメントが追加されます。

動的フィールドで使用できる方法の詳細な一覧については、以下を参照してください。

substring(int from), substring(int from, int to): 指定されたインデックス間の文字列を生成します。from は含まれて to は除外されます

{{from_name.substring(5,20)}}

substringAfter(String from): 指定されたインデックス間の文字列を生成します。from は含まれ、to は除外されます

{{subject.substringAfter("Host")}}

substringBefore(String to): 指定されたパラメーターの前に文字列を生成します

{{from_address.substringBefore("@")}}

substringBetween(String from, String to): from パラメーターから to パラメーターの間の文字列を表示します。

{{subject.substringBetween("URL:","(")}}

extract(regular expression): 正規表現の括弧で囲まれたセクションに一致する文字列の一部を生成します。

{{message.extract(/Host: (\S+)/)}}

toDate(String format) は、ミリ秒ベースのタイムスタンプを、次の Java 書式設定で日付書式に変換します。デフォルトの形式は「yyyy-MM-dd HH:mm:ss ZZZ」です。

{{create_timestamp.toDate()}}

get(int index) は、配列の指定されたインデックスにある要素を生成します。{{myArray.get(0)}})

その他のヘルプ