Due to the very positive customer feedback on our extended MSSQL performance monitoring article, I would like to briefly highlight this functionality.
We have been implementing systems for MSSQL performance monitoring for a long time, offered either as a managed IT service, or on-premise depending on the requirements.
Previously, we recorded and evaluated counters such as CPU, memory KPI’s, I/O KPIs, performance counters, wait statistics, memory breakdowns, transaction log activity, etc. We would then frame them as a historical comparison for each counter individually.
Here’s a dashboard that illustrates what I mean:
Now let’s go one step further.
It’s clear that as soon as performance problems occur on a MSSQL database, these metrics are no longer sufficient for accurate error analysis. That’s why we’ve extended MSSQL performance monitoring to analyze long transactions, head blockers and deadlocks.
This means that we not only measure the number or duration, e.g. of long transactions, but also the user, host name, etc. from which each transaction was generated. This is an essential part of an effective performance analysis by a DBA.
Here’s a screenshot showing an example Long Transactions analysis:
To implement this functionality, we again use InfluxDB with Grafana dashboarding. We fill the Influx database via the Telegraf agent, which runs on the MSSQL server and reads the necessary information from the MSSQL instance via the scripts we have created.