The endpoints of an NServiceBus system collect different types of information about their operation. This information can be collected and aggregated into a monitoring solution for the whole system.
Endpoints collect performance metrics about their own operation. This data can be sent to a ServiceControl monitoring instance for visualization in ServicePulse.
Alternatively, by consuming the raw data, endpoint performance metrics can be sent to any metrics database.
Use this data to understand which message handlers need to be optimized, which endpoints need to be scaled out, and where there are recoverable errors slowing the system down.
A ServiceControl instance can track which endpoint instances are running by listening to a continual stream of heartbeat messages. Endpoints that fail to send heartbeats within a defined period of time are considered to be inactive. When an inactive endpoint starts sending heartbeats again, it becomes active.
Beyond heartbeats, an endpoint can include custom code to check anything and report status. These checks can be run on a regular schedule and can be used to ensure that third party web services and applications are running as expected.
ServicePulse can be used to track which endpoints are active and inactive as well as monitor the status of custom checks.
When an endpoint becomes active or inactive an event is raised enabling integration with any other dashboard or tool. Events are also raised when custom checks change status.