SLO / Error Budget — Parky
Parky の API / Mobile / Web に対する Service Level Objective (SLO) と error budget の定義・運用ルール。
2026-04-28 初版。観測性配線 (Sentry/OTel/CAE) の本格運用と同時に開始する。
設計方針
- 目的: ユーザー影響の継続観測と「いつリリースを止めるべきか」を客観的に決める基準。
- 対象:
api.parky.co.jp (Workers BFF) を一次対象。Mobile / Web ポータルは Phase 2 で追加。
- 計測ソース: Cloudflare Analytics Engine (CAE) + Sentry + Workers Observability。Logpush → R2 を 30 日 retention で raw データ保管。
- 窓: 28 日ローリング (4 週)。週次レビューで burn rate を確認する。
- error budget:
(1 - SLO%) × 28 日のリクエスト総数 の許容失敗数。
- alert 方針: burn rate × 14.4 (1h で 24h 分消費) と × 6 (6h で 1日分消費) の二段アラート。
API SLO (Tier 0 — Workers BFF)
| 指標 |
目標値 |
計測 |
error budget (28 日) |
| 可用性 (success rate) |
99.5% |
CAE: 5xx を除く 2xx/3xx/4xx の割合 |
0.5% (例: 100 万 req/月 なら 5,000 req まで) |
| レイテンシ p95 |
< 500ms |
CAE: status < 500 のみで集計 |
p95 が 500ms を超えた時間の割合 ≤ 5% |
| レイテンシ p99 |
< 1500ms |
CAE: 同上 |
同上 ≤ 5% |
| エラー率 |
< 0.5% |
Sentry + CAE 5xx |
0.5% を 28 日連続で超過したら freeze |
除外 (SLI から除く)
- 4xx クライアントエラー全般 (
401 / 403 / 404 / 409 / 422 / 429) — クライアント由来
- 計画メンテナンス時間中の 5xx (事前 announce + Slack 通知必須)
- 上流 (Supabase / Cloudflare 自身) の同時刻インシデント中 (Cloudflare Status / Supabase Status で確認)
Mobile SLO (Phase 2)
| 指標 |
目標値 |
計測 |
| crash-free sessions |
≥ 99.5% |
Sentry Flutter |
| cold start p95 |
< 2.5s |
Firebase Performance Monitoring (要設定) |
| 検索 RPC p95 |
< 300ms |
CAE で endpoint 別 |
| OTA バージョン採用率 7 日 |
≥ 80% |
App Store / Play Store consoles |
Web Portal SLO (Phase 2)
| 指標 |
目標値 |
| LCP p75 |
< 2.5s (CrUX 月次) |
| CLS p75 |
< 0.1 |
| JS error rate |
< 1% of pageviews (Sentry browser SDK) |
Error Budget 運用ルール
状態判定
budget_remaining = budget_total - errors_consumed
burn_rate_1h = errors_last_1h / budget_total
burn_rate_6h = errors_last_6h / budget_total
| 状態 |
条件 |
アクション |
| 🟢 健康 |
budget_remaining > 50% |
通常開発 |
| 🟡 注意 |
budget_remaining 25-50% |
高リスク変更を要レビュー |
| 🟠 危険 |
budget_remaining 10-25% |
new feature freeze、信頼性改善のみ |
| 🔴 枯渇 |
budget_remaining < 10% |
deploy freeze、postmortem 必須 |
Burn rate アラート
| 条件 |
意味 |
通知先 |
| burn_rate_1h > 14.4 |
1 時間で 1 日分消費 |
Slack #parky-alerts (P1) |
| burn_rate_6h > 6 |
6 時間で 1 日分消費 |
Slack #parky-alerts (P2) |
| budget < 25% |
budget 危険 |
Slack #parky-ops (Daily summary) |
週次レビュー (毎週月曜)
- 28 日 budget 残量
- 当週の SEV1/2 件数 + RCA 進捗
- 翌週の planned change リスク評価
- 直近 4 週の SLO trend (改善 / 悪化)
実装 TODO
Phase 0 (即日)
Phase 1 (1 週間)
Phase 2 (2-4 週間)
参照
↗ Source markdown (slo-error-budget.md)