The recommended method of measuring the throughput of an NServiceBus system is via ServicePulse. The endpoint throughput counter tool is offered as an alternate option for customers that aren't able to use ServicePulse.
The Particular endpoint throughput counter tool can typically be installed on a user's workstation and run against a production system to measure the throughput of each endpoint over a period of time.
Installation
The tool can be installed as a .NET tool for Windows/Linux or as a self-contained Windows executable.
.NET tool (recommended)
Install .NET 8.0.
From a terminal window, use the following command to install the throughput counter:
dotnet tool install -g Particular.EndpointThroughputCounter --add-source https://f.feedz.io/particular-software/packages/nuget/index.json
Run the tool by executing
throughput-counter
:throughput-counter [command] [options]
Self-contained executable
In this mode, the target system does not need any version of .NET preinstalled.
Download the self-contained Windows executable.
Unzip the downloaded file.
Open a terminal window and navigate to the folder to which it was downloaded.
Execute the tool from the terminal by using its full name:
Particular.EndpointThroughputCounter.exe [command] [options]
Running the tool
The tool can collect data using various methods depending on the system's configuration. To run the tool, select the relevant article based on the message transport used in the system to be measured:
- Azure Service Bus
- Amazon SQS
- RabbitMQ
- SQL Transport
- PostgreSQL Transport
- Microsoft Message Queueing (MSMQ) – Use ServiceControl data collection
- Azure Storage Queues – Use ServiceControl data collection
- Click here if unsure what message transport is used by the system
If the system uses MSMQ or Azure Storage Queues but does not use ServiceControl, this tool cannot be used to measure throughput. Email contact@particular.net for instructions on estimating system throughput.
Masking private data
The generated report will contain the names of endpoints/queues. Certain strings can be masked in the report file if the queue names contain confidential or proprietary information.
throughput-counter [command] [options] --queueNameMasks Samples
This will result in a report file with masked data, such as:
{
"QueueName": "***.RabbitMQ.SimpleReceiver",
"Throughput": 0
}
Updating
To update the tool to the latest version, execute the following command in a terminal window:
dotnet tool update -g Particular.EndpointThroughputCounter --add-source https://f.feedz.io/particular-software/packages/nuget/index.json
Uninstalling
To uninstall the tool, execute the following command in a terminal window:
dotnet tool uninstall -g Particular.EndpointThroughputCounter
Questions
Check out frequently asked questions (FAQ) about the endpoint throughput counter tool.