OpenTelemetryのエクスポート
MLflow によって生成されたトレースは、 OpenTelemetry トレース仕様と互換性があります。そのため、MLflow トレースは、OpenTelemetry をサポートするさまざまな監視ソリューションにエクスポートできます。
デフォルトで、MLflow はトレースを MLflowトラッキングサーバーにエクスポートします。 OpenTelemetry Collector へのトレースのエクスポートを有効にするには、 トレースを開始する前に 、OTEL_EXPORTER_OTLP_ENDPOINT
環境変数 (または OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
) を OpenTelemetry Collector のターゲット URL に設定します。
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 | |
New Relic | |
SigNoz | |
Splunk | |
Grafana | |
ServiceNow(ライトステップ) |
構成
MLflow は、標準の OTLP エクスポーターを使用して、トレースを OpenTelemetry Collector インスタンスにエクスポートします。これにより、OpenTelemetryでサポートされている すべての構成 を使用できます。次の例では、デフォルトの gRPC の代わりに HTTP プロトコルを使用するように OTLP エクスポーターを設定し、カスタム ヘッダーを設定します。
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"
次のステップ
- トレースの概念を理解する - MLflow の OpenTelemetry 互換トレースの構造について説明します
- トレースを使用してアプリをインストルメント 化する - カスタムスパンを追加して、OpenTelemetry のエクスポートを充実させます
- 本番運用の問題のデバッグ - エクスポートされたトレースを使用して、本番運用アプリケーションを監視します