ServiceControl is a suite of back-end tools that collect useful information about a running NServiceBus system. It collects data on every single message flowing through the system (Audit Queue), errors (Error Queue), as well as additional information regarding sagas, endpoints heartbeats and custom checks (Control Queue). The information is then exposed to ServicePulse and ServiceInsight via an HTTP API and SignalR notifications.

The ServiceControl HTTP API may change at any time. It is designed for use by ServicePulse and ServiceInsight only. Use of this HTTP API for other purposes is discouraged.

Each NServiceBus endpoint can be configured to send data about its operation to a set of centralized queues that are unique to the system being monitored. These queues are monitored by a ServiceControl instance which collects and processes this data. ServiceControl instances are created and managed using the ServiceControl Management Utility.

All endpoints should be configured to forward to the same audit, error, and ServiceControl instance queues unless the system has been sharded between multiple ServiceControl instances.

It is important to understand that the data is still collected even if the ServiceControl instance is down. When it starts working again, it will process all the information that was saved in the meantime.

To enable ServiceControl to gather this information, configure the solution appropriately:

ServiceControl consumes messages that arrive in either the configured audit or error queues, i.e. it removes those messages from the queues. If a copy of those messages is required for further processing, configure audit forwarding and/or error queue forwarding.

By default ServiceControl stores information for 30 days, but it can be customized.

Refer to the Optimizing for use in different environments article for more information about practical considerations.

Related Articles

Last modified