メインコンテンツまでスキップ

MLflow トレースを OpenTelemetry にエクスポート

MLflow トレーシングは OpenTelemetry (OTel) に基づいて構築されています。MLflow がキャプチャするすべてのトレースは OTel スパンのセットであるため、標準の OTLP プロトコルを使用して、それらのスパンを Datadog、Grafana、Splunk などのOpenTelemetry 互換のオブザーバビリティプラットフォームにアウトバウンドでエクスポートできます。トレースを外部コレクターのみに送信することも、デュアルエクスポートを使用して Databricks MLflow と既存のオブザーバビリティスタックの両方に同時に送信することもできます。


外部 OTel コレクターへの MLflow トレースのエクスポート

MLflowは、OpenTelemetry互換の任意の可観測性プラットフォームにトレースを外部エクスポートできます。3つのモードがサポートされています。

OTel 専用エクスポート

トレースを外部の OTel コレクターに排他的に送信するには(Databricks MLflow ストレージをバイパスします)、トレースを開始する前に OTEL_EXPORTER_OTLP_TRACES_ENDPOINT を設定します。

Python
import os
import mlflow

os.environ["OTEL_EXPORTER_OTLP_TRACES_ENDPOINT"] = "http://localhost:4317/v1/traces"
os.environ["OTEL_SERVICE_NAME"] = "<your-service-name>"

# Trace is exported ONLY to the OTel collector at http://localhost:4317/v1/traces
with mlflow.start_span(name="foo") as span:
span.set_inputs({"a": 1})
span.set_outputs({"b": 2})

デュアルエクスポート(MLflow + OTel)

トレースを Databricks MLflow と外部 OTel コレクターの両方に同時にエクスポートするには、MLFLOW_ENABLE_DUAL_EXPORT を設定します。

Python
import os
import mlflow

os.environ["MLFLOW_ENABLE_DUAL_EXPORT"] = "true"
os.environ["OTEL_EXPORTER_OTLP_TRACES_ENDPOINT"] = "http://localhost:4317/v1/traces"
os.environ["OTEL_SERVICE_NAME"] = "my-ml-service"

mlflow.set_tracking_uri("databricks")

# Traces are exported to BOTH MLflow and the OTel collector
with mlflow.start_span(name="dual_export_example") as span:
span.set_inputs({"model": "gpt-4", "prompt": "Hello world"})
span.set_outputs({"response": "Generated response"})

メトリクスのエクスポート

MLflow は、メトリクス Endpoint が設定されている場合に OTel メトリクスをエクスポートします。エクスポートされたメトリクスの完全なリストについては、MLflow のドキュメントを参照してください。

Python
import os

os.environ["OTEL_METRICS_EXPORTER"] = "otlp"
os.environ["OTEL_EXPORTER_OTLP_METRICS_ENDPOINT"] = "http://localhost:4317"
# Optional: configure export interval in milliseconds
os.environ["OTEL_METRIC_EXPORT_INTERVAL"] = "60000"

サポートされているプラットフォーム

MLflow は標準の OTLP エクスポーターを使用し、すべての OTLP エクスポーター構成をサポートしています。次のプラットフォームで OTel セットアップガイドが公開されています:

defaultのgRPCの代わりにHTTPプロトコルを使用する場合、またはカスタムヘッダーを設定する場合:

Bash
export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT="http://localhost:4317/v1/traces"
export OTEL_EXPORTER_OTLP_TRACES_PROTOCOL="http/protobuf"
export OTEL_EXPORTER_OTLP_TRACES_HEADERS="api_key=12345"

その他のリソース

次のステップ: 問題の観察と検出