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.
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.
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:
- enable auditing to collect data on individual messages;
- configure recoverability to store information on messages failures;
- install plugins on the endpoints to monitor their health and sagas and use custom checks.
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.