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 を設定します。
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 を設定します。
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 のドキュメントを参照してください。
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プロトコルを使用する場合、またはカスタムヘッダーを設定する場合:
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"
その他のリソース
- Langfuse のトレースを Databricks にエクスポート — OTLP Endpoint を介して Langfuse のトレースを Databricks にルーティングします。
- カスタムOpenTelemetry計測 — カスタム計測されたエージェントにOTelスパン属性を設定し、取り込まれたトレースを検索します。
- OpenTelemetry トレースを Unity Catalog に保存する — トレースを Unity Catalog テーブルに保存して管理します。
- 「Databricks MLflow UI でトレースを表示する」 — MLflow UIでトレースを検索およびフィルター処理します。
- 問題の観察と検出 — Databricks SQL を使用して、大規模なトレースデータをクエリーします。
- トレースへのプログラムによるアクセス — MLflow SDKを使用してプログラムでトレースを検索・フィルタリングします。
- トレースを強化:タグ、コンテキスト、フィードバック — 検索可能なタグをトレースに添付します。
次のステップ: 問題の観察と検出