The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices.
ONNX Runtime collects trace events with the goal of improving product quality. On Windows, it uses the platform's built-in ETW telemetry system; on non-Windows platforms, it uses the cross-platform 1DS telemetry SDK that is built into ONNX Runtime. WebAssembly builds do not include telemetry. In all cases, collection is subject to user consent and handled following Microsoft's privacy practices.
Telemetry is turned ON by default in the official builds (see here). Both providers are accessed through ONNX Runtime's common telemetry interface (see telemetry.h).
On Windows, private builds compiled from source perform no data collection. On non-Windows platforms besides WebAssembly, the standard build.sh wrapper enables telemetry for native builds. For information on how to disable telemetry, see Disabling Telemetry below.
Windows. The Windows provider uses the TraceLogging API for its implementation. This enables ONNX Runtime trace events to be collected by the operating system, and based on user consent, this data may be periodically sent to Microsoft servers following GDPR and privacy regulations for anonymity and data access controls. Windows ML and ONNX Runtime C APIs allow Trace Logging to be turned on/off (see API pages for details); there are equivalent APIs in the C#, Python, and Java language bindings as well.
Non-Windows (Linux, macOS, Android, iOS). These platforms use the cross-platform 1DS SDK (cpp_client_telemetry) to send the same trace events to Microsoft's telemetry backend over HTTPS. Based on user consent, this data is handled following GDPR and privacy regulations for anonymity and data access controls. ONNX Runtime C APIs allow 1DS to be turned on/off (see API pages for details); there are equivalent APIs in the C#, Python, and Java language bindings as well.
For ways to disable telemetry, see the Disabling Telemetry section below.
Telemetry can be disabled in any of these ways:
- Don't build it in. The telemetry provider is only compiled when configuring with
--use_telemetry, so a build configured without it collects no data. - Disable all telemetry at runtime (non-Windows). Set
ORT_DISABLE_TELEMETRY=1before ONNX Runtime initializes. This prevents the uploader, events, and persistent device identifier from being created for the process lifetime. - Disable non-essential events via the API. The C API (and the C#, Python, and Java bindings) can suppress non-essential telemetry. ONNX Runtime may already have emitted a minimal initialization event before the API can be called. On Windows, ETW events are recorded only when an external trace session is collecting.