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

OpenTelemetryのエクスポート

MLflow によって生成されたトレースは、 OpenTelemetry トレース仕様と互換性があります。そのため、MLflow トレースは、OpenTelemetry をサポートするさまざまな監視ソリューションにエクスポートできます。

デフォルトで、MLflow はトレースを MLflowトラッキングサーバーにエクスポートします。 OpenTelemetry Collector へのトレースのエクスポートを有効にするには、 トレースを開始する前にOTEL_EXPORTER_OTLP_ENDPOINT 環境変数 (または OTEL_EXPORTER_OTLP_TRACES_ENDPOINT) を OpenTelemetry Collector のターゲット URL に設定します。

Python
import mlflow
import os

# Set the endpoint of the OpenTelemetry Collector
os.environ["OTEL_EXPORTER_OTLP_TRACES_ENDPOINT"] = "http://localhost:4317/v1/traces"
# Optionally, set the service name to group traces
os.environ["OTEL_SERVICE_NAME"] = "<your-service-name>"

# Trace will be exported 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 は、トレースを 1 つの宛先にのみエクスポートします。OTEL_EXPORTER_OTLP_ENDPOINT 環境変数が構成されている場合、MLflow はトレースを Databricks MLflow Tracking にエクスポート せず 、MLflow UI にトレースは表示されません。

同様に、トレースを有効にしてモデルをDatabricksモデルサービングにデプロイする場合、OpenTelemetry Collector を使用すると、トレースは推論テーブルに記録されません。

次のアイコンをクリックして、特定のオブザーバビリティプラットフォーム用にOpenTelemetryCollectorを設定する方法の詳細を確認してください。

構成

MLflow は、標準の OTLP エクスポーターを使用して、トレースを OpenTelemetry Collector インスタンスにエクスポートします。これにより、OpenTelemetryでサポートされている すべての構成 を使用できます。次の例では、デフォルトの gRPC の代わりに HTTP プロトコルを使用するように OTLP エクスポーターを設定し、カスタム ヘッダーを設定します。

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"

次のステップ