The new 0.1.8 version of Sonar for monitoring Windows has been released with support for performance counters. The Web API sample in GitHub repository has been updated with latest version of configuration files. Why Sonar was developed and how it compares with other metric collectors available today?

There are very few free choices for metric collection on Windows. Sonar is now one of them. The other notable options are:

  • Telegraf - metric collector built by InfluxData. 
  • WMI exporter - metric collector for Prometheus. It exposes metrics to Prometheus via HTTP.

Telegraf

This metric collector is open source and written in Go. It supports over 100 metric sources and remains being actively developed. For collecting Windows metrics it supports performance counters. However, it does not support WMI nor collecting metrics remotely. This means that monitoring file sizes and Windows event logs is not possible with Telegraf.

WMI Exporter

This metric collector does support collecting metrics from WMI metrics out of the box. However, it supports limited set of metrics. Thus, if the metric you are looking for is not supported, developer has to generate code and metric collector should be recompiled. This means for any new metric that this exporter does not support out of the box, the end result will be new custom version of collector and time for development and testing. It appears that this exporter does not emit performance metrics associated with cost of scraping a metric. 

Sonar

The development of Sonar started because none of the above collectors could satisfy our requirements for collecting performance metrics on Windows:

  • Cloud-native
  • No coding for defining new metrics
  • Query metrics from WMI locally and remotely on Windows ( including Nano Server containers)
  • Gather performance counters on Windows ( including Nano Server containers)
  • Monitoring Event Logs monitoring and aggregation on Windows ( including Nano Server containers)
  • Deployment on Docker, Kubernetes as Linux or Windows containers (sidecar pattern) as well as Windows host OS.
  • Monitor relational data from SQL Server for Linux or Windows.
  • Support sending metrics to Prometheus  and InfluxDb at the same time.
  • Ability to measure performance to determine cost of collecting any given metric.

For more information about Sonar, please see WebAPI sample on GitHub and documentation.