Usage Telemetry
As part of our ongoing commitment to improving MassTransit, in v8.40 we are introducing anonymous usage telemetry to better understand how the community utilizes the framework. This feature will provide valuable insights into bus configurations, transport usage, and endpoint patterns, helping us identify trends, optimize performance, and prioritize future enhancements. By collecting only non-identifiable data, we ensure user privacy while enabling more informed development decisions that benefit the entire MassTransit ecosystem.
We understand that not everyone may want to participate in usage telemetry, which is why we have made it easy to opt out. If you prefer not to send anonymous usage data, you can disable telemetry through a simple configuration setting. This ensures that no information is transmitted while still allowing you to use MassTransit without any impact on functionality. Our goal is to provide transparency and choice, so you can decide what works best for your environment.
Content
The example report below demonstrates the collected data. By default, only minimal details about the host, bus, and endpoints are included, along with basic configuration and counts for each consumer or message type.
{
"id": "bd740008-ebb8-e450-a00a-08dd60e7bc9c",
"bus": [
{
"name": "IBus",
"created": "2025-03-11T16:57:37.4587070-05:00",
"started": "2025-03-11T16:57:37.9216500-05:00",
"endpoints": [
{
"name": "odd-job",
"type": "RabbitMQ",
"consumer_count": 5,
"prefetch_count": 64,
"job_consumer_count": 1
},
{
"name": "odd-job-completed",
"type": "RabbitMQ",
"consumer_count": 1,
"prefetch_count": 1,
"concurrent_message_limit": 1
},
{
"name": "job-type",
"type": "RabbitMQ",
"prefetch_count": 64,
"concurrent_message_limit": 16,
"saga_state_machine_count": 1
},
{
"name": "job",
"type": "RabbitMQ",
"prefetch_count": 64,
"concurrent_message_limit": 16,
"saga_state_machine_count": 1
},
{
"name": "job-attempt",
"type": "RabbitMQ",
"prefetch_count": 64,
"concurrent_message_limit": 16,
"saga_state_machine_count": 1
}
],
"configured": "2025-03-11T16:57:37.8701060-05:00"
}
],
"host": {
"commit_hash": "c0977e09482f7f5e3585c9a59e67941a89fd2963",
"time_zone_info": "(UTC-06:00) Central Time (Chicago)",
"framework_version": "9.0.0",
"mass_transit_version": "1.0.0.0",
"operating_system_version": "Unix 14.7.2"
},
"created": "2025-03-12T16:57:37.4572470-05:00"
}
Reporting
Usage telemetry is sent once, five minutes after the bus starts (or after all buses have started if you're using MultiBus). If the bus runs for less than five minutes, no data is reported. Telemetry is not captured or sent when using the test harness or when debugging the application. Reporting is non-blocking and does not impact the startup or shutdown of MassTransit or your application. All reports are securely transmitted to an endpoint within the masstransit.io
domain.
Opt-Out
If you prefer not to send anonymous usage data, you can disable telemetry through a simple configuration setting. This ensures that no information is transmitted while still allowing you to use MassTransit without any impact on functionality.
Configuration
To disable usage telemetry, specify DisableUsageTelemetry
on the MassTransit configuration. When disabled, no usage telemetry is captured or reported.
services.AddMassTransit(x =>
{
x.DisableUsageTelemetry();
});
Environment Variable
You can also disable usage telemetry using an environment variable. Set:
MASSTRANSIT_USAGE_TELEMETRY=false
To disable usage telemetry.
Configuration
To provide additional information, such as your CustomerId, usage telemetry can be configured as shown.
services.AddMassTransit(x =>
{
x.ConfigureUsageTelemetryOptions(options =>
{
options.CustomerId = "8675309";
});
});