I needed to get some Windows performance counters into InfluxDB, so I could setup some dashboards with Grafana. I’ve seen others post their default telegraf.conf
files with the baseline CPU, Memory, Disk, etc … metrics. But I needed to track some non-default metrics. Like, “SQL Server Batch Requests/sec
“. I started out writing my own powershell, parsing the data and sending an “Invoke-WebRequest” to my InfluxDB with Line Protocol data.
Then I realized, I could probably copy an existing [[inputs.win_perf_counters.object]]
from the default telegraf.conf
file. Then dig into Windows Performance Monitor to find the exact metric I need, and just switch the “ObjectName” and “Counters” out.
This is my example with Batch Requests/sec

- Open Windows Performance Monitor
- Click the green “
+"
button to add a counter

- Find the counter you want, in this case “SQLServer:SQL Statistics“
- Click the “upside down arrow” to the right
- Select “Batch Requests/sec“
- Click the “Add” button
- Click “OK” to close the window

- Verify you get the metrics you want
- Make a note of the “Counter“, “Instance“, and “Object” names

- Open your
telegraf.conf
file - Under the “Inputs” sections, copy an existing “
[[inputs.win_perf_counters.object]]
” section - Update “ObjectName” with the “Object” from Windows Performance Monitor
- Update “Counters“, with the “Counter” name from Windows Performance Monitor
- Update “Instances” with the instance name from Windows Performance Monitor. In this case “*” to choose All, since there is no specific name
- Update “Measurement” with a name for the collection you want to use in InfluxDB to store the metrics. For this example, “win_sql“

- Login to Grafana and add a new panel
- Select your measurement from the
telegraf.conf
file (win_sql) - Select the Counter from the
telegraf.conf
file ,in the field box (Batch Requests/sec)