Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les traces générées par MLflow sont compatibles avec les spécifications de trace OpenTelemetry. Par conséquent, les traces MLflow peuvent être exportées vers différentes solutions d’observabilité qui prennent en charge OpenTelemetry.
Modes d’exportation
MLflow prend en charge trois modes d’exportation pour les traces :
- Suivi MLflow uniquement (valeur par défaut) : les traces sont envoyées uniquement au serveur de suivi MLflow.
- OpenTelemetry uniquement : les traces sont envoyées uniquement à un collecteur OpenTelemetry.
- Double exportation : les traces sont envoyées à MLflow Tracking et à un collecteur OpenTelemetry.
Export OpenTelemetry
Par défaut, MLflow exporte des traces vers le serveur de suivi MLflow. Pour exporter des traces uniquement vers un collecteur OpenTelemetry à la place, définissez la OTEL_EXPORTER_OTLP_ENDPOINT variable d’environnement (ou OTEL_EXPORTER_OTLP_TRACES_ENDPOINT) sur l’URL cible du collecteur OpenTelemetry avant de démarrer une trace.
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 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})
Double export (MLflow + OpenTelemetry)
Pour exporter des traces vers Databricks MLflow et un autre service OpenTelemetry simultanément, utilisez la configuration d’exportation double de MLflow. Cela permet d’envoyer les mêmes données de trace à plusieurs destinations sans avoir à choisir entre les fonctionnalités de suivi de MLflow et votre infrastructure d’observabilité existante.
Activer l’exportation en mode double
Définissez la variable d’environnement MLFLOW_ENABLE_DUAL_EXPORT avec votre configuration OpenTelemetry :
import mlflow
import os
# Enable dual export mode
os.environ["MLFLOW_ENABLE_DUAL_EXPORT"] = "true"
# Configure OpenTelemetry Collector endpoint
os.environ["OTEL_EXPORTER_OTLP_TRACES_ENDPOINT"] = "http://localhost:4317/v1/traces"
os.environ["OTEL_SERVICE_NAME"] = "my-ml-service"
# Configure MLflow tracking URI to Databricks
mlflow.set_tracking_uri("databricks")
# Traces will be 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"})
# Your ML workflow here
result = "Generated response"
span.set_outputs({"response": result})
span.set_attributes({"token_count": 15})
Exportation de mesures
MLflow peut exporter des métriques OpenTelemetry lorsqu’un point de terminaison de métriques est configuré. Cela vous permet de surveiller les durées de span et d’autres métriques de trace dans les systèmes de surveillance compatibles.
Pour obtenir la liste complète des métriques exportées par MLflow, consultez la documentation sur les métriques exportées de MLflow.
Activer l’exportation des métriques
Pour exporter des métriques vers OpenTelemetry Collector, définissez les variables d’environnement suivantes :
import os
# Enable metrics export
os.environ["OTEL_METRICS_EXPORTER"] = "otlp"
os.environ["OTEL_EXPORTER_OTLP_METRICS_ENDPOINT"] = "http://localhost:4317"
# Optional: Configure metric export interval (in milliseconds)
os.environ["OTEL_METRIC_EXPORT_INTERVAL"] = "60000" # Export every 60 seconds
Collecteurs OpenTelemetry
Cliquez sur les liens suivants pour en savoir plus sur la configuration d’un collecteur OpenTelemetry pour votre plateforme d’observabilité spécifique :
| Plate-forme | Documentation d'OpenTelemetry |
|---|---|
| Datadog | OpenTelemetry Guide |
| New Relic | Analyse APM OpenTelemetry |
| SigNoz | OpenTelemetry Python Instrumentation |
| Splunk | Importer des données |
| Grafana | Envoyer des données via OTLP |
| ServiceNow (Lightstep) | Documentation du collecteur |
Paramètres
MLflow utilise l’exportateur OTLP standard pour exporter des traces vers des instances du collecteur OpenTelemetry. Ainsi, vous pouvez utiliser toutes les configurations prises en charge par OpenTelemetry. L’exemple suivant configure l’exportateur OTLP pour utiliser le protocole HTTP au lieu du gRPC par défaut et définit des en-têtes personnalisés :
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"
Étapes suivantes
- Comprendre les concepts de suivi - Découvrez comment les traces openTelemetry compatibles avec MLflow sont structurées
- Instrumenter votre application avec du traçage - Ajouter des spans personnalisés pour enrichir vos exportations OpenTelemetry
- Déboguer les problèmes de production - Utiliser des traces exportées pour surveiller les applications de production