Go Report Card GitHub code style GitHub license GitHub branch checks state GoDoc doc


A tool for monitoring network devices written in Go. It features a check mode which complies with the monitoring plugins development guidelines and is therefore compatible with Nagios, Icinga, Zabbix, Checkmk, etc.


Thola currently has three main modes of operation with various subcommands:

  • identify automatically identifies the device and outputs its vendor, model and other properties.
  • read reads out values and statistics of the device.
    • read available-components returns the available components for the device.
    • read count-interfaces counts the interfaces.
    • read cpu-load returns the current cpu load of all CPUs.
    • read disk reads storage utilization.
    • read hardware-health reads hardware health information like temperatures and fans.
    • read interfaces outputs the interfaces with several values like error counters and statistics.
    • read sbc reads out SBC specific information.
    • read memory-usage reads out the current memory usage.
    • read server outputs server specific information like users and process count.
    • read ups outputs the special values of a UPS device.
  • check performs checks that can be used in monitoring systems. Output is by default in check plugin format.
    • check cpu-load checks the average CPU load of all CPUs against given thresholds and outputs the current load of all CPUs as performance data.
    • check disk checks the free space of storages.
    • check hardware-health checks the hardware-health of a device.
    • check identify compares the device properties with given expectations.
    • check interface-metrics outputs performance data for the interfaces, including special values based on the interface type (e.g. Radio Interface).
    • check memory-usage checks the current memory usage against given thresholds.
    • check sbc checks an SBC device and outputs metrics for each realm and agent as performance data.
    • check server checks server specific information.
    • check snmp checks SNMP reachability.
    • check ups checks if a UPS device has its main voltage applied and outputs additional performance data like battery capacity or current load, and compares them to optionally given thresholds.
    • check thola-server checks reachability of a Thola API.

Supported Devices

We support a lot of different devices and hope for your contributions to grow our device collection. Some examples are:

  • Cisco
  • Juniper
  • Huawei
  • Nokia/ISAM
  • Ceragon
  • Brocade
  • Edgecore

Basic interface readout is supported for every device.

Supported Protocols

Currently we mostly work with SNMP, but already provide basic features for HTTP(S). We plan to support more protocols like telnet, SSH and more.