원클릭으로
slo-implementation
エラーバジェットとアラートを用いたサービスレベルインジケーター(SLI)とサービスレベル目標(SLO)を定義・実装します。信頼性ターゲットの確立、SREプラクティスの実装、サービスパフォーマンスの測定時に使用します。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
エラーバジェットとアラートを用いたサービスレベルインジケーター(SLI)とサービスレベル目標(SLO)を定義・実装します。信頼性ターゲットの確立、SREプラクティスの実装、サービスパフォーマンスの測定時に使用します。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
自動メトリクス、人間によるフィードバック、およびベンチマークを使用して、LLMアプリケーションの包括的な評価戦略を実装します。LLMのパフォーマンスをテストし、AIアプリケーションの品質を測定し、または評価フレームワークを確立する場合に使用します。
LLMのパフォーマンス、信頼性、制御性を本番環境で最大化するための高度なプロンプトエンジニアリング技術をマスターします。プロンプトの最適化、LLM出力の改善、または本番環境プロンプトテンプレートの設計時に使用します。
建設的なフィードバックを提供し、早期にバグを発見し、チームの士気を維持しながら知識共有を促進する効果的なコードレビュー実践をマスター。プルリクエストのレビュー、レビュー基準の確立、開発者のメンタリング時に使用。
体系的なデバッグ技術、プロファイリングツール、根本原因分析をマスターし、あらゆるコードベースや技術スタックでバグを効率的に追跡。バグ調査、パフォーマンス問題、予期しない動作の調査時に使用。
PlaywrightとCypressを使用したエンドツーエンドテストをマスターし、バグを捕捉し、信頼性を向上させ、高速デプロイメントを可能にする信頼性の高いテストスイートを構築。E2Eテストの実装、不安定なテストのデバッグ、テスト基準の確立時に使用。
rebase、cherry-pick、bisect、worktree、reflogを含む高度なGitワークフローをマスターし、クリーンな履歴を維持し、あらゆる状況から回復。複雑なGit履歴の管理、フィーチャーブランチでの協働、リポジトリ問題のトラブルシューティング時に使用。
| name | slo-implementation |
| description | エラーバジェットとアラートを用いたサービスレベルインジケーター(SLI)とサービスレベル目標(SLO)を定義・実装します。信頼性ターゲットの確立、SREプラクティスの実装、サービスパフォーマンスの測定時に使用します。 |
English | 日本語
サービスレベルインジケーター(SLI)、サービスレベル目標(SLO)、エラーバジェットを定義・実装するフレームワーク。
SLI、SLO、エラーバジェットを使用して測定可能な信頼性ターゲットを実装し、信頼性とイノベーション速度のバランスを取ります。
SLA(サービスレベル契約)
↓ 顧客との契約
SLO(サービスレベル目標)
↓ 内部信頼性ターゲット
SLI(サービスレベルインジケーター)
↓ 実際の測定
# 成功したリクエスト / 総リクエスト数
sum(rate(http_requests_total{status!~"5.."}[28d]))
/
sum(rate(http_requests_total[28d]))
# レイテンシ閾値以下のリクエスト / 総リクエスト数
sum(rate(http_request_duration_seconds_bucket{le="0.5"}[28d]))
/
sum(rate(http_request_duration_seconds_count[28d]))
# 成功した書き込み / 総書き込み数
sum(storage_writes_successful_total)
/
sum(storage_writes_total)
参照: references/slo-definitions.mdを参照
| 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の例:
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]))
エラーバジェット = 1 - SLOターゲット
例:
error_budget_policy:
- remaining_budget: 100%
action: 通常の開発速度
- remaining_budget: 50%
action: リスクの高い変更の延期を検討
- remaining_budget: 10%
action: 非クリティカルな変更を凍結
- remaining_budget: 0%
action: 機能凍結、信頼性に焦点
参照: references/error-budget.mdを参照
# 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 = SLO違反)
- 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)
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: "Fast error budget burn detected"
description: "Error budget burning at {{ $value }}x rate"
# 低速バーン: 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: "Slow error budget burn detected"
description: "Error budget burning at {{ $value }}x rate"
# エラーバジェット枯渇
- alert: SLOErrorBudgetExhausted
expr: slo:http_availability:error_budget_remaining < 0
for: 5m
labels:
severity: critical
annotations:
summary: "SLO error budget exhausted"
description: "Error budget remaining: {{ $value }}%"
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
assets/slo-template.md - SLO定義テンプレートreferences/slo-definitions.md - SLO定義パターンreferences/error-budget.md - エラーバジェット計算prometheus-configuration - メトリクス収集のためgrafana-dashboards - SLO可視化のため