Windows Performance Counters provide a high-level abstraction layer that provides a consistent interface for collecting metrics like CPU, memory, and disk usage. Performance counters are useful to monitor performance of systems or examine application resource usage to determine why your application is running slowly or doesn't respond at all.

Why use the Windows Performance Counters Telegraf Plugin?

Developers often use various kinds of systems data such as CPU, memory, and disk usage to determine performance or behavior problems, and the Windows Performance Counters Telegraf plugin can collect these metrics on your Windows systems. Collecting and storing this data in InfluxDB will allow you to maintain this data over longer periods of time to help you track trends. In addition, you can collect metrics from other Telegraf plugins (like, Windows Services, SQL Server, or even Microsoft Azure Storage Queue metrics).

How to monitor Windows Performance Counters using the Telegraf Plugin

The Windows Performance Counter Telegraf Input Plugin reads Performance Counters on Windows operating systems. The configuration is parsed and then tested for validity, such as whether the Object, Instance and Counter exist on Telegraf startup. Counter paths are refreshed periodically; see the CountersRefreshInterval configuration parameter for more info. In case of query for all instances ["*"], the plugin does not return the instance _Total by default.

Key Windows Performance Counters metrics to use for monitoring

Some of the important Windows Performance Counters metrics that you should proactively monitor include but are not limited to:

  • Processor usage reported per core (% Idle Time, % Interrupt Time, % Privileged Time, % User Time, % Processor Time)
  • Disk times and queues (% Idle Time, % Disk Time,% Disk Read Time, % Disk Write Time, % User Time, Current Disk Queue Length)
  • System counters (Context Switches/sec, System Calls/sec, Processor Queue Length)
  • Memory consumption (Available Bytes, Cache Faults/sec, Demand Zero Faults/sec, Page Faults/sec, Pages/sec,Transition Faults/sec, Pool Nonpaged Bytes, Pool Paged Bytes)
  • Network Interface (Bytes Received/sec, Bytes Sent/sec, Packets Received/sec, Packets Sent/sec)
  • Active Directory Domain Controller
    • Instances (Base Searches/sec, Database adds/sec, Database deletes/sec, Database modifys/sec, Database recycles/sec, LDAP Client Session, LDAP Searches/sec, LDAP Writes/sec)
    • Security System-Wide Statistics (NTLM Authentications, Kerberos Authentications, Digest Authentications)
    • Database (Database Cache % Hit, Database Cache Page Fault Stalls/sec, Database Cache Page Faults/sec, Database Cache Size)
  • DFS Replication Service Volumes (Data Lookups, Database Commits)
  • IIS / ASP.NET
    • HTTP Service Request Queues (CurrentQueueSize, RejectedRequests)
    • ASP.NET Applications (Cache Total Entries, Cache Total Hit Ratio, Cache Total Turnover Rate, Output Cache Entries, Output Cache Hits, Output Cache Hit Ratio, Output Cache Turnover Rate, Compilations Total, Errors Total/Sec, Pipeline Instance Count, Requests Executing, Requests in Application Queue, Requests/Sec)
    • ASP.NET (Application Restarts, Request Wait Time, Requests Current, Requests Queued, Requests Rejected)
    • Web Service (Get Requests/sec, Post Requests/sec, Connection Attempts/sec, Current Connections, ISAPI Extension Requests/sec)
    • Web Service Cache (URI Cache Hits %, Kernel: URI Cache Hits %, File Cache Hits %)
  • Process (% Processor Time, Handle Count, Private Bytes, Thread Count, Virtual Bytes, Working Set)
  • .NET Monitoring
    • .NET CLR Exceptions (# of Exceps Thrown / sec)
    • .NET CLR Jit (% Time in Jit, IL Bytes Jitted / sec)
    • .NET CLR Loading (% Time Loading)
    • .NET CLR LocksAndThreads (# of current logical Threads, # of current physical Threads, # of current recognized threads, # of total recognized threads, Queue Length / sec, Total # of Contentions, Current Queue Length)
    • .NET CLR Memory (% Time in GC, # Bytes in all Heaps, # Gen 0 Collections, # Gen 1 Collections, # Gen 2 Collections, # Induced GC, Allocated Bytes/sec, Finalization Survivors, Gen 0 heap size, Gen 1 heap size, Gen 2 heap size, Large Object Heap size, # of Pinned Objects)
    • .NET CLR Security (% Time in RT checks, Stack Walk Depth, Total Runtime Checks)

For more information, please check out the documentation.

Project URL   Documentation

Related Resources

Linux System Monitoring Template

How to use Linux System Monitoring Template

Tomcat Monitoring Template

How to use the Tomcat Monitoring Template

Azure Storage Queue Telegraf Plugin

The Microsoft Azure Storage Queue Telegraf plugin collects the sizes of the Microsoft Azure Storage Queues.

Scroll to Top