slo-implementation
Service Level Indicators(SLI)とService Level Objectives(SLO)をエラーバジェットとアラート機能付きで定義・実装できます。信頼性目標の設定、SRE(Site Reliability Engineering)プラクティスの導入、またはサービスパフォーマンスの測定に活用してください。
description の原文を見る
Define and implement Service Level Indicators (SLIs) and Service Level Objectives (SLOs) with error budgets and alerting. Use when establishing reliability targets, implementing SRE practices, or measuring service performance.
SKILL.md 本文
SLO 実装
Service Level Indicators (SLI)、Service Level Objectives (SLO)、およびエラーバジェットを定義・実装するためのフレームワークです。
目的
SLI、SLO、およびエラーバジェットを使用して、信頼性と開発速度のバランスを取りながら、測定可能な信頼性目標を実装します。
使用場面
- サービスの信頼性目標を定義する
- ユーザー認識の信頼性を測定する
- エラーバジェットを実装する
- SLO ベースのアラートを作成する
- 信頼性の目標を追跡する
SLI/SLO/SLA の階層
SLA (Service Level Agreement)
↓ 顧客との契約
SLO (Service Level Objective)
↓ 内部の信頼性目標
SLI (Service Level Indicator)
↓ 実測定
SLI の定義
一般的な SLI タイプ
1. 可用性 SLI
# 成功したリクエスト / 総リクエスト数
sum(rate(http_requests_total{status!~"5.."}[28d]))
/
sum(rate(http_requests_total[28d]))
2. レイテンシ SLI
# レイテンシ閾値以下のリクエスト / 総リクエスト数
sum(rate(http_request_duration_seconds_bucket{le="0.5"}[28d]))
/
sum(rate(http_request_duration_seconds_count[28d]))
3. 耐久性 SLI
# 成功した書き込み / 総書き込み数
sum(storage_writes_successful_total)
/
sum(storage_writes_total)
参考: references/slo-definitions.md を参照してください
SLO ターゲットの設定
可用性 SLO の例
| SLO % | 月間ダウンタイム | 年間ダウンタイム |
|---|---|---|
| 99% | 7.2 時間 | 3.65 日 |
| 99.9% | 43.2 分 | 8.76 時間 |
| 99.95% | 21.6 分 | 4.38 時間 |
| 99.99% | 4.32 分 | 52.56 分 |
適切な SLO を選択する
考慮すべき事項:
- ユーザー期待値
- ビジネス要件
- 現在のパフォーマンス
- 信頼性のコスト
- 競合他社のベンチマーク
SLO の例:
slos:
- name: api_availability
target: 99.9
window: 28d
sli: |
sum(rate(http_requests_total{status!~"5.."}[28d]))
/
sum(rate(http_requests_total[28d]))
- name: api_latency_p95
target: 99
window: 28d
sli: |
sum(rate(http_request_duration_seconds_bucket{le="0.5"}[28d]))
/
sum(rate(http_request_duration_seconds_count[28d]))
エラーバジェットの計算
エラーバジェット計算式
Error Budget = 1 - SLO Target
例:
- SLO: 99.9% 可用性
- エラーバジェット: 0.1% = 月間 43.2 分
- 現在のエラー: 0.05% = 月間 21.6 分
- 残りバジェット: 50%
エラーバジェットポリシー
error_budget_policy:
- remaining_budget: 100%
action: 通常の開発速度
- remaining_budget: 50%
action: リスクのある変更を延期することを検討
- remaining_budget: 10%
action: 重大でない変更を凍結
- remaining_budget: 0%
action: 機能凍結、信頼性向上に注力
参考: references/error-budget.md を参照してください
SLO 実装
Prometheus 記録ルール
# SLI 記録ルール
groups:
- name: sli_rules
interval: 30s
rules:
# 可用性 SLI
- record: sli:http_availability:ratio
expr: |
sum(rate(http_requests_total{status!~"5.."}[28d]))
/
sum(rate(http_requests_total[28d]))
# レイテンシ SLI (リクエスト < 500ms)
- record: sli:http_latency:ratio
expr: |
sum(rate(http_request_duration_seconds_bucket{le="0.5"}[28d]))
/
sum(rate(http_request_duration_seconds_count[28d]))
- name: slo_rules
interval: 5m
rules:
# SLO コンプライアンス (1 = SLO を満たしている、0 = 違反)
- record: slo:http_availability:compliance
expr: sli:http_availability:ratio >= bool 0.999
- record: slo:http_latency:compliance
expr: sli:http_latency:ratio >= bool 0.99
# 残りエラーバジェット (パーセンテージ)
- record: slo:http_availability:error_budget_remaining
expr: |
(sli:http_availability:ratio - 0.999) / (1 - 0.999) * 100
# エラーバジェット消費率
- record: slo:http_availability:burn_rate_5m
expr: |
(1 - (
sum(rate(http_requests_total{status!~"5.."}[5m]))
/
sum(rate(http_requests_total[5m]))
)) / (1 - 0.999)
SLO アラートルール
groups:
- name: slo_alerts
interval: 1m
rules:
# 高速消費: 14.4 倍速、1 時間ウィンドウ
# 1 時間でエラーバジェットの 2% を消費
- alert: SLOErrorBudgetBurnFast
expr: |
slo:http_availability:burn_rate_1h > 14.4
and
slo:http_availability:burn_rate_5m > 14.4
for: 2m
labels:
severity: critical
annotations:
summary: "エラーバジェットの高速消費を検出"
description: "エラーバジェットが {{ $value }}x の速度で消費中"
# 低速消費: 6 倍速、6 時間ウィンドウ
# 6 時間でエラーバジェットの 5% を消費
- alert: SLOErrorBudgetBurnSlow
expr: |
slo:http_availability:burn_rate_6h > 6
and
slo:http_availability:burn_rate_30m > 6
for: 15m
labels:
severity: warning
annotations:
summary: "エラーバジェットの低速消費を検出"
description: "エラーバジェットが {{ $value }}x の速度で消費中"
# エラーバジェット枯渇
- alert: SLOErrorBudgetExhausted
expr: slo:http_availability:error_budget_remaining < 0
for: 5m
labels:
severity: critical
annotations:
summary: "SLO エラーバジェットが枯渇しました"
description: "残りエラーバジェット: {{ $value }}%"
SLO ダッシュボード
Grafana ダッシュボード構成:
┌────────────────────────────────────┐
│ SLO コンプライアンス (現在) │
│ ✓ 99.95% (ターゲット: 99.9%) │
├────────────────────────────────────┤
│ 残りエラーバジェット: 65% │
│ ████████░░ 65% │
├────────────────────────────────────┤
│ SLI トレンド (28 日間) │
│ [時系列グラフ] │
├────────────────────────────────────┤
│ 消費率分析 │
│ [時間ウィンドウごとの消費率] │
└────────────────────────────────────┘
クエリの例:
# 現在の SLO コンプライアンス
sli:http_availability:ratio * 100
# 残りエラーバジェット
slo:http_availability:error_budget_remaining
# 現在の消費率でエラーバジェットが枯渇するまでの日数
(slo:http_availability:error_budget_remaining / 100)
*
28
/
(1 - sli:http_availability:ratio) * (1 - 0.999)
マルチウィンドウ消費率アラート
# 短期と長期ウィンドウの組み合わせで誤検知を削減
rules:
- alert: SLOBurnRateHigh
expr: |
(
slo:http_availability:burn_rate_1h > 14.4
and
slo:http_availability:burn_rate_5m > 14.4
)
or
(
slo:http_availability:burn_rate_6h > 6
and
slo:http_availability:burn_rate_30m > 6
)
labels:
severity: critical
SLO レビュープロセス
週間レビュー
- 現在の SLO コンプライアンス
- エラーバジェットステータス
- トレンド分析
- インシデントの影響
月間レビュー
- SLO 達成度
- エラーバジェット使用状況
- インシデント事後分析
- SLO 調整
四半期レビュー
- SLO の関連性
- ターゲット調整
- プロセス改善
- ツール強化
ベストプラクティス
- ユーザー向けサービスから開始する
- 複数の SLI を使用する (可用性、レイテンシなど)
- 達成可能な SLO を設定する (100% を目指さない)
- マルチウィンドウアラートを実装する ノイズを削減するために
- エラーバジェットを継続的に追跡する
- SLO を定期的にレビューする
- SLO の決定を文書化する
- ビジネス目標と連携させる
- SLO レポートを自動化する
- 優先順位付けに SLO を使用する
参考ファイル
assets/slo-template.md- SLO 定義テンプレートreferences/slo-definitions.md- SLO 定義パターンreferences/error-budget.md- エラーバジェット計算
親ハブ
_devops-cloud-mastery
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- majiayu000
- ライセンス
- MIT
- 最終更新
- 2026/5/4
Source: https://github.com/majiayu000/claude-skill-registry / ライセンス: MIT
関連スキル
superpowers-streamer-cli
SuperPowers デスクトップストリーマーの npm パッケージをインストール、ログイン、実行、トラブルシューティングできます。ユーザーが npm から `superpowers-ai` をセットアップしたい場合、メールまたは電話でサインインもしくはアカウント作成を行いたい場合、ストリーマーを起動したい場合、表示されたコントロールリンクを開きたい場合、後で停止したい場合、またはソースコードへのアクセスなしに npm やランタイムの一般的な問題から復旧したい場合に使用します。
catc-client-ops
Catalyst Centerのクライアント操作・監視機能 - 有線・無線クライアントのリスト表示・フィルタリング、MACアドレスによる詳細なクライアント検索、クライアント数分析、時間軸での分析、SSIDおよび周波数帯によるフィルタリング、無線トラブルシューティング機能を提供します。MACアドレスやIPアドレスでのクライアント検索、サイト別やSSID別のクライアント数集計、無線周波数帯の分布分析、Wi-Fi信号の問題調査が必要な場合に活用できます。
ci-cd-and-automation
CI/CDパイプラインの設定を自動化します。ビルドおよびデプロイメントパイプラインの構築または変更時に使用できます。品質ゲートの自動化、CI内のテストランナー設定、またはデプロイメント戦略の確立が必要な場合に活用します。
shipping-and-launch
本番環境へのリリース準備を行います。本番環境へのデプロイ準備が必要な場合、リリース前チェックリストが必要な場合、監視機能の設定を行う場合、段階的なロールアウトを計画する場合、またはロールバック戦略が必要な場合に使用します。
linear-release-setup
Linear Releaseに向けたCI/CD設定を生成します。リリース追跡の設定、LinearのCIパイプライン構築、またはLinearリリースとのデプロイメント連携を実施する際に利用できます。GitHub Actions、GitLab CI、CircleCIなど複数のプラットフォームに対応しています。
tracking-application-response-times
API エンドポイント、データベースクエリ、サービスコール全体にわたるアプリケーションのレスポンスタイムを追跡・最適化できます。パフォーマンス監視やボトルネック特定の際に活用してください。「レスポンスタイムを追跡する」「API パフォーマンスを監視する」「遅延を分析する」といった表現で呼び出せます。