ServiceControl is the backend service for ServicePulse and ServiceInsight. It can also be used as the back-end for third-party integrations. It collects and stores information from monitored NServiceBus endpoints and exposes it via an HTTP API.
In systems that don't use ServiceControl, failed messages remain in the configured error queue and audit messages remain in the configured audit queue. If ServiceControl is introduced into an existing environment, ServiceControl consumes the messages so they are no longer in their respective queues.
ServiceControl provides monitoring capabilities by analyzing the configured error and audit queues. It can extract information like endpoint name, queue name and, in case of error messages, the exception stack trace, etc. This information is stored in an internal database.
Configuring an endpoint to be monitored by ServiceControl
To allow ServiceControl to monitor endpoints:
ServiceControl must be installed.
An instance of ServiceControl must be configured to use the same transport as the endpoints being monitored.
Every endpoint must be configured for auditing with the same audit queue as the instance of ServiceControl.
graph LR EndpointA --- AuditQ EndpointB --- AuditQ EndpointC --- AuditQ AuditQ[audit queue] --- ServiceControl ServiceControl .- AuditLog[audit.log queue]Every endpoint must be configured for recoverability with the same error queue as ServiceControl.
graph LR EndpointA --- ErrorQ EndpointB --- ErrorQ EndpointC --- ErrorQ ErrorQ[error queue] --- ServiceControl ServiceControl .- ErrorLog[error.log]
Configuring other monitoring and debugging capabilities
In addition to ingesting audit and error information, ServiceControl can process other types of information generated by monitoring and debugging components:
Endpoints must be configured appropriately to allow ServiceControl to gather this information:
- Auditing must be enabled to collect data related to individual messages.
- Recoverability must be enabled to store information about message processing failures.
- Heartbeats, custom checks, and other plugins must be installed in endpoints.
All endpoints in a given environment must be configured to send messages to the same ServiceControl plugin, audit, and error queues for ServiceControl to work.
Event notifications
ServiceControl detects important system events and publishes them as integration events to subscribed endpoints.