ServiceControl is a background process that collects useful information about an NServiceBus system. It uses an audit queue to collect every message flowing through the system and an error queue to collect failed messages. It can also collect saga state changes, endpoint heartbeats, and perform custom checks using a control queue. This information is 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 not recommended.

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.

Note that data is still collected even if the ServiceControl instance is down. When it starts working again, it will process the information that was saved while it was offline.

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 this period can be customized.

See Optimizing ServiceControl for use in different environments for more information about practical considerations.

Related Articles

Last modified