システムに問題が発生した場合、アラートはタイムリーな通知を送信します。表示する必要がないことがわかっている通知がある場合があります。ミューティングルールを使用して、不要なメッセージによる攻撃を防ぐことができます。
不要な通知で共通の要素を見つけたら、他の通知を通過させながら、それらの要素を具体的に対象とするミューティングルールを定義できます。通知がミュートされている場合でも、アラートはそれらの違反に関するデータを収集します。ミューティングルールはアラートプロセスに干渉せず、通知が送信される直前の時点で適用されます。
ミューティングルールを管理する
ミューティングルールの条件は、ミューティングの対象となる違反を定義する属性、演算子、および値で構成される個々の式のセットです。
ミューティングルールを作成、有効化、無効化、および管理できます。 one.newrelic.comにアクセスし、上部のナビゲーションで[ Alerts&AI ]をクリックしてから、[Mutingrules]をクリックします。ミューティングルールをいつでも有効または無効にします。
ルールには、次のいずれかのステータスがあります。
- アクティブ:ミューティングが有効でアクティブです。
- スケジュール済み:ミューティングは有効になっていますが、まだアクティブではありません(将来のスケジュールがあります)。
- 終了:ミューティングは有効になっていますが、アクティブではなくなりました(将来のスケジュールはありません)。
- 非アクティブ:ミューティングが無効になっています。
one.newrelic.com >アラートとAI>ミューティングルール:複雑なミューティングルールを作成して、不要な通知の小さなセットまたは大きなセットをターゲットにすることができます。
ミューティングルールを作成する
ヒント
ミューティングルールを作成する前に、違反通知を生成するポリシーと条件を作成する必要があります。
ミューティングルールを作成するには、[ミューティングルール]画面で[ +ルールを追加]をクリックします。ミューティングルールの名前と説明を入力し、ルールを適用するアカウントを選択します。
次に、違反フィルターを作成します。 の違反イベント属性 のサブセットを使用できます(具体的には、 accountId
、 conditionId
、 conditionName
、 entity.guid
、 nrqlEventType
、 nrqlQuery
、 policyId
、 policyName
、 runbookUrl
(としてconditionRunbookUrl
)、 tags.<NAME>
、およびtargetName
)と つの部分条件演算子 。値は、アラートポリシーIDや条件名などの違反属性の1つと比較できます。
one.newrelic.com >アラートとAI>ミューティングルール:複雑なミューティングルールを作成して、不要な通知の小さなセットまたは大きなセットをターゲットにすることができます。
ミューティングルールをスケジュールする
必要に応じて、ミューティングルールをスケジュールできます。
これを行うには、開始時刻または終了時刻、あるいはその両方を選択します。オプションで、ミューティングルールを1日継続するように設定できます。
ミューティングルールスケジュールのタイムゾーンを選択することもできます。デフォルトは、ユーザー設定で選択されたタイムゾーンです。
ミューティングルールをスケジュールするための柔軟で強力なオプション。
ミューティングルールを毎日、毎週、または毎月繰り返すようにスケジュールできます。毎週繰り返すようにスケジュールされているミューティングルールには、繰り返す曜日を選択するオプションが含まれています。日が選択されていない場合、毎週の繰り返しは、デフォルトで、ミューティングルールの開始がスケジュールされている曜日に繰り返されます。
重要
[曜日を繰り返す]チェックボックスは、[開始日]フィールドと[終了日]フィールドを上書きします。開始日を設定し、曜日も選択した場合、ミューティングルールは開始日後の最初の日に適用されます
特定の日付または特定の発生回数を選択して、再発をいつ終了するかを指定することもできます。
NerdGraphを使用してミューティングルールを管理する
NerdGraphでは、ミューティングルールで次のクエリとミューテーションを使用できます。スキーマの詳細は、 APIExplorerで確認できます。
actor.account.alerts.mutingRule
:IDでミューティングルールを取得します。actor.account.alerts.mutingRules
:アカウントのミュートルールのリストを取得します。alertsMutingRuleCreate
:アカウントのミュートルールを作成します。alertsMutingRuleUpdate:
IDとアカウントIDでミューティングルールを更新します。alertsMutingRuleDelete:
IDとアカウントIDでミュートルールを削除します。
このドキュメントでは、いくつかのサンプルクエリとミューテーションの例を示しました。
ミューティングルールには、次のフィールドとコンポーネントがあります。
ミューティングルール | フィールドとコンポーネント |
---|---|
| ミューティングルールの一意の識別子。 |
| ミューティングルールのわかりやすい名前のテキストフィールド。これは、ルールを一覧表示または参照するときに使用されます。名前が一意である必要はありませんが、お勧めします。 |
| これは、ミューティングルールを説明するオプションのテキストフィールドです。これは、ミューティングルールにより多くのコンテキストを提供するための便利な方法です。このデータは、管理表示の目的でのみ使用されます。 |
| ミューティングルールのアカウントID。ミュートルールは、単一のアカウントで発生する違反にのみ影響します。複数のアカウント間で違反をミュートするには、アカウントごとに個別にミュートルールを作成する必要があります。 |
| ミューティングルールが作成されたときのタイムスタンプ(UTC)。 |
| ミューティングルールを作成した人のユーザーID。 |
| ミューティングルールが最後に変更されたときのタイムスタンプ(UTC)。 |
| ミューティングルールを最後に変更した人のユーザーID。 |
| ミューティングルールを有効または無効にします(ブール値)。ミューティングルールは手動で有効または無効にする必要があります。 |
| 対象とする違反を定義する個々の式のセット。ミューティングルールの条件は次のとおりです。
|
|
|
ミューティングルールのしくみ
通知を抑制またはミュートするために、デフォルトのアラートライフサイクルの最後にミュートルールが適用されます。既存のポリシーや条件を無効にすることはありません。たとえば、メンテナンスウィンドウや展開など、既知のシステムの中断中に通知をミュートできます。システム障害違反の通知はミュートされていますが、システム障害違反は引き続き識別されます。
ミューティングルールは、違反イベントの属性と一致する一連の条件を使用します。ミューティングルールは、次の方法を教えてくれます。
- 作成された後、インシデントが開かれる前に、個々の違反を特定します。
- デフォルトの条件をオーバーライドして、「ミュート」する必要があることを示します。
現在、違反をミュートすると、ミュートされた違反のみを含むインシデントが通知を送信しないことを除いて、通常のアラートインシデントのライフサイクルが維持されます。
ミューティングルールは特定の違反を上書きします。既存のポリシーや条件を無効にすることはありません。これにより、多数のエンティティを対象とするポリシーまたは条件の対象となる可能性のある特定のエンティティからの違反をミュートできます。これにより、システムのサブセットでメンテナンスを実行しているときに、監視を過度にミュートする必要もなくなります。
ミューティング動作
次の表は、アラートインシデントのライフサイクルがミュートされた違反によってどのように影響を受けるかを示しています。
もしも | と | それから |
---|---|---|
イベント:インシデントが発生します | ||
ミュートされていない違反が原因でインシデントが発生します | 「未解決のインシデント」通知が送信されます(デフォルト)。 | |
ミュートされた違反が原因でインシデントが発生します | 「未解決のインシデント」通知は送信されません(ミュートされます)。 | |
イベント:未解決のインシデントに違反が追加されました | ||
すでに開いているインシデントに新しいミュート違反が追加されます | 通知アクションはトリガーされません(デフォルト)。 | |
ミュートされていない新しい違反が未解決のインシデントに追加されます | 「未解決のインシデント」通知は送信され**ていません** | 「未解決のインシデント」通知が送信されます。 |
ミュートされていない新しい違反が未解決のインシデントに追加されます | 「未解決のインシデント」通知はすでに送信されています | 通知アクションはトリガーされません(デフォルト)。 |
イベント:インシデントは終了しました | ||
インシデントはクローズされました | 「未解決のインシデント」通知は送信されていません | 「インシデントのクローズ」通知は送信されません。 |
インシデントはクローズされました | 「未解決のインシデント」通知が送信されました | 「インシデントのクローズ」通知が送信されます。 |
イベント:インシデントが確認されました | ||
インシデントが確認されました | 「未解決のインシデント」通知は送信されていません | 「インシデント確認済み」通知は送信されません。 |
インシデントが確認されました | 「未解決のインシデント」通知が送信されました | 「インシデント確認済み」通知が送信されます。 |
ワークフローによる動作のミュート
トリガーされた違反はインシデントと1:1の比率であるため、違反がミュートされると、一致するインシデントもミュートされます。ワークフローは、1つ以上のインシデントが発生する可能性のある問題によってトリガーされるため、ミュートされたインシデントとミュートされていないインシデントが組み合わされたシナリオが存在する可能性があります。
各問題には、次のいずれかのミューティング状態があります。
- 完全にミュート(FULLY_MUTED) :問題の未解決のインシデントがすべてミュートされています(デフォルト値)。
- 部分的にミュート(PARTIALLY_MUTED) :少なくとも1つの未解決のインシデントがミュートされ、1つの未解決のインシデントがミュートされていない問題。
- ミュートされていません(NOT_MUTED):未解決のミュートされたインシデントがない問題。
ワークフローの設定方法のステップバイステップガイドについては、以下のデモ例をご覧ください。
ミュートされた違反とインシデントを表示する
オープンまたはクローズされたインシデントを表示すると、違反とインシデントはMuted
としてマークされます。次のセクションでは、これらのミュートされた違反とインシデントのいくつかと、それらを見つけることができる場所を示します。
を使用してファセット結果をミュートする tags.
ファセットクエリの結果をミュートするには、 tags.FACETED_ATTRIBUTE
属性を使用します。ここで、 FACETED_ATTRIBUTEは、NRQL FACET
クエリを実行した属性を表します。例:NRQLアラート条件のクエリにFACET host
が含まれている場合、 tags.host
を使用してそのFACET
属性をターゲットにできます。
NRQL条件クエリは、複数のファセット属性を受け入れることができます。集約されたイベントまたはメトリック時系列の属性からフィルタリングできるようにする場合は、それらの属性をNRQLクエリFACET
句に追加する必要があります。例: FACET host, region, cluster
。
tags.
の使用例については、ミューティングルールの作成を参照してください。
サブ条件演算子
以下は、ミューティングルールを作成するときに属性を比較するために使用できる論理演算子です。使用されているこれらの例については、 例を参照してください。
EQUALS
:指定された値が違反属性値と等しい場合。NOT_EQUALS
:指定された値が違反属性値と等しくない場合。IN
:違反属性値が提供された値のリストに存在する場合(最大500)。NOT_IN
:違反属性値が提供された値のリストに存在しない場合(最大500)。CONTAINS
:指定された値の文字列が違反属性値に存在する場合。NOT_CONTAINS
:指定された値の文字列が違反属性値に存在しない場合。ANY
:注意:この演算子の条件は、アカウントのすべての違反をミュートします。IS_BLANK
:違反属性値が空白の場合。ヌル、空の文字列など。IS_NOT_BLANK
:違反属性値が空白でない場合。ヌル、空の文字列など。STARTS_WITH
:違反属性値が指定された値文字列で始まる場合。NOT_STARTS_WITH
:違反属性値が指定された値文字列で始まらない場合。ENDS_WITH
:違反属性値が指定された値文字列で終わる場合。NOT_ENDS_WITH
:違反属性値が指定された値文字列で終わっていない場合。
ミューティングの例
NerdGraphへのリクエストの詳細については、 GraphQLチュートリアルを含むNerdGraphのドキュメントを参照してください。