Getting Started
Architecture
NServiceBus
Transports
Persistence
ServiceInsight
ServicePulse
ServiceControl
Monitoring
Samples

ServiceControl integration

Component: ServiceControl

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.

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:

  1. ServiceControl must be installed.

  2. An instance of ServiceControl must be configured to use the same transport as the endpoints being monitored.

  3. 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]
  4. 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:

Event notifications

ServiceControl detects important system events and publishes them as integration events to subscribed endpoints.