Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions menu/menu.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1534,8 +1534,8 @@
Title: Hosting
- Url: servicepulse/how-to-configure-endpoints-for-monitoring
Title: Monitoring endpoints
- Url: servicepulse/usage-config
Title: Usage Setup
- Url: servicepulse/usage-reporting-setup
Title: Usage Reporting Setup
- Url: servicepulse/install-servicepulse-in-iis
Title: Install in IIS
- Url: servicepulse/troubleshooting
Expand Down Expand Up @@ -1570,8 +1570,8 @@
Title: Health check notifications
- Url: servicepulse/endpoint-connection
Title: Endpoint connection settings
- Url: servicepulse/usage
Title: Measuring system usage
- Url: servicepulse/usage-reporting-with-servicepulse
Title: Usage Reporting with ServicePulse
- Url: servicepulse/platform-health
Title: Platform Health

Expand Down
6 changes: 3 additions & 3 deletions nservicebus/throughput-tool/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Collecting usage data using legacy Endpoint Throughput Counter tool
summary: Use the Particular endpoint throughput counter tool to measure the usage of an NServiceBus system.
reviewed: 2026-07-14
related:
- servicepulse/usage
- servicepulse/usage-reporting-with-servicepulse
redirects:
- nservicebus/throughput-tool/azure-service-bus
- nservicebus/throughput-tool/amazon-sqs
Expand All @@ -16,7 +16,7 @@ redirects:
---

> [!WARNING]
> Starting 1 January 2027, all projects in active development will be required to use [ServicePulse](./../../servicepulse/usage.md) for usage data collection. Once configured, ServicePulse provides the ability to report usage instantly at any time, without needing to run an external tool or wait for data collection.
> Starting 1 January 2027, all projects in active development will be required to use [ServicePulse](./../../servicepulse/usage-reporting-with-servicepulse.md) for usage data collection. Once configured, ServicePulse provides the ability to report usage instantly at any time, without needing to run an external tool or wait for data collection.
>
> The legacy Endpoint Throughput Counter tool is offered as an alternate option for customers who aren't able to use ServicePulse. If you encounter any issues installing ServicePulse in your environment, please reach out so we can assist in finding a solution.
>
Expand Down Expand Up @@ -543,7 +543,7 @@ The tool measures the number of endpoints used in a system, along with each endp

### Why should I run the tool

The tool is available as an alternate option for customers who are not able to use [ServicePulse](./../../servicepulse/usage.md) to measure their endpoint throughput.
The tool is available as an alternate option for customers who are not able to use [ServicePulse](./../../servicepulse/usage-reporting-with-servicepulse.md) to measure their endpoint throughput.

It assists in gathering the information needed for licensing NServiceBus and the Particular Service Platform as required for production systems. Particular Software also uses the information in aggregate to better serve customer needs.

Expand Down
4 changes: 2 additions & 2 deletions nservicebus/transactional-session/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ It's recommended not to mix the processing of dispatch messages with business me
- More accurate metrics: Metrics like critical time and queue length will accurately represent the performance of the dispatch message processing and not be skewed by business messages
- Simplified management: Knowing that the endpoint only processes dispatch messages makes it possible to always retry all failed messages related to the endpoint via tools like ServicePulse

When configuring endpoints for usage measurement in ServicePulse, mark dedicated transactional session processor endpoints with the appropriate [endpoint type indicator](/servicepulse/usage.md#setting-an-endpoint-type-endpoint-type-indicators).
When configuring endpoints for usage measurement in ServicePulse, mark dedicated transactional session processor endpoints with the appropriate [endpoint type indicator](/servicepulse/usage-reporting-with-servicepulse.md#endpoint-type-indicators).

partial: design-considerations

Expand Down Expand Up @@ -234,7 +234,7 @@ When the dispatch message is consumed, but the outbox record is not yet availabl
```csharp
CommitDelayIncrement = 2 * CommitDelayIncrement;
RemainingCommitDuration = RemainingCommitDuration
- (CommitDelayIncrement > RemainingCommitDuration
- (CommitDelayIncrement > RemainingCommitDuration
? RemainingCommitDuration
: CommitDelayIncrement);
```
Expand Down
2 changes: 1 addition & 1 deletion platform/servicepulse.include.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
ServicePulse is a web application designed to provide both administrators and developers with powerful tools for monitoring and managing systems. It offers a clear, near real-time, high-level overview of system functionality, along with common failure recovery operations such as retrying failed messages. Additionally, it provides a rich, graphical view of [detailed performance metrics](/monitoring/metrics/in-servicepulse.md), including insights into logical endpoints, physical instances, and individual message types.

For administrators, ServicePulse simplifies system oversight and is essential for generating [usage reports](/servicepulse/usage.md) to determine licensing requirements. For developers, it offers advanced debugging capabilities; including visualizations of message flows, saga state changes, and other system behaviors. Tools like message [flow diagrams](/servicepulse/flow-diagram.md) and [sequence diagrams](/servicepulse/sequence-diagram.md) make it easy to detect anomalies and incorrect behavior. Developers can also access detailed information, such as message headers and metadata, when viewing individual messages.
For administrators, ServicePulse simplifies system oversight and is essential for generating [usage reports](/servicepulse/usage-reporting-with-servicepulse.md) to determine licensing requirements. For developers, it offers advanced debugging capabilities; including visualizations of message flows, saga state changes, and other system behaviors. Tools like message [flow diagrams](/servicepulse/flow-diagram.md) and [sequence diagrams](/servicepulse/sequence-diagram.md) make it easy to detect anomalies and incorrect behavior. Developers can also access detailed information, such as message headers and metadata, when viewing individual messages.
6 changes: 3 additions & 3 deletions platform/throughput-report/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ summary: Minimal setup required for generating a usage report for licensing of t
reviewed: 2026-08-14
related:
- nservicebus/licensing
- servicepulse/usage
- servicepulse/usage-config
- servicepulse/usage-reporting-with-servicepulse
- servicepulse/usage-reporting-setup
---

The Particular Service Platform is licensed based on the number of NServiceBus endpoints and the message throughput of those endpoints. In order to determine these values, a process needs to be run that queries the transport broker for up to 24 hours, and a report generated from this data to be sent to Particular.

The minimal installation required to generate the usage report is:

- [ServiceControl](/servicecontrol/). For most transports, only a single [error instance](/servicecontrol/servicecontrol-instances/) is required, as this is the primary service that contains the broker querying logic. Certain transports [cannot query the broker directly](/servicepulse/usage-config.md#audit-and-monitoring-data); for these an audit or monitoring instance will also be required and all endpoints will need to be configured to send data to these instances.
- [ServiceControl](/servicecontrol/). For most transports, only a single [error instance](/servicecontrol/servicecontrol-instances/) is required, as this is the primary service that contains the broker querying logic. Certain transports [cannot query the broker directly](/servicepulse/usage-reporting-setup.md#audit-and-monitoring-data); for these an audit or monitoring instance will also be required and all endpoints will need to be configured to send data to these instances.
- [ServicePulse](/servicepulse/). This is the UI that interfaces with the ServiceControl service to allow users to specify which endpoints are NServiceBus related and generate the usage report to send to Particular.

> [!NOTE]
Expand Down
4 changes: 2 additions & 2 deletions samples/aspire/platform-asb/sample.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,11 @@ snippet: persistence

#### Usage reporting

The ServiceControl error instance can collect endpoint usage data, which powers the [usage report](/servicepulse/usage.md) in ServicePulse. When using Azure Service Bus, collecting this data requires Azure credentials with the **Monitoring Reader** role. These values are supplied as Aspire parameters:
The ServiceControl error instance can collect endpoint usage data, which powers the [usage report](/servicepulse/usage-reporting-with-servicepulse.md) in ServicePulse. When using Azure Service Bus, collecting this data requires Azure credentials with the **Monitoring Reader** role. These values are supplied as Aspire parameters:

snippet: throughput-reporting-params

The parameters are passed to `WithThroughputReporting` when the error instance is registered. See [usage reporting setup](/servicepulse/usage-config.md#connection-setup-azure-service-bus) for details on how to obtain them. If usage reporting is not required, omit these parameters and the `WithThroughputReporting` call.
The parameters are passed to `WithThroughputReporting` when the error instance is registered. See [usage reporting setup](/servicepulse/usage-reporting-setup.md#connection-setup-azure-service-bus) for details on how to obtain them. If usage reporting is not required, omit these parameters and the `WithThroughputReporting` call.

#### Default components

Expand Down
2 changes: 1 addition & 1 deletion servicecontrol/servicecontrol-instances/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -1119,7 +1119,7 @@ If using [MSMQ transport](/transports/msmq) and the monitoring instance is insta

## Usage Reporting when using the Azure Service Bus transport

The following settings are part of [Usage Reporting Setup when using the Azure Service Bus transport](/servicepulse/usage-config.md#connection-setup-azure-service-bus)
The following settings are part of [Usage Reporting Setup when using the Azure Service Bus transport](/servicepulse/usage-reporting-setup.md#connection-setup-azure-service-bus)

### LicensingComponent/ASB/ServiceBusName

Expand Down
Binary file modified servicepulse/images/usage-endpoints-bulk-update.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified servicepulse/images/usage-endpoints-filter.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified servicepulse/images/usage-endpoints-updated.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -1,24 +1,27 @@
---
title: Usage Reporting Setup
summary: Viewing endpoint usage summary and generating a usage report
summary: How to set up ServicePulse for usage reporting
component: ServicePulse
reviewed: 2026-02-11
related:
- servicepulse/usage
- servicepulse/usage-reporting-with-servicepulse
redirects:
- servicepulse/usage-config
---

This document describes the settings required for collecting usage data to generate a usage report.
This document describes the settings required for collecting usage data to generate a [usage report](usage-reporting-with-servicepulse.md) in ServicePulse.

> [!NOTE]
> The usage data collection functionality requires ServicePulse version 1.40 or later, and ServiceControl version 5.4 or later.

## Connection setup

In most scenarios existing ServiceControl error instance connection settings will be used to establish a connection to the broker.
In most scenarios, existing ServiceControl error instance connection settings will be used to establish a connection to the broker.

![usage-setup-connections](images/usage-setup-connection.png "width=600")

If there is a connection problem, specific usage settings can be provided as environment variables or directly in the [ServiceControl.exe.config](/servicecontrol/servicecontrol-instances/configuration.md) file.

The Usage Setup tab provides easy copy/paste functionality to obtain the required settings in the correct format, based on configuration type.

Refer to the [Diagnostics](#diagnostics) tab to diagnose connection issues.
Expand All @@ -35,11 +38,11 @@ Steps:
- `ClientId`
- `ClientSecret`

The setup can be done via the [portal](#connection-setup-azure-service-bus-using-azure-portal) or [CLI](#connection-setup-azure-service-bus-using-azure-cli).

#### Using Azure Portal

To use the Azure Portal, follow these instructions. Alternatively, use the Azure CLI as described below.

To use the Azure Portal:

1. Create App
- Native to: **Home > App registrations**
Expand All @@ -54,7 +57,7 @@ To use the Azure Portal, follow these instructions. Alternatively, use the Azure

#### Using Azure CLI

To use the Azure CLI or scripting, follow these instructions. Alternatively, use the Azure Portal as described above.
To use the Azure CLI or scripting:

```ps1
# Set context first
Expand Down Expand Up @@ -126,7 +129,6 @@ To restrict permissions to the minimal required set, create a custom role with t
}
```


The `Microsoft.ServiceBus` permissions are required to read queue names and metric data from Azure Monitor. The `Microsoft.Resources/subscriptions` permissions are required in order to locate the Service Bus namespace within the Azure subscription. The `Microsoft.Insights/Metrics/Read` permissions are required to find the available metrics.

### Amazon SQS
Expand Down Expand Up @@ -157,7 +159,7 @@ Refer to the [Usage Reporting when using the Amazon SQS transport](/servicecontr
}
```

### SQLServer
### SQL Server

#### Settings

Expand Down
98 changes: 98 additions & 0 deletions servicepulse/usage-reporting-with-servicepulse.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
---
title: Usage reporting with ServicePulse
summary: Use ServicePulse to view usage and download a report for licensing NServiceBus
reviewed: 2026-09-27
redirects:
- nservicebus/usage
- servicepulse/usage
---

> [!NOTE]
> The usage data collection functionality requires ServicePulse version 1.40 or later, and ServiceControl version 5.4 or later.

A usage report is a file generated by ServicePulse that shows messaging throughput of a system based on identified NServiceBus endpoints and the throughput of their corresponding queues. To enable this functionality in ServicePulse, [usage reporting setup](/servicepulse/usage-reporting-setup.md) must be completed first. Once configured, no ongoing maintenance is needed, and the Usage page will display throughput for each queue detected.

This report is needed when licensing the Particular Platform and must be downloaded and sent manually. Before submitting the report, [sensitive data can be masked](usage-reporting-setup.md#report-masks) and queues that do not map to NServiceBus endpoints (and therefore, do not count toward licensing) can be marked as such.

Customers who are not able to use ServicePulse can contact their Account Manager directly or [reach out to the Particular Software Sales team](https://particular.net/contact) if they do not have an Account Manager.

## Viewing usage data in ServicePulse

The Usage page in ServicePulse has two tabs:

- [Detected endpoint queues](#viewing-usage-data-in-servicepulse-detected-endpoint-queues)
- [Detected broker queues](#viewing-usage-data-in-servicepulse-detected-broker-queues) (only displayed when using a broker transport)

For each detected endpoint queue and broker queue, the maximum daily throughput is displayed. This can be helpful to get an understanding of which [tier](https://particular.net/pricing) the corresponding endpoint belongs to for licensing purposes.

### Detected endpoint queues

This list is comprised of endpoint queues that have a clear connection to an NServiceBus endpoint. However, these can be marked to indicate if they correspond to a [type of endpoint that should not count toward licensing](#endpoint-type-indicators).

Changes made to the endpoint type are automatically saved for future reporting, so it is important to remember to make an update if the endpoint type changes.

### Detected broker queues

For [NServiceBus transport](./../transports) that allow querying the broker, there may be additional information on the `Detected Broker Queues` tab. These are queues detected on the broker that cannot be automatically linked to an NServiceBus endpoint. These queues will be included in the usage report for NServiceBus licensing purposes, but their corresponding endpoints can also be [marked to indicate if they should not count toward licensing](#endpoint-type-indicators).

This feature will not be displayed for non-broker transports like MSMQ and Azure Storage Queues.

## Downloading a usage report

Click `Download Report` to generate a usage report as a JSON file. This report contains the queues from both the [detected endpoint queues](#viewing-usage-data-in-servicepulse-detected-endpoint-queues) and [detected broker queues](#viewing-usage-data-in-servicepulse-detected-broker-queues) tabs. The report also includes the [endpoint type](#endpoint-type-indicators) selections made on screen, and any specified [words to mask](usage-reporting-setup.md#report-masks) will be obfuscated.

The `Download Report` button is disabled if there is less than 24 hours worth of usage data.

The report file must be provided to Particular Software on request; it is **not** automatically uploaded or sent. Once Particular Software receives the report, the reported queues and throughput are analyzed to determine which ones count for licensing purposes.

## Endpoint type indicators

The following endpoint type indicators are available to help categorize endpoints appropriately:

### NServiceBus Endpoint

Known NServiceBus [endpoint](/nservicebus/endpoints/). These endpoints are included in licensing calculations as they represent active NServiceBus endpoints processing business messages.

### No longer in use

NServiceBus endpoint that is no longer in use, usually with zero throughput in the corresponding queue. These endpoints are not included in licensing calculations since they are inactive.

### Transactional Session Processor Endpoint

An [endpoint that is only processing transactional session dispatch messages](/nservicebus/transactional-session/#design-considerations). These are [specialized endpoints](/nservicebus/transactional-session/#remote-processor) dedicated to handling the coordination of transactional sessions, and are excluded from licensing calculations.

### Send-Only Endpoint

An endpoint that [only sends](/nservicebus/endpoints/#send-only) messages and does not process any messages. These endpoints have different licensing considerations since they don't process incoming messages.

### Planned to be decommissioned

An endpoint that is expected to no longer be used within the next 30 days. These endpoints may be excluded from licensing calculations as they represent temporary infrastructure.

### Not an NServiceBus Endpoint

Not an NServiceBus endpoint. These are broker queues or other messaging infrastructure that should not be included in NServiceBus licensing calculations.

### Gateway or Bridging Endpoint

These are endpoints that are either part of the [Gateway](/nservicebus/gateway/) or [Messaging Bridge](/nservicebus/bridge/) infrastructure.

### Particular Platform Endpoint

This is a Particular Platform infrastructure endpoint.

## Bulk endpoint type updates

The filter option can be used for bulk updating endpoint types matching a certain naming pattern.

1. Find the endpoints/queues that need to be bulk updated
2. Press the `Set Endpoint Type for all items below` button to select which endpoint type the filtered results should be set to.
![usage-endpoints-filter](images/usage-endpoints-filter.png "width=600")
3. A confirmation box appears - press `Yes` to proceed with the bulk update.
![usage-endpoints-bulk-update](images/usage-endpoints-bulk-update.png "width=600")
4. All endpoints/queues on screen will be updated to the selected endpoint type and automatically saved.
![usage-endpoints-updated](images/usage-endpoints-updated.png "width=600")

## Need help?

To get help downloading a usage report, [open a support case](https://customers.particular.net/request-support/licensing).
Loading
Loading