⛳

Automated deployments of SLOs Using Sloth and Prometheusの意訳

に公開
2025/12/08

Qiita Advent Calendar 2025の海外SRE関連セッション意訳の7日目です。ひとりアドベントカレンダーですが、完走できるように頑張ります。

このアドベントカレンダーでは、海外のSRE関連のセッションを翻訳しながら、私の意見や疑問や補足を追加したものです。私の誤解から誤った説明になっている箇所は、コメントでご指摘お願いします。

前回は、SLO Basics - a conversation about reliabilityの意訳でした。SREを語る際によく話題になるSLOの基礎についてのセッションでした。特にSLOはSLAなどと違い、内部指標なので柔軟に変更していくものである、ということが強調されていました。

このアドベントカレンダーでは、私の意見やコメントは可能な限り、下記の記法で要約と区別します。ただ、そこまで厳密にできないため、要約文中に私の思想が混じってしまうことはご容赦ください。(気がついたらご指摘ください)

紹介するセッションについて

https://www.youtube.com/watch?v=sH21GYG57iM

セッション詳細: Automated deployments of SLOs Using Sloth and Prometheus | SLOconf 2022

今回のセッションは、前回の記事で説明されていた柔軟なSLOを達成するための変更容易なツールチェーンの紹介です。具体的なツールや例が数多く出てきます。

要約

このセッションの前提

このセッションでは、SLIとSLOの概念についての説明は省略する。これらをまだ聞いたことがない人は、他の素晴らしいセッションがたくさんあるので、そちらをご覧いただきたい。

ゴール

このセッションでは、以下の4点を柔軟なSLOのゴールに設定する。

  • SLIとSLOをなるべく簡単な方法で定義し、プロダクト開発者が自分たちで管理できるようにすること
  • 設定には、開発者が普段から使い慣れているフォーマットとシンタックスを使うこと
  • 自動化が重要
  • デプロイがシンプルで、既存のCI/CDパターンにフィットすること

ツール

先ほどのゴールを達成するために3つのツールが登場する。

  1. Sloth
    Slothは、様々なフォーマットからPrometheusのAlert rule形式のYAMLを生成するツール。
    ここではOpenSLOというベンダーニュートラルなSLO定義フォーマットを前提にする。
  1. Cortex tool
    Cortex toolは、Prometheus/Cortex/MimirなどのAPIと対話するためのCLIツール。
    RecordingRuleやAlertingRuleをAPI経由でPrometheus互換ソフトウェアにアップロードできる。
  2. Prometheus(または互換バックエンド)
    メトリクス収集とルールの評価などを行う時系列DB。

プロセス

この仕組みでは、すべてのSLIとSLOをコードとして管理する。

  • OpenSLO定義のYAMLファイルにSLOを定義
  • それをアプリケーションリポジトリなど、開発者が認知しやすい場所に置く

CI/CDパイプラインの流れは下記のようになる。

  1. 開発者がOpenSLO形式のYAMLでSLOを定義し、配置する
  2. プルリクエストレビューを経てマージされる
  3. CI/CDパイプライン内のSlothの generate により、PrometheusのAlertRule/RecodingRule形式のYAMLを生成
  4. Cortex toolが生成されたYAMLを検証
  5. 検証が通ったら、Cortex toolを使ってPrometheusにアップロード
  6. AlertManagerでアラートが有効化される
  7. Grafanaでは、SLOダッシュボードが自動的に更新され、エラーバジェットやバーンレートを可視化できる

結果

OpenSLO形式のYAML:

Slothが生成したAlertRule/RecodingRule形式のYAML:

Grafanaの概要ダッシュボード:

Grafanaの詳細ダッシュボード:

生成されたPrometheusのクエリ:
このクエリを手動で管理するのは大変だから、OpenSLOフォーマットで記載して変換させるのが良い。

全体を通してコメント

今回は、プラクティスや理由などではなく、純粋にSLOツールチェーンのモデルケースの1つを紹介するセッションを選んでみました。SLOは柔軟に変えやすいものである必要があり、かつ変更した時の議論が重要なものですので、いわゆるas Codeというものと非常に相性が良いプラクティスですね。

次回は、Corporate Open Source Anti-Patterns: A Decade Laterの意訳です。OSSを持つ企業が陥りがちなアンチパターンを社会契約という側面で整理したお話です。

Discussion