TL

エラーバジェットの数理とバーンレート

アラートが鳴りすぎる、遅すぎるを卒業。SLOからエラーバジェットを導き、バーンレートで「いつ・どれだけ急いで」鳴らすかを数式から設計できます。

応用SRESLOエラーバジェットアラート信頼性最終更新: 2026-06-21
TL;DR要点だけ先に
  • 1.エラーバジェット=(1 − SLO)×総イベント数。残量ではなく消費の速さ(バーンレート)で危険度を測る。
  • 2.バーンレート=(実測エラー率 ÷ 許容エラー率)。短窓×長窓のマルチウィンドウで誤検知と検知遅れを同時に抑える。
  • 3.速いバーンには低しきい値で即ページ、遅いバーンは高しきい値でチケット。消費予算割合でしきい値を逆算する。

エラーバジェットを「量」として定義する

SRE と SLO の枠組みでは、エラーバジェットを エラーバジェット = 100% − SLO と説明します。原理レベルでは、これを イベント数の絶対量 に落とすと計算が明確になります。SLO が「直近30日のリクエスト成功率 99.9%」で、その期間の総リクエストが N なら、

許容エラー率 (1 − SLO) = 0.001
バジェット(許容失敗数) = (1 − SLO) × N = 0.001 × N

N が 30日で 1億リクエストなら、バジェットは 10万リクエスト。これが「期間内に失敗してよい総数」です。重要なのは、バジェットを 時間(分)ではなくイベント比 で考えること。トラフィックが昼夜で10倍変動するサービスでは「43分ぶん」という時間換算は誤差が大きく、比率ベースのほうが正確に消費を追えます。

時間ベース vs イベントベース

「99.9% = 月43.2分」は総量の直感には便利ですが、消費追跡には不向きです。深夜の1分とピーク時の1分では含まれるリクエスト数が桁違いだからです。アラート設計では 失敗イベント数 ÷ 全イベント数 を一次情報にします。

バーンレート:残量ではなく「消費の速さ」

残バジェットだけを見ると、「残り5%」になってから慌てることになります。SRE の鍵は バーンレート(burn rate)、つまり予算を 何倍の速さで消費しているか です。

バーンレート = 実測エラー率 ÷ 許容エラー率 (1 − SLO)

許容エラー率が 0.001 のとき、ある時間窓で実測エラー率が 0.01 なら、バーンレートは 0.01 ÷ 0.001 = 10。これは「通常の10倍の速さで予算を燃やしている」状態です。

バーンレートが意味を持つのは、期間全体を均す基準速度1 だからです。30日のバジェットをちょうど30日で使い切るペースがバーンレート 1。そこから、ある一定のバーンレートが続いた場合に 何時間で全予算を使い切るか が逆算できます。

枯渇までの時間 = SLO期間 ÷ バーンレート
(例:30日 ÷ バーンレート14.4 ≒ 2.08日 ≒ 約50時間)

逆に「特定時間で予算の何割を消費するか」も出せます。これがしきい値設計の中核です。

ある窓で消費する予算割合 = バーンレート × (窓の長さ ÷ SLO期間)
(例:バーンレート14.4 × (1時間 ÷ 720時間) = 0.02 = 予算の2%)
代表的なバーンレートの早見

SLO期間を30日(720時間)とすると、よく使う組み合わせは次の通り。バーンレート14.4で1時間続くと予算の2%、バーンレート6で6時間続くと予算の5%、バーンレート1で30日続けてちょうど100%消費します。

なぜマルチウィンドウ・マルチバーンレートなのか

単一しきい値のアラートには、避けられないトレードオフがあります。

設計長所短所
短い窓・低しきい値検知が速い瞬間的スパイクで誤検知(うるさい)
長い窓・高しきい値誤検知が少ない検知が遅い/一過性の障害を取りこぼす
短窓 AND 長窓の併用速さと精度を両立設定がやや複雑

Google の SRE Workbook が推奨するのは、1つのアラート条件に長短2つの窓を AND で結ぶ 方式です。長い窓(例:1時間)で「予算を有意に消費した」ことを確認しつつ、短い窓(例:5分)で「今もまだ燃えている」ことを確認します。短窓の役割は、障害がすでに収束したのに長窓の慣性で鳴り続ける状態(リセットの遅れ)を防ぐことです。

速いバーン(重大):
  alert if  burn_rate(1h)  > 14.4  AND  burn_rate(5m)  > 14.4
  → 1時間で予算2%消費ペース。即ページング。

遅いバーン(緩慢):
  alert if  burn_rate(6h)  > 6     AND  burn_rate(30m) > 6
  → 6時間で予算5%消費ペース。チケット/日中対応。

短窓は経験則として 長窓の1/12 にとると、長窓が満杯になる前に短窓が反応・解除できてバランスが良いとされます。複数のバーンレート段(14.4 / 6 / 1 など)を並べる マルチバーンレート にすると、「急性の大障害は即ページ、慢性の微小劣化はチケット」と重大度を分離できます。

しきい値は予算割合から逆算する

しきい値の数字(14.4, 6 …)は天下りではありません。「この窓で予算の何%を消費したらページしたいか」を先に決め、バーンレート = 目標消費割合 ÷ (窓 ÷ SLO期間) で逆算した結果です。例:1時間で2%なら 0.02 ÷ (1 ÷ 720) = 14.4。チームのオンコール負荷に合わせて消費割合を調整します。

検知時間と誤警報の力学

マルチウィンドウ方式の性能は、2つの指標で評価します。検知時間(time to detect)検知後の鳴り続け時間(reset time) です。一定のバーンレート r で障害が始まったとき、長窓 w でしきい値 r_th を超えるまでの理論上の検知時間は次のように近似できます。

検知時間 ≒ w × (r_th ÷ r)
(r が r_th と同じなら窓1つぶん、r が大きいほど早く超える)

つまり実害が大きい(r が大きい)ほど速く鳴り、軽微なほどゆっくり鳴る——重大度と緊急度が自動で連動します。これは「CPUが高い」式の固定しきい値アラートにはない性質で、SLO を脅かす速度そのもの を発報基準にしているからこそ得られます。アラートが何を観測すべきかは オブザーバビリティ の設計とも一体です。

試験・面接での頻出ポイント

「バーンレート2」とは何か、を言語化できること。答え:予算を基準ペースの2倍で消費しており、SLO期間が30日なら15日で全予算を使い切るペース。残量ではなく「速度の倍率」である点が核心です。

リリース速度との力学:予算をリスク原資に使う

バーンレートはアラートだけでなく、リリース速度の制御ループ にもなります。残バジェットが潤沢なら、それは「取ってよいリスクの在庫」です。フィーチャーフラグ でのロールアウト比率を上げ、デプロイ戦略 のカナリア露出を拡大できます。逆に直近のバーンレートが高止まりしていれば、自動でロールアウトを絞る/凍結する、という ポリシー・アズ・コード が組めます。

残バジェット直近バーンレート推奨アクション
潤沢(>50%)低い(<1)リリース加速・カナリア比率↑・実験的変更OK
残少(<25%)高い(>5)凍結・修正専念・ロールバック準備
枯渇機能リリース停止。信頼性作業のみ

この力学が、開発の「速く出したい」と運用の「壊したくない」を 同一の数字 で調停します。予算が余っているのに過度に慎重なのは、SRE 的には「遅すぎる」状態です。一方で枯渇後も出し続ければ、ポストモーテム で繰り返し同じ根本原因に行き着くことになります。バーンレートは、その判断を感情ではなく速度の数値に置き換える装置です。

まとめ

  • エラーバジェットは (1 − SLO) × 総イベント数。時間換算より イベント比 が正確。
  • バーンレート = 実測エラー率 ÷ 許容エラー率1 が期間消費の基準速度で、速さの倍率 を見る。
  • しきい値は バーンレート = 目標消費割合 ÷ (窓 ÷ SLO期間) で逆算。マジックナンバーではない。
  • マルチウィンドウ(長窓 AND 短窓)で誤検知と鳴り続けを抑え、マルチバーンレートで重大度を分離する。
  • 残量とバーンレートを合わせて読み、リリース速度を自動制御する——それがエラーバジェットの本質的な使い道。

DevOps/インフラ Article

エラーバジェットの数理とバーンレートを実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

SRE

比較で見る軸

難易度: advanced / カテゴリ: DevOps/インフラ / タグ数: 5

導入後に効く点

バーンレート=(実測エラー率 ÷ 許容エラー率)。短窓×長窓のマルチウィンドウで誤検知と検知遅れを同時に抑える。

先に潰すリスク

用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。

数字・仕様の読み方
難易度
advanced
カテゴリ
DevOps/インフラ
タグ数
5

判断チェックリスト

  • 自社の用途が「SRE / SLO」に近いか確認する。
  • 強みである「エラーバジェット=(1 − SLO)×総イベント数。残量ではなく消費の速さ(バーンレート)で危険度を測る。」が本当に評価軸になるか確認する。
  • 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

SRESLOエラーバジェットアラート信頼性SRESLOエラーバジェット
参考: 公式情報