We're updating our terminology in Jira

'Issue' is changing to 'work item'. You might notice some inconsistencies while this big change takes place.

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

この記事では、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) }}

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

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