Table of contents
What is Sonar?
Sonar is monitoring agent built and maintained by Infragravity with multiple releases available from our GitLab repository. It can be used for metric collection on Windows, Linux, Docker and Kubernetes (deployed as Helm chart).
When it Fits?
Cloud-native metric collection is common in hybrid scenarios when enterprise IT infrastructure need common tools for monitoring multiple platforms and services anywhere: on-premise and in the cloud. To address this challenge, Sonar supports push and pull scenarios for gathering metrics from multiple sources and exposing them to multiple monitoring systems or time-series databases: Prometheus, Akumuli or InfluxDb.
This approach allows to use single agent to collect metrics from more than source and send them to multiple monitoring systems. Using common agent and metric definitions eliminates concerns of handling different formats or transport protocols required by monitoring system. In addition, Sonar configuration of target monitoring system can change at any time without need to refine which metrics should be collected.
Sonar monitoring agent is implemented in .NET Core and can be deployed on multiple platforms as follows:
- Windows hosts and virtual machines with Windows Server OS 2008 R2- 2019
- Windows containers (Server Core and Nano Server)
- Linux (as Docker container)
- Kubernetes (as Helm chart)
Monitoring agent uses the following key abstractions:
- Queries – define which metrics should be collected by an adapter without need to write code. Performance counters, WMI and SQL queries only require configuration.
- Input adapters – for executing queries to gather metrics from source systems.
- Output adapters – for exposing collected metrics to destination monitoring systems and time series databases.
- Arrays – set of queries defined for specific type of input adapter to be executed at scheduled intervals.
The following input adapters are supported:
- Microsoft Windows Management Instrumentation(WMI) queries executed locally on host or remotely.
- Microsoft SQL Server deployed on Linux or Windows.
- Oracle databases (sample).
- MySQL databases (sample).
- Akumuli time-series database.
The following output adapters are supported:
- Prometheus – exposing metrics as target for pull mode.
- Akumuli – sending collected metrics in push mode via UDP transport.
- InfluxDb – sending collected metrics in push mode via UDP transport.
Dynamic re-configuration for applying configuration changes at runtime is supported on Kubernetes. The array feature allows to specify and share sets of metric queries specific to a workload: for example IIS and WCF performance counters or WMI queries.
Sonar monitoring agent can be extended with new input output adapters. More information is available in repository on GitLab.
More information about Sonar is available in our knowledge base.