• 使用を開始する
  • 関連ドキュメント

End of sales and support for Opsgenie

Atlassian will discontinue new sales of Opsgenie on June 4, 2025 and end support for Opsgenie on April 5, 2027. Read the full announcement and learn about next-generation incident response options via Jira Service Management and Compass.

アラートのカスタマイズとフィルタリングのための正規表現

Opsgenie は、Java に似た正規表現を使用して、アラート フィールドを定義するための情報のフィルターと抽出を強化する機会を提供します。フィルターと抽出はいずれも、インテグレーション、アラート ポリシー、コールバックで使用できます。多くの場合、正規表現を使用することで、必要な情報をより効果的に抽出できるようになります。

正規表現は基本的に 2 つの目的で使用できます。一致演算子を使用したフィルターのルールの定義と、extract文字列処理メソッドを使用した、アラートフィールドに設定するデータの抽出です。

一致ルールでフィルターするための正規表現

文字列値全体が指定された正規表現のパターンと一致する場合、一致演算子を使用した条件が満たされます。入力値の型がリストの場合、少なくとも 1 つのリスト項目が指定された正規表現に一致する場合、条件が満たされます。この演算子は、単一の条件ルールで複雑なフィルターを定義する機能を提供し、すでに定義されている条件演算子への依存を減らします。条件演算子の詳細については、アクション フィルターを参照してください。

一致条件演算子の利用に適した一般的なユースケースの例を以下に示します。

  • AND/OR による複数ルールの結合
    件名に「日々のレポート」が、メッセージに「重要」、「エラー」、または「ダウン」のいずれかが含まれている場合にメール統合からアラートを作成するには、一致ルール内で次の正規表現を使用できます。

 

.*(Critical|Error|Down).*

2 つのルールを組み合わせてアラートを作成する方法を示す画像。

類似ルールの重複防止
アラートの説明が server1、server2、...、server100 のいずれかのサーバー名で始まる場合にアラートを再通知するには、20 個の次で始まるルールではなく、1 つの一致ルール内で次の正規表現を代用します。

^(server(100|[1-9]\d?)).*

ルールの重複を防ぐ方法を示す画像。

複雑なルールの定義
アラート メッセージに有効なメール アドレスが含まれている場合に Webhook コールバックを実行するには、次の正規表現を使用できます。

.*(\s+.*)?([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})(\s+.*)?

 

複雑なルールの作成方法を示す画像。

Extract 文字列処理メソッドを使用してアラート フィールドを設定するための正規表現

extract 文字列処理メソッドを使用して、指定された正規表現に従って必要な一致グループを抽出し、アラートフィールドに設定できます。文字列処理メソッドの詳細については、こちらを参照してください。

extract メソッドを使用して必要な結果を得るには、キャプチャ グループの理解が必要な場合があります。これには次の 2 つの定義があります。

  • field_name.extract(reg_exp)

    : 指定された正規表現の最初の括弧で囲まれたセクション (グループ) に一致する文字列の一部を指定します。文字列が指定された正規表現に一致しない場合は、空の文字列を返します。指定された正規表現が文字列と一致するが、括弧で囲まれたセクションを含まない場合は、文字列全体を返します。

  • field_name.extract(reg_exp, index)

    : 指定された正規表現の index 番目の括弧で囲まれたセクション (グループ) に一致する文字列を指定します。文字列が指定された正規表現に一致しない場合は、空の文字列を返します。指定された正規表現が文字列と一致するが、index の数以上の括弧で囲まれたセクションを含まない場合は、文字列全体を返します。

次に、両方のメソッド定義を使用する例をいくつか示します。

messageHost: First Second

  • message.extract(/Host: (\S+)/)

     = First

  • message.extract(/Host: (\S+) (\S+)/)

     = First

  • message.extract(/Host:(\S+)/)

     = 空の値

  • message.extract(/Host: (\S+)/, 0)

     = Host: First Second

  • message.extract(/Host: (\S+)/, 1)

     = First

  • message.extract(/Host: (\S+)/, 2)

     = Host: First

  • message.extract(/Host: (\S+) (\S+)/, 2)

     = Second

  • message.extract(/(\S)+/)

     = Host:

  • message.extract(/\S+/)

     = Host:

descriptionsome value server3

  • description.extract(/(server(100|[1-9]\d?))/)

    = server3

  • description.extract(/(server(100|[1-9]\d?))/, 1)

     = server3

  • description.extract(/(server(100|[1-9]\d?))/, 2)

     = 3

  • description.extract(/(server(100|[1-9]\d?))/, 3)

     = server3

  • description.extract(/server(100|[1-9]\d?)/, 0)

     = server3

  • description.extract(/server(100|[1-9]\d?)/, 1)

     = 3

  • description.extract(/server(100|[1-9]\d?)/, 2)

     = server3

  • description.extract(/(server(100|[1-9]\d?))/, 2)

     = 3

extract メソッドを使用して目的のアラートフィールドを設定できるようにするには、アラートフィールドに書き込まれたテキストが、次のいずれかのパターンである必要があります。

{{ field_name.extract(/reg_exp/) }}

{{ field_name.extract(/reg_exp/, group_number) }}

アラートフィールド内の式の入力場所を示す画像。

さらにヘルプが必要ですか?

アトラシアン コミュニティをご利用ください。