Skip to main content

Telemetry

Starting with version 3.2.0, MLflow collects anonymized usage data by default. This data contains no sensitive or personally identifiable information.

important

MLflow does not collect any data that contains personal information, in accordance with GDPR and other privacy regulations. As a Linux Foundation project, MLflow adheres to the LF telemetry data collection and usage policy. This implementation has been reviewed and approved by the Linux Foundation, with the approved proposal documented at the Completed Reviews section in the official policy. See the Data Explanation section below for details on what is collected.

note

Telemetry is only enabled in Open Source MLflow. If you’re using MLflow through a managed service or distribution, please consult your vendor to determine whether telemetry is enabled in your environment. In all cases, you can choose to opt out by following the guidance provided in our documentation.

Why is data being collected?

MLflow uses anonymous telemetry to understand feature usage, which helps guide development priorities and improve the library. This data helps us identify which features are most valuable and where to focus on bug fixes or enhancements.

GDPR Compliance

Under the General Data Protection Regulation (GDPR), data controllers and processors are responsible for handling personal data with care, transparency, and accountability.

MLflow complies with GDPR in the following ways:

  • No Personal Data Collected: The telemetry data collected is fully anonymized and does not include any personal or sensitive information (e.g., usernames, IP addresses, file names, parameters, or model content). MLflow generates a random UUID for each session for aggregating usage events, which cannot be used to identify or track individual users.
  • Purpose Limitation: Data is only used to improve the MLflow project based on aggregate feature usage patterns.
  • Data Minimization: Only the minimum necessary metadata is collected to inform project priorities (e.g., feature toggle state, SDK/platform used, version info).
  • User Control: Users can opt out of telemetry at any time by setting the environment variable MLFLOW_DISABLE_TELEMETRY=true or DO_NOT_TRACK=true. MLflow respects these settings immediately without requiring a restart.
  • Transparency: Telemetry endpoints and behavior are documented publicly, and MLflow users can inspect or block the relevant network calls.

For further inquiries or data protection questions, users can file an issue on the MLflow GitHub repository.

What data is collected?

MLflow collects only non-sensitive, anonymized data to help us better understand usage patterns. The below section outlines the data currently collected in this version of MLflow. You can view the exact data collected in the source code.

Data Explanation

Data ElementExplanationExampleWhy we track this
Unique session IDA randomly generated, non-personally identifiable UUID is created for each session—defined as each time MLflow is imported45e2751243e84c7e87aca6ac25d75a0dAs an identifier for the data in current MLflow session
Source SDKThe current used SDK namemlflow | mlflow-skinny | mlflow-tracingTo understand adoption of different MLflow SDKs and identify enhancement areas
MLflow versionThe current SDK version3.2.0To identify version-specific usage patterns and support, bug fixes, or deprecation decisions
Python versionThe current python version3.10.16To ensure compatibility across Python versions and guide testing or upgrade recommendations
Operating SystemThe operating system on which MLflow is runningmacOS-15.4.1-arm64-arm-64bitTo understand platform-specific usage and detect platform-dependent issues
Tracking URI SchemeThe scheme of the current tracking URIfile | sqlite | mysql | postgresql | mssql | https | http | custom_scheme | NoneTo determine which tracking backends are most commonly used and optimize backend support
Event NameThe tracked event name (see below table for what events are tracked)create_experimentTo measure feature usage and improvements
Event StatusWhether the event succeeds or notsuccess | failure | unknownTo identify common failure points and improve reliability and error handling
Timestamp (nanoseconds)Time when the event occurred1753760188623715000As an identifier for the event
DurationThe time the event call takes, in milliseconds1000To monitor performance trends and detect regressions in response time
Parameters (boolean or enumerated values)See below table for collected parameters for each eventcreate_logged_model event: {"flavor": "langchain"}To better understand the usage pattern for each event

Tracked Events

No details about the specific model, code, or weights are collected. Only the parameters listed under the Tracked Parameters column are recorded alongside the event; For events with None in the Tracked Parameters column, only the event name is recorded.

Event NameTracked ParametersExample
import_mlflowNoneNone
create_experimentNoneNone
create_runWhether the packages in PACKAGES_TO_CHECK_IMPORT are imported or not{"imports": ["sklearn"]}
create_logged_modelFlavor of the model (e.g. langchain, sklearn){"flavor": "langchain"}
create_registered_modelNoneNone
create_model_versionNoneNone
create_promptNoneNone
start_traceNoneNone
log_assessmentNoneNone
evaluateNoneNone

Why is MLflow Telemetry Opt-Out?

MLflow uses an opt-out telemetry model to help improve the platform for all users based on real-world usage patterns. Collecting anonymous usage data by default allows us to:

  • Understand how MLflow is being used across a wide range of environments and workflows
  • Identify common pain points and identify feature improvements area more effectively
  • Measure the impact of changes and ensure they improve the experience for the broader community

If telemetry were opt-in, only a small, self-selected subset of users would be represented, leading to biased insights and potentially misaligned priorities. We are committed to transparency and user choice. Telemetry is clearly documented, anonymized, and can be easily disabled at any time through configuration. This approach helps us make MLflow better for everyone, while giving you full control. Check what we are doing with this data section for more information.

How to opt-out?

MLflow supports opt-out telemetry through either of the following environment variables:

  • MLFLOW_DISABLE_TELEMETRY=true
  • DO_NOT_TRACK=true

Setting either of these will immediately disable telemetry, no need to re-import MLflow or restart your session.

note

MLflow automatically disables telemetry in the following CI environments. If you’d like support for additional CI environments, please open an issue on our GitHub repository.

  • CI
  • Github Actions
  • CircleCI
  • GitLab CI/CD
  • Jenkins Pipeline
  • Travis CI
  • Azure Pipelines
  • BitBucket
  • AWS CodeBuild
  • BuildKite

Scope of the setting

  • The environment variable only takes effect in processes where it is explicitly set or inherited.
  • If you spawn subprocesses from a clean environment, those subprocesses may not inherit your shell’s environment, and telemetry could remain enabled. e.g. subprocess.run([...], env={})

Recommendations to ensure telemetry is consistently disabled across all environments:

  • Add the variable to your shell startup file (~/.bashrc, ~/.zshrc, etc.): export MLFLOW_DISABLE_TELEMETRY=true
  • If you’re using subprocesses or isolated environments, use a dotenv manager or explicitly pass the variable when launching.

How to validate telemetry is disabled?

Use the following code to validate telemetry is disabled.

from mlflow.telemetry import get_telemetry_client

assert get_telemetry_client() is None, "Telemetry is enabled"

How to opt-out for your organization?

Organizations can disable telemetry by blocking network access to https://config.mlflow-telemetry.io. When this endpoint is unreachable, MLflow automatically disables telemetry.

What are we doing with this data?

We aggregate anonymized usage data and plan to share insights with the community through public dashboards. You’ll be able to see how MLflow features are used and help improve them by contributing.