Getting Started
Architecture
NServiceBus
Transports
Persistence
ServiceInsight
ServicePulse
ServiceControl
Monitoring
Samples

Measuring system throughput with ServiceControl data

The Particular throughput tool can be installed locally and run against a production system to discover the throughput of each endpoint in a system over a period of time.

This article details how to collect endpoint and throughput data using data from ServiceControl. Refer to the throughput counter main page for information how to install/uninstall the tool or for other data collection options.

The tool should be used with a supported version of ServiceControl.

Running the tool

Once installed, execute the tool with the URLs for the ServiceControl and monitoring APIs.

If the tool was installed as a .NET tool:

throughput-counter servicecontrol [options] --serviceControlApiUrl http://localhost:33333/api/ --monitoringApiUrl http://localhost:33633/

Or, if using the self-contained executable:

Particular.EndpointThroughputCounter.exe servicecontrol [options] --serviceControlApiUrl http://localhost:33333/api/ --monitoringApiUrl http://localhost:33633/

Because ServiceControl contains, at maximum, the previous 1 hour of monitoring data, the tool will query the ServiceControl API 24 times with a one-hour sleep period between each attempt in order to capture a total of 24 hours worth of data.

For endpoints that do not have monitoring enabled, the tool will fall back to querying message audit data to determine how many messages have been processed each hour.

Options

OptionDescription
--serviceControlApiUrlRequired – The URL of the ServiceControl API. In the ServiceControl Management Utility, find the instance identified as a ServiceControl Instance and use the value of the URL field, as shown in the screenshot below.
--monitoringApiUrlRequired – The URL of the Monitoring API. In the ServiceControl Management Utility, find the instance identified as a Monitoring Instance and use the value of the URL field, as shown in the screenshot below.
--queueNameMasksMasks sensitive information in the generated report. See masking private data.
--customerNameSets the customer name. If not provided, the tool will prompt for the information.

Example: --customerName "Particular Software"
--unattendedWill not prompt for user input, so that the tool can be used from environments such as a continuous integration system.
--skipVersionCheckWill not perform the check, for use in environments when outgoing network access creates alerts.

This screenshot shows how to identify the instance types and locate the required URLs:

ServiceControl instances showing tool inputs

What the tool does

The tool will send HTTP requests to both the ServiceControl primary instance and the ServiceControl monitoring instance.

Primary instance

The following requests will be sent to the primary instance:

  • <PrimaryUrl>: Makes sure the URL is valid and that the ServiceControl version is compatible with the tool.
  • <PrimaryUrl>/endpoints: Discovers endpoint names.
  • <PrimaryUrl>/configuration/remotes: Discovers information about connected audit instances, and verifies that their versions are compatible with the tool.
  • <PrimaryUrl>/endpoints/{EndpointName}/audit-count: Requested only once per endpoint, and retrieves throughput information for endpoints with auditing enabled.

Monitoring instance

The following requests will be sent to the monitoring instance:

  • <MonitoringUrl>: Makes sure the URL is valid and that the ServiceControl version is compatible with the tool.
  • <MonitoringUrl>/monitored-endpoints?history=60: Retrieved once per hour to get throughput data for endpoints with monitoring enabled.

Related Articles