MLOps Academy · レッスン

Prometheusでメトリクスを公開する

リクエスト数、エラー、処理時間を追跡します。

レッスン 2/413 ステップ

「Prometheusでメトリクスを公開する」はCoddyKit上の無料MLOps Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはMLOps Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 MLOps Academyコースには全4レッスンが含まれています。

ログとメトリクス

ログは1つのリクエストの経緯を伝えます。Metricsは多くのリクエストを集計した数値なので、レートやエラー数などの傾向をひと目で確認できます。📈

Prometheusの紹介

Prometheusは、これらの数値を収集する標準的なツールです。サービスがメトリクスを公開し、Prometheusが定期的に読み取ります。

PushではなくPull

Prometheusはpullモデルを使用し、数秒ごとにサービスのメトリクスURLをスクレイピングします。必要なのは、そのエンドポイントを公開することだけです。

Pythonクライアント

prometheus_clientライブラリを使うと、Pythonサービスでほとんど定型コードを書くことなくメトリクスを定義して提供できます。

from prometheus_client import Counter, Histogram, start_http_server

Counterは増加を数える

Counterは常に増加します。起動してからモデルが提供した予測数など、累計値に最適です。

predictions = Counter("predictions_total", "Total predictions served")
predictions.inc()

Histogramは時間を計測する

Histogramは分布を記録するため、リクエスト時間の計測に適しています。値をバケットに分けることで、後からp50やp99のレイテンシーを確認できます。

latency = Histogram("predict_seconds", "Prediction latency in seconds")
with latency.time():
    model.predict(x)

Labelsで次元を追加する

Labelsを使うと、モデルのバージョンやステータスなどのカテゴリごとに1つのメトリクスを分割できます。バージョンごとのエラー率を並べて比較できます。

errors = Counter("errors_total", "Errors", ["model"])
errors.labels(model="churn-v3").inc()

/metricsエンドポイントを公開する

Prometheusは、慣例的に/metricsという名前のパスをスクレイピングします。クライアントが専用ポートで自動的に提供できます。

start_http_server(8000)
# metrics now live at http://localhost:8000/metrics

メトリクスの形式

そのエンドポイントでは、各メトリクスがプレーンテキストで、名前、任意のラベル、値として表されます。Prometheusはscrapeのたびにこの形式を読み取ります。

predictions_total 1423.0
predict_seconds_bucket{le="0.1"} 1390.0

スクレイピングを設定する

設定でサービスをtargetとして追加し、Prometheusがどこを参照するかを指定します。すると一定の間隔でメトリクスを取得します。

scrape_configs:
  - job_name: model-api
    static_configs:
      - targets: ["model-api:8000"]

適切な種類を選ぶ

基本的なルールは、増加し続ける値にはCounter、処理時間にはHistogram、増減する値にはGaugeを使うことです。

確認問題

後からp99を確認できるように、リクエストのレイテンシーを追跡したいとします。適したPrometheusのメトリクス型はどれでしょうか?

まとめ

prometheus_clientを使って/metricsエンドポイントを公開し、CounterとHistogramに加えてラベルを使用しました。これでPrometheusがモデルサービスからリアルタイムの数値を取得できます。✅

無料で開始

AI チューターと学ぶ Python — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「Prometheusでメトリクスを公開する」レッスンは無料ですか?

はい。「Prometheusでメトリクスを公開する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、MLOps Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 MLOps Academyコースには全4レッスンが含まれています。

「Prometheusでメトリクスを公開する」で何を学びますか?

リクエスト数、エラー、処理時間を追跡します。 ブラウザで直接実行するハンズオンコードでMLOps Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

MLOps Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのMLOps Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「Prometheusでメトリクスを公開する」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このMLOps Academyレッスンでコードを書いて実行できますか?

はい。すべてのMLOps Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 予測用の構造化ログ
  2. Prometheusでメトリクスを公開する
  3. Grafanaダッシュボードを構築する
  4. レイテンシーとエラーの急増を検知する
← MLOps Academyに戻る