NServiceBus.Metricspackage. See the NServiceBus OpenTelemetry documentation for further information.
The Metrics plugin collects metric data about the performance of running endpoints. This data can be forwarded to a ServiceControl monitoring instance and then viewed in ServicePulse.
To see performance monitoring in action, try the standalone demo.
For a full list of the performance metrics captured and their formal definitions, see Metric definitions.
To enable collecting metrics in an environment:
- Install a ServiceControl monitoring instance
- Install and configure the ServiceControl Metrics plugin in each endpoint
- (MSMQ Transport only) Install the MSMQ queue length reporter in each endpoint
- View the performance data collected for endpoints in ServicePulse
A ServiceControl monitoring instance is more lightweight than a regular ServiceControl instance. Nevertheless, it is not recommended to host a monitoring instance on the same machine that is hosting production endpoint instances.
Each endpoint instance collects performance metrics which are buffered and then sent. A single metrics message contains a batch of values written in a compact binary format, making reporting very lightweight.
A Service Control Monitoring instance processes Metric. The metric data is stored in RAM only. Logfiles are still written to disk. The metrics data are stored for at most one hour. A 100MB process can hold state for at least 100 endpoint instances.
The metrics service is only performing simple summing aggregation logic. The CPU usage is low.
- Metrics can be reported to Windows Performance Counters.
- Observing raw metric data allows reporting to any 3rd party metric database.