{"library":"mlflow-tracing","title":"MLflow Tracing SDK","description":"MLflow Tracing SDK (mlflow-tracing) is an open-source, lightweight Python package that provides a minimum set of dependencies and functionality to instrument your code, models, or agents with MLflow Tracing. It is designed for production environments to enable faster deployment, simplified dependency management, enhanced portability, and reduced security risks compared to the full MLflow package. It supports LLM and AI agent observability, capturing inputs, outputs, and metadata for each step of a request.","language":"python","status":"active","last_verified":"Wed May 13","install":{"commands":["pip install mlflow-tracing"],"cli":null},"imports":["import mlflow","from mlflow import tracing\ntracing.configure(...)","from mlflow import tracing\ntracing.disable()","from mlflow import tracing\ntracing.enable()","import mlflow\n\n@mlflow.trace\ndef my_traced_function():\n    pass","import mlflow\n\nwith mlflow.start_span('my_span_name'):\n    # ... code to trace ..."],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nimport mlflow\nfrom openai import OpenAI\n\n# Set your MLflow Tracking URI (replace with your server, e.g., 'http://localhost:5000')\n# For Databricks, use 'databricks' and ensure DATABRICKS_HOST/TOKEN are set.\nmlflow.set_tracking_uri(os.environ.get('MLFLOW_TRACKING_URI', 'http://127.0.0.1:5000'))\n\n# Set a new MLflow experiment to log traces to\nmlflow.set_experiment(\"my_genai_app_traces\")\n\n# Ensure OpenAI API key is set for the example\nif not os.environ.get(\"OPENAI_API_KEY\"): \n    # In a real app, use a secure way to load keys (e.g., environment variable, secret manager)\n    # For quick testing, you can set it directly here, but it's not recommended for production\n    print(\"WARNING: OPENAI_API_KEY environment variable not set. Skipping OpenAI example.\")\n    openai_client = None\nelse:\n    # Enable auto-tracing for OpenAI calls\n    mlflow.openai.autolog()\n    \n    # Initialize OpenAI client\n    openai_client = OpenAI(api_key=os.environ.get(\"OPENAI_API_KEY\"))\n\n    # Make an OpenAI call - this will be automatically traced\n    print(\"Invoking OpenAI completion...\")\n    response = openai_client.chat.completions.create(\n        model=\"gpt-3.5-turbo\",\n        messages=[\n            {\"role\": \"system\", \"content\": \"You are a helpful AI assistant.\"},\n            {\"role\": \"user\", \"content\": \"Tell me a fun fact about Python programming.\"}\n        ],\n        max_tokens=50\n    )\n    print(\"OpenAI Response:\", response.choices[0].message.content)\n    print(\"Trace should now be visible in MLflow UI under 'my_genai_app_traces' experiment.\")","lang":"python","description":"This quickstart demonstrates how to set up MLflow Tracing for an OpenAI call. It configures the MLflow tracking URI, sets an experiment, enables autologging for OpenAI, and then performs a simple API call. The trace for this call will be automatically logged and viewable in the MLflow UI. Make sure an MLflow server is running and `OPENAI_API_KEY` is set in your environment.","tag":null,"tag_description":null,"last_tested":"2026-04-24","results":[{"runtime":"python:3.10-alpine","exit_code":1},{"runtime":"python:3.10-slim","exit_code":1},{"runtime":"python:3.11-alpine","exit_code":1},{"runtime":"python:3.11-slim","exit_code":1},{"runtime":"python:3.12-alpine","exit_code":1},{"runtime":"python:3.12-slim","exit_code":1},{"runtime":"python:3.13-alpine","exit_code":1},{"runtime":"python:3.13-slim","exit_code":1},{"runtime":"python:3.9-alpine","exit_code":1},{"runtime":"python:3.9-slim","exit_code":1}]},"compatibility":{"tag":"verified","tag_description":"installs cleanly on critical runtimes, fast import, recently tested","last_tested":"2026-05-13","installed_version":"3.1.4","pypi_latest":"3.12.0","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":7.8,"avg_import_s":2.73,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"mlflow-tracing","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":3.43,"mem_mb":44.7,"disk_size":"84.6M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"mlflow-tracing","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":3.62,"mem_mb":44,"disk_size":"82.3M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"mlflow-tracing","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":8.3,"import_time_s":1.46,"mem_mb":30.6,"disk_size":"84M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"mlflow-tracing","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.45,"mem_mb":30.2,"disk_size":"82M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"mlflow-tracing","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":3.93,"mem_mb":47.5,"disk_size":"94.6M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"mlflow-tracing","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":4.39,"mem_mb":46.7,"disk_size":"92.0M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"mlflow-tracing","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":7.9,"import_time_s":2.07,"mem_mb":33.5,"disk_size":"94M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"mlflow-tracing","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":2.02,"mem_mb":33.2,"disk_size":"92M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"mlflow-tracing","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":3.74,"mem_mb":46.8,"disk_size":"84.9M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"mlflow-tracing","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":4.27,"mem_mb":46.1,"disk_size":"82.4M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"mlflow-tracing","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":6.6,"import_time_s":2.36,"mem_mb":33,"disk_size":"85M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"mlflow-tracing","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":2.69,"mem_mb":32.7,"disk_size":"82M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"mlflow-tracing","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":3.29,"mem_mb":46.1,"disk_size":"84.6M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"mlflow-tracing","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":3.63,"mem_mb":45.4,"disk_size":"82.0M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"mlflow-tracing","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":6.8,"import_time_s":1.94,"mem_mb":32,"disk_size":"85M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"mlflow-tracing","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":2.13,"mem_mb":31.7,"disk_size":"82M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"mlflow-tracing","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":2.61,"mem_mb":35.3,"disk_size":"78.6M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"mlflow-tracing","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":2.83,"mem_mb":35.3,"disk_size":"77.4M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"mlflow-tracing","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":9.4,"import_time_s":1.37,"mem_mb":26.6,"disk_size":"78M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"mlflow-tracing","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.34,"mem_mb":26.6,"disk_size":"77M"}]}}