/smartzone_exporter

Prometheus metrics exporter for Ruckus SmartZone appliances

Primary LanguagePythonMIT LicenseMIT

SmartZone Exporter

Ruckus SmartZone exporter for https://prometheus.io, written in Python.

This exporter is adapted in part from examples by Robust Perception and Loovoo, utilizing the Ruckus SmartZone API to query for metrics.

Background

The goal of this exporter is twofold: provide a faster and more reliable alternative to SNMP for querying metrics from a Ruckus SmartZone controller, while also providing an opportunity to brush up on my (admittedly quite rusty) Python skills. Most of the code will be heavily commented with notes that would be obvious to more experienced developers; perhaps it will be useful for other contributors or developers. There will certainly be additional efficiencies that can be gained, more 'Pythonic' ways of doing certain tasks, or other changes that make this exporter better; contributions are always welcome!

Features

The following metrics are currently supported:

  • Controller summary (uptime, model, serial, hostname, version, AP firmware version)
  • System inventory (total APs, discovery APs, connected APs, disconnected APs, rebooting APs, clients)
  • AP statistics (status, alerts, latency, connected clients, GPS)

Additional metrics may be added over time.

Usage

usage: smartzone_exporter.py [-h] -u USER -p PASSWORD -t TARGET [--insecure]
                             [--port PORT]

optional arguments:
  -h, --help            show this help message and exit
  --insecure            Allow insecure SSL connections to Smartzone
  --port PORT           Port on which to expose metrics and web interface
                        (default=9345)

required named arguments:
  -u USER, --user USER  SmartZone API user
  -p PASSWORD, --password PASSWORD
                        SmartZone API password
  -t TARGET, --target TARGET
                        Target URL and port to access SmartZone, e.g.
                        https://smartzone.example.com:8443

Example

python smartzone_exporter.py -u jimmy -p jangles -t https://ruckus.jjangles.com:8443

Requirements

This exporter has been tested on the following versions:

Model Version
vSZ-H 3.5.0.0.808

Installation

git clone https://github.com/ddericco/smartzone_exporter.git
cd smartzone_exporter
pipenv install