Agent Skills by ALSEL
Anthropic ClaudeDevOps・インフラ⭐ リポ 299品質スコア 89/100

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 の関連性
  • ターゲット調整
  • プロセス改善
  • ツール強化

ベストプラクティス

  1. ユーザー向けサービスから開始する
  2. 複数の SLI を使用する (可用性、レイテンシなど)
  3. 達成可能な SLO を設定する (100% を目指さない)
  4. マルチウィンドウアラートを実装する ノイズを削減するために
  5. エラーバジェットを継続的に追跡する
  6. SLO を定期的にレビューする
  7. SLO の決定を文書化する
  8. ビジネス目標と連携させる
  9. SLO レポートを自動化する
  10. 優先順位付けに SLO を使用する

参考ファイル

  • assets/slo-template.md - SLO 定義テンプレート
  • references/slo-definitions.md - SLO 定義パターン
  • references/error-budget.md - エラーバジェット計算

親ハブ

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
majiayu000
リポジトリ
majiayu000/claude-skill-registry
ライセンス
MIT
最終更新
2026/5/4

Source: https://github.com/majiayu000/claude-skill-registry / ライセンス: MIT

本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: majiayu000 · majiayu000/claude-skill-registry · ライセンス: MIT