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

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を設定する方法の詳細を確認してください。

プラットフォーム

OpenTelemetry のドキュメント

Datadog

OpenTelemetryガイド

New Relic

OpenTelemetry APM モニタリング

SigNoz

OpenTelemetry Pythonインストゥルメンテーション

Splunk

データを取り込む

Grafana

OTLP経由でデータを送信する

ServiceNow(ライトステップ)

コレクターのドキュメント

構成

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"

次のステップ