ユーザーとして Opsgenie の利用を開始する
プロフィールの設定、Opsgenie からの通知の取得、オンコール スケジュールの表示に関するすべての方法を説明します。
Opsgenie は、Java に似た正規表現を使用して、アラートフィールドを定義するための情報のフィルターと抽出を強化する機会を提供します。フィルターと抽出はいずれも、インテグレーション、アラートポリシー、コールバックで使用できます。多くの場合、正規表現を使用することで、必要な情報をより効果的に抽出できるようになります。
正規表現は基本的に 2 つの目的で使用できます。一致演算子を使用したフィルターのルールの定義と、extract文字列処理メソッドを使用した、アラートフィールドに設定するデータの抽出です。
文字列値全体が指定された正規表現のパターンと一致する場合、一致演算子を使用した条件が満たされます。入力値の型がリストの場合、少なくとも 1 つのリスト項目が指定された正規表現に一致する場合、条件が満たされます。この演算子は、単一の条件ルールで複雑なフィルターを定義する機能を提供し、すでに定義されている条件演算子への依存を減らします。条件演算子の詳細については、アクションフィルターを参照してください。
一致条件演算子の利用に適した一般的なユースケースの例を以下に示します。
AND/OR による複数ルールの結合
件名に「日々のレポート」が、メッセージに「重要」、「エラー」、または「ダウン」のいずれかが含まれている場合にメール統合からアラートを作成するには、一致ルール内で次の正規表現を使用できます。
.*(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メソッドを使用して必要な結果を得るには、キャプチャグループの理解が必要な場合があります。これには 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) }}
この内容はお役に立ちましたか?