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

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

この記事では、Jira Service Management Cloud の一部のお客様に段階的に展開されている、Jira Service Management でネイティブに利用できる新しいアラート機能を取り上げています。ご利用のサイトにはまだ表示されていないか、利用できない可能性があります。

Jira Service Management は Java に似た正規表現を使用して、情報のフィルタリングと抽出を強化して、統合、アラート・ポリシー、コールバックで使用可能な動的プロパティを定義します。多くの場合、正規表現を使用することによって必要な情報を抽出できます。たとえば、[一致] 演算子でフィルタリング・ルールを定義して、extract 文字列処理メソッドでアラート・フィールドに設定するデータを抽出します。

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

文字列値全体が指定された正規表現のパターンと一致する場合、一致演算子を使用した条件が満たされます。入力値の型が「リスト」の場合、指定された正規表現に少なくとも 1 つのリスト・アイテムが一致する場合、条件が満たされます。この演算子を使用すると、単一の条件ルールで複雑なフィルターを定義できるので、すでに定義されている条件演算子への依存関係を減らせます。条件演算子の詳細をご確認ください

[一致] 条件演算子の利用に適した一般的なユースケースの例は次のとおりです。

AND/OR で複数のルールを結合する

件名に "Daily Report (日次レポート)"、説明に Critical (クリティカル)、Error (エラー)、または Down (ダウン) が含まれている場合にメール統合でアラートを作成するには、[一致] ルール内で次の正規表現を使用できます。.*(Critical|Error|Down).*

類似ルールの重複を防止する

アラートの説明が「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 の数以上の括弧で囲まれたセクションを含まない場合は、文字列全体を返します。

グループの取得については、こちらをご覧ください。

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

message: Host: 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:

description: some 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) }}

その他のヘルプ