SRE

エラーバジェットとは?計算式・残量管理・実務活用ガイド

ⓘ本ページはプロモーションが含まれています

お得なお知らせ

スポンサードリンク
まず1社、面談枠を押さえる

エンジニアの次のキャリア、30分で動き出す

正社員転職・フリーランス独立、どちらも「最初の1社登録」がスピードを決めます。無料面談で年収相場と求人を一気に把握。

Tamesy|未経験〜第二新卒の転職▶ エンジニアファクトリー|フリーランス案件▶

▶ 学習からスタートしたい方はEnjoy Tech! もチェック。


スポンサードリンク

1. エラーバジェットとは何か ― SLI/SLO との位置付け

用語 定義 主な情報源
SLI(Service Level Indicator) 実際に測定したサービスの品質指標(例:稼働率、レイテンシ)。 Google SRE Book – Measuring Service Levels
https://sre.google/sre-book/monitoring/#measuring-service-level-indicators
SLO(Service Level Objective) ビジネスが受容できる品質目標。SLI の期待値として設定する。 同上
エラーバジェット ErrorBudget = (1 - SLO) × 期間 によって算出され、許容できるダウンタイム(秒)を表す。 Google SRE Book – Error Budgets
https://sre.google/sre-book/alerting/#error-budgets
SLA(Service Level Agreement) 顧客と交わす契約上の保証。エラーバジェットは内部運用での意思決定材料。 同上

1‑1. 計算式の根拠

[
\text{ErrorBudget}{\text{seconds}} = (1 - \text{SLO}) \times \underbrace{\text{期間(秒)}}{\text{period_seconds}}
]

  • SLO は 0〜1 の小数で表記(例:99.9 % → 0.999)。
  • 期間 は「月」「四半期」など任意だが、秒単位に変換して計算するのが一般的。

実務上の注意
- SLO が 99.95 %(0.9995)の場合、月間(30日)のエラーバジェットは 0.0005 × 2 592 000 ≈ 1 296 秒(≈21.6分)
- エラーバジェットは 残量 として定期的にモニタリングし、枯渇時にリリースペースを調整する指標になる。


2. 計算例とエクセルテンプレート

2‑1. 月間(30日)で SLO=99.9 % の場合

項目
SLO 0.999
期間 30 days = 30 × 24 × 3 600 = 2 592 000 秒
許容ダウンタイム(ErrorBudget) (1 - 0.999) × 2 592 000 = 2 592 秒 ≈ 43.2 分

2‑2. エクセル/CSV テンプレート

  • ファイル: error_budget_template.xlsx(ダウンロードリンクは社内共有サーバーに配置してください)
  • シート構成
  • Settings – SLO、期間(日数)、サービス名を入力。
  • Calc – 上記計算式で自動的に AllowedSecondsRemainingBudget を算出。
  • Chart – 残量の時系列グラフと「枯渇警告」セル(負の場合は赤表示)。

ポイント:テンプレートは数式がロックされているため、入力ミスを防げます。


3. Prometheus でエラーバジェットの実測値を取得する

3‑1. ダウンタイム(秒)を正しく集計するクエリ

up メトリクスは 1 が「正常」、0 が「ダウン」を示す gauge
直接 increase(up[30d]) == 0 では期待通りに集計できません。代わりに次の手順で算出します。

クエリ例(単一行で書く場合)

  • 15 は実際に設定している scrape_interval(秒)。環境に合わせて変更してください。
  • 取得した値は「期間中の合計ダウン秒数」になるので、エラーバジェット残量は次式で求められます。

3‑2. クエリの解説(コードブロック内コメント)


4. 可視化とアラート設定

4‑1. Grafana ダッシュボード(Stat パネル)全体構造

以下は Grafana 9.x 用にエクスポートした JSON 全文です。インポートすれば即座に「エラーバジェット残量(秒)」が表示されます。

インポート手順
1. Grafana の UI → 「+」→「Import」
2. 上記 JSON を貼り付けて「Load」→データソースを Prometheus に設定して完了。

4‑2. Datadog でエラーバジェット枯渇アラートを作る

Datadog のモニタは カスタムメトリクス を利用するとシンプルです。以下の例では myservice.error_budget_remaining(秒)というカウンタを外部スクリプトで送信し、閾値が 0 以下になったら通知します。

  • myservice.error_budget_remaining の算出は、先ほどの Prometheus クエリ結果を datadog-agentDogStatsD 経由で送信するスクリプト(例:Python)で実装します。
  • 詳細は Datadog 公式ドキュメント → Metric Monitors https://docs.datadoghq.com/monitors/create/types/#metric を参照。

5. エラーバジェット枯渇時の具体的アクションフロー

フェーズ 実施内容 担当・ツール
1️⃣ アラート受信 Grafana/Datadog の赤色ステータスを確認。 SREオンコール
2️⃣ リリースブロック CI/CD パイプラインに ERROR_BUDGET_OK=false フラグを設定し、デプロイを自動停止。 GitHub Actions / Jenkins
3️⃣ 障害復旧タスク優先化 既存のインシデントチケットを上位ステータスへ変更し、担当者を割り当てる。 Jira, PagerDuty
4️⃣ ポストモーテム 枯渇原因(例:外部 API の遅延)を分析し、改善策をドキュメント化。 Confluence
5️⃣ SLO 再評価 必要ならばビジネス側と協議し、SLO を緩和または期間を伸長する。 プロダクトマネージャー・経営層

ベストプラクティス
- 枯渇が判明したら 30 分以内にリリースブロック を実施(Google SRE の推奨)。
- ポストモーテムは Blameless に徹し、原因と再発防止策だけを記載。


6. エラーバジェットレビュー会議の運用ガイド

6‑1. 定例ミーティングの設計

頻度 主な目的 推奨参加者
月次(30 分) ダッシュボード確認、残量のトレンド把握。 SRE リーダー、プロダクトオーナー、開発リード
四半期(90 分) 大規模障害の振り返り、SLO/エラーバジェット設定の見直し。 上記に加えて経営層・カスタマーサクセス

アジェンダ例(四半期レビュー)

  1. 前回レビュー以降の 残量推移(Grafana スクリーンショット)。
  2. 障害トップ3 のインシデント概要と対応結果。
  3. 改善施策 の進捗確認(JIRA チケット一覧)。
  4. SLO 改訂提案(必要ならば新しいビジネス要件に合わせて)
  5. 次回までの アクションアイテム と所有者決定。

  6. 会議資料は事前に Google Slides で共有し、議事録は Confluence に保存。

  7. アクションは JIRA のエピックとして管理し、ステータスが「Done」になるまで追跡する。

6‑2. 合意形成のポイント

項目 推奨手法
SLO の妥当性 ユーザーへのインパクトとコストを定量化し、バリューベースドプライシング で合意。
エラーバジェット期間 月次/四半期のどちらか一方だけでなく、ハイブリッド(30日+90日) を併用すると可視性が高まる。
アラート閾値 0 秒だけでなく 警告レベル(例:残量 20 % 以下) を設定し、早期対応を促す。

7. まとめと次のステップ

  1. 概念を正しく理解 → SLI・SLO とエラーバジェットは同一フレームワーク内で相互依存していることを認識。
  2. 計算式を自動化 → 提供した Excel テンプレートと Prometheus クエリで「許容ダウンタイム」と「実績ダウンタイム」をリアルタイムに取得。
  3. 可視化・アラート → Grafana の Stat パネルと Datadog のモニタを導入し、残量が 0 以下になると即座に通知される体制を構築。
  4. 枯渇時のプロセス → リリースブロック → 障害復旧 → ポストモーテム → SLO 再評価という一連のフローを標準化。
  5. 定期レビューで文化醸成 → 月次・四半期の会議でエラーバジェット指標を経営層と共有し、信頼性向上への継続的投資を確保。

次にやること
- 本稿の JSON を Grafana にインポートし、ダッシュボードを本番環境で有効化。
- Prometheus の scrape_interval が 15 秒以外の場合はクエリ中の掛け算係数を修正。
- エクセルテンプレートを全チームに配布し、最初の「設定シート」だけ入力して残量計算ができることを確認。


参考文献(公式・信頼性の高い情報源)

項目 URL
Google SRE Book – Monitoring & Error Budgets https://sre.google/sre-book/monitoring/#error-budgets
Prometheus Query Basics https://prometheus.io/docs/prometheus/latest/querying/basics/
Grafana Stat Panel Documentation https://grafana.com/docs/grafana/latest/panels-visualizations/stat-panel/
Datadog Metric Monitor Guide https://docs.datadoghq.com/monitors/create/types/#metric
SLA vs SLO – Cloudflare Blog (補足) https://www.cloudflare.com/ja-jp/learning/ddos/what-is-sla/

スポンサードリンク

お得なお知らせ

スポンサードリンク
まず1社、面談枠を押さえる

エンジニアの次のキャリア、30分で動き出す

正社員転職・フリーランス独立、どちらも「最初の1社登録」がスピードを決めます。無料面談で年収相場と求人を一気に把握。

Tamesy|未経験〜第二新卒の転職▶ エンジニアファクトリー|フリーランス案件▶

▶ 学習からスタートしたい方はEnjoy Tech! もチェック。


-SRE