Monitoring with runtime counters
So, we have correlated logs from the platform and services with which we can debug issues. But what about system health and performance? .NET and ASP.NET Core expose event counters that can give some insights into the overall system state.
We can collect counters with OpenTelemetry without running and managing dotnet-monitor
. But if your metrics pipeline is broken (or if you don’t have one yet), you can attach dotnet-monitor
to your process for ad hoc analysis.
dotnet-monitor
listens to EventCounters
reported by the .NET runtime and returns them on an HTTP endpoint in Prometheus exposition format.
Note
Prometheus is a metrics platform that scrapes and stores metrics. It supports multidimensional data and allows us to slice, dice, filter, and calculate derived metrics using PromQL.
We’re going to run our service as a set of Docker containers with dotnet-monitor
running as a sidecar for the frontend and storage, and configure...