SLOとSLI

🔥 Vibe プロンプト

「APIサービス用のSLIとSLOを定義:可用性99.9%、レイテンシp99 <500ms。エラーバジェットを設定。」

SLI(サービスレベル指標)

可用性SLI = 成功リクエスト / 総リクエスト × 100
レイテンシSLI (p99) = histogram_quantile(0.99, rate(http_request_duration_seconds_bucket[5m]))

SLO(サービスレベル目標)

objectives:
  - name: 可用性
    target: 99.9%
    measurement_window: 30d
  - name: レイテンシp99
    target: 500ms
    measurement_window: 30d

エラーバジェット

エラーバジェット = 1 - SLO
例: SLO = 99.9% → エラーバジェット = 0.1% = 月43.2分

目的: どれだけのダウンタイムが「許容」されるか?
エラーバジェット消費 → デプロイ停止(信頼性優先)

バーンレートアラート

alert: HighErrorBudgetBurn
expr: (1 - (sum(rate(http_requests_total{status!~"5.."}[1h])) / sum(rate(http_requests_total[1h])))) > 0.001
labels: { severity: critical }

ベストプラクティス

  • サービスごとに2-3の主要SLIから開始
  • SLOは達成可能値より若干低く設定
  • エラーバジェット = デプロイ速度の調整弁
  • SLO違反ではなくバーンレートでアラート

章のまとめ

  • コアコンセプトと原理を理解
  • 実装方法とテクニックを習得
  • 一般的な問題と解決策に精通
  • 実際のプロジェクトに適用可能

さらに読む

  • 公式ドキュメントとAPIリファレンス
  • GitHubのオープンソース例
  • 技術書とオンラインコース
  • コミュニティディスカッションと技術ブログ

実装例

基本例

# 完全な実装例を提供します

手順

  1. セットアップ: 開発環境の設定
  2. データ: 必要なデータの準備
  3. 実装: コア機能の構築
  4. テスト: 動作確認
  5. 最適化: パフォーマンスの向上

よくあるエラー

| エラー種別 | 原因 | 解決方法 | |-----------|------|---------| | コンパイル | 構文 | コードの構文を確認 | | 実行時 | 環境 | 依存パッケージの確認 | | 論理 | アルゴリズム | ステップごとのデバッグ | | パフォーマンス | 効率 | プロファイラーの使用 |

コード例

import sys

def main():
    print("Hello, World!")

if __name__ == "__main__":
    main()

参考資料

  • 公式ドキュメント
  • APIリファレンス
  • オープンソース例
  • コミュニティディスカッション

会員限定無料チュートリアル

このチャプターは登録会員限定の無料コンテンツです!ログインまたは登録してすぐにロックを解除してください。

今すぐログイン / 登録