9
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

New Relicで複数ウィンドウのバーンレートアラートを設定してみよう

9
Posted at

SLOのアラートにおいて、エラーバジェットの消費速度によるバーンレートアラートを設定することがあると思います。
The Site Reliability Workbookの第5章には、複数ウィンドウのバーンレートアラートについての記載があります。

image.png

現在プレビュー機能として公開されているNew RelicのCompound Alertsを使って同様のアラートを作成してみます。

Compound Alerts 機能は、本ブログ執筆時点ではプレビュー段階であるため、今後、仕様変更される可能性があります。

New Relic株式会社のQiita Organizationでは、
新機能を含む活用方法を公開していますので、ぜひフォローをお願いします。

Compound Alerts とは?

Compound Alertsは、New Relic上で作成した複数のアラートコンディションを、AND や OR などの論理演算子で組み合わせて、1つの新しいアラート条件として定義できる機能です。
詳細については公式ドキュメントをご参照ください。

対象とするSLO

今回、バーンレートアラートの対象とするSLOは以下のようなものを想定します。

image.png
image.png

  • 期間:28日間
  • 目標:99.9%
  • 指標:エラーの割合(TransactionErrorの数 / Transactionの数)

また、アラートコンディションを作成するにあたり、このSLOのEntity guidを後程使用します。
スクリーンショット 2026-06-09 17.44.32.png

短いウィンドウと長いウィンドウのアラートコンディション

ここからアラートコンディションを作成していきます。
今回はエラーバジェットの2%を消費するような障害を検知する設定とします。
バーンレートについてはSLOの期間が28日間であるため13.44とします。
どちらのアラートコンディションもNRQLにて指定するentity.guidは先ほど確認したSLOのEntity guidを使用します。

まずは、短いウィンドウのアラートコンディションから作成します。

image.png

  • NRQL:FROM Metric SELECT 100 - clamp_max((sum(newrelic.sli.valid) - sum(newrelic.sli.bad)) / sum(newrelic.sli.valid) * 100, 100) AS 'Error rate' WHERE entity.guid = 'NzM1MzU3MnxFWFR8U0VSVklDRV9MRVZFTHwyNjk0ODkx'
  • Window duration:5 minutes
  • Sliding window aggregation:Enabled
  • Slide by interval:1 minute
  • Streaming method:Event flow
  • Thresholds:Query result is above 1.344 at least once in 1 minute.

次に、長いウィンドウのアラートコンディションを作成します。

image.png

  • NRQL:FROM Metric SELECT 100 - clamp_max((sum(newrelic.sli.valid) - sum(newrelic.sli.bad)) / sum(newrelic.sli.valid) * 100, 100) AS 'Error rate' WHERE entity.guid = 'NzM1MzU3MnxFWFR8U0VSVklDRV9MRVZFTHwyNjk0ODkx'
  • Window duration:1 hour
  • Sliding window aggregation:Enabled
  • Slide by interval:1 minute
  • Streaming method:Event flow
  • Thresholds:Query result is above 1.344 at least once in 1 minute.

複数ウィンドウのアラートコンディション

作成した2つのアラートコンディションをCompound Alertsを使ってANDをとることで複数ウィンドウのアラートを再現します。

Alerts > Compound Alerts の画面から New compound alertをクリックします。

スクリーンショット 2026-06-09 17.50.35.png

それぞれ各項目を入力して、Save compound conditionをクリックします。

スクリーンショット 2026-06-09 17.51.21.png

  • Name:任意のアラート名
  • Selected conditions:先ほど作成した短いウィンドウと長いウィンドウの2つのコンディションを選択
  • Tell us how you want these conditions to work together:a AND b
  • Threshold Duration:30 seconds

以上の設定をすることで、2つのコンディションが2つとも閾値を超えた時にアラートイベントが作成されます。

アラートの発生からクローズまでの流れ

10分間、意図的に15%のエラーになるようにリクエストを送って、実際の挙動を確かめてみました。

image.png

エラーが15%に到達した後、すぐに短いウィンドウのアラートイベントが作成されました。

スクリーンショット 2026-06-10 20.44.54.png

そして6分後に長いウィンドウのアラートイベントが作成されました。

スクリーンショット 2026-06-10 20.51.02.png

短いウィンドウ、長いウィンドウ両方のアラートイベントが作成されたので、Compound Alertsのアラートイベントが作成されました。

スクリーンショット 2026-06-10 20.51.45.png

Slackには以下のように通知されます。

image.png

その後、エラーが0%に戻ると7分後に短いウィンドウのアラートイベントがクローズされました。

スクリーンショット 2026-06-10 21.06.53.png

短いウィンドウのアラートイベントがクローズされたため、Compound Alertsのアラートイベントもクローズされました。

スクリーンショット 2026-06-10 21.08.35.png

さらに時間が経った後、長いウィンドウのアラートイベントもクローズされました。

スクリーンショット 2026-06-10 21.56.28.png

まさに、最初に引用した、以下の画像と同じような挙動になったと思います。

image.png

おわりに

以上のように、少し手間ではありますが、複数ウィンドウによるバーンレートアラートを作成することができました。
是非、試してみてください。

無料のアカウントで試してみよう!
New Relic フリープランで始めるオブザーバビリティ!

image.png

9
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?