ServicePulse is a web application designed for administrators. It provides a clear, near real-time, high-level overview of how a system is currently functioning. The UI also provides common failure recovery operations, such as retrying failed messages.
ServicePulse also has a rich, graphical view of detailed performance metrics. These are shown at the level of logical endpoints, physical instances, and even individual message types.
ServicePulse uses information provided by ServiceControl. In order to use ServicePulse, first set up ServiceControl.
The dashboard provides a visual overview of the current state of the monitored NServiceBus system. It provides information about the latest events in the system, such as detecting a new endpoint or a message processing failure.
ServicePulse automatically detects existing endpoints in the system by analyzing metadata from audited messages. By default, all detected endpoints will be listed in the Endpoints tab, but will not be automatically monitored.
In order to monitor an endpoint's health and activity, it is necessary to configure it for monitoring.
The monitoring view shows an overview of all logical endpoints in a system showing various metrics. Navigate to the details by clicking on an endpoint name. This shows the same metrics split by message type or endpoint instance.
Failed messages are indicated in the ServicePulse dashboard by a red icon showing the number of failing messages.
The Failed Messages tab allows inspection of failed messages in more detail and to react to failures (by manually retrying or deleting messages). The messages are grouped by:
- The exception type
- The exception message
- The endpoint name
- The endpoint instance ID
- The queue address
Endpoint health monitoring ensures that the endpoint is functional, i.e. it can receive, process and send messages. However, in some situations, the system's operation might depend on other factors, such as a 3rd party webservice.
ServicePulse allows development of custom and period checks that can verify any required condition using custom .NET code. If the specified condition cannot be satisfied, ServicePulse will raise alerts.