概要
SREのみなさん、こんにちは!サービスレベルの監視をしてますか?
New Relicでは通常の閾値監視に加えて、サービスレベルの監視もできる機能があります。
この度、New RelicではSlow Burn Rateが設定できるようになりましたので、知識の整理を兼ねて試していこうと思います。前半は知識整理の解説があるので、サクッと設定を見たい方は後半へ飛んでください。
最新のアップデートの詳細はこちら
New Relic アップデート(2023年2月)
New Relic アップデート一覧
New Relic株式会社のQiita Organizationでは、
新機能を含む活用方法を公開していますので、ぜひフォローをお願いします。
エラーバジェット管理のためのSlow Burn Rate
前提としてサービスレベルを設定するときにSLIとSLOを定めてることでエラーバジェットを算出します。このエラーバジェットは信頼性が損なわれてもどれほど許容されるか、その定量的な指標として機能し、エンジニアリグにおける様々な判断に利用されます。
ある意味信頼の残高といえるエラーバジェットを管理してく場合、単純な閾値監視でなく別の観点でエラーなジェットの消費を検知していくことになります。その1つは、Fast Burn Rate、そしてもう一つが Slow Burn Rateです。
そもそもSlow Burn Rateとは
Slow Burn Rateは低速バーンアラートと訳され、ある期間におけるエラーバジェットの消費率が緊急性を要するほど消費はしていないが、無視できない状況を検知するための指標です。
特にGoogleのドキュメントではSlow Burn Rateは以下のように説明されています。
低速バーンアラートは、アラートを発生させないと、コンプライアンス期間の終了前にエラー バジェットを使い切る場合に、消費率についてのアラートを発生させます。低速バーン状態は、急速バーン状態よりも緊急性が低くなります。「今月の予定は少し上回っているが、今のところ大きな問題はない」という状態です。
低速バーンアラートでは、より短期間の消費量のばらつきをならすために、より長いルックバック期間を適用します。
低速バーンアラートでアラートを発するしきい値は、ルックバック期間における理想的なパフォーマンスよりは大きくなりますが、大幅に上回るわけではありません。ルックバック期間が短く、しきい値が高いポリシーは、長期的な消費量が横ばいになってもアラートが多量に発生してしまう可能性があります。しかし、消費量が長期的に高い値を維持した場合、最終的にすべてのエラー バジェットが消費されてしまいます。
このようにエラーバジェットの消費を適切に運用するための手段として、Slow Burn Rateがあることが分かりました。そして、New RelicのSlow Burn Rateは6時間の期間でエラーバジェットを5%消費した場合にSlow Burn Rateとして検知できます。
New RelicでSlow Burn Rateをサックと設定する
まず、Slow Burn Rateを設定たいサービスレベルを選択します。下記の例では「Plan Service - Latency」というサービスレベルを選択し、これに対してSlow Burn Rateを設定します。
右上「・・・」から「Create an alert」を選択し、次に進みます。
「Suggested alert types」から「Slow-burn rate」を選択し、policy設定を済ませた上で「Enable condition」を押し、有効化します。
これで設定は完了です
数ステップでSlow Burn Rateの設定が完了しました。一般的にサービスレベルの計算式は複雑ですが、このようにNew Relicでは簡単に設定できます。
また、もし設定したSlow Burn Rateを確認したい時は該当のサービスレベルから「Alert Conditions」で確認できます。
New Relicでサービスレベルの設定と監視を簡単に行うことで、本来の業務である信頼性に集中していきましょう。