Prometheus exporter for NETGEAR switches supported by ProSAFE Plus utility
Switch branches/tags
Nothing to show
Clone or download
Latest commit 0c9f597 Oct 15, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
example
src
.gitignore
.travis.yml
Cargo.lock Add test Oct 15, 2018
Cargo.toml
LICENSE Initial commit Oct 3, 2018
Makefile
README.md Add cargo tarpaulin Oct 15, 2018

README.md

prosafe_exporter

Prometheus exporter for NETGEAR switches supported by ProSAFE Plus utility.

Build Status Crates.io codecov

Exported Metrics

metric description labels
prosafe_up The last query is successful
prosafe_receive_bytes_total Incoming transfer in bytes port
prosafe_transmit_bytes_total Outgoing transfer in bytes port
prosafe_error_packets_total Transfer error in packets port
prosafe_link_speed Link speed in Mbps port
prosafe_build_info prosafe_exporter Build information version, revision, rustversion

Tested Switches

  • XS708E
  • GS108Ev3
  • GS105Ev2

Install

Download from release page, and extract to any directory ( e.g. /usr/local/bin ). See the example files in example directory as below.

File Description
example/prosafe_exporter.service systemd unit file

If the release build doesn't fit your environment, you can build and install from source code.

cargo install prosafe_exporter

Usage

prosafe_exporter --web.listen-address=":9493"

The default listen port is 9493. It can be changed by --web.listen-address option.

Prometheus Server Configuration

The target switches of prosafe_exporter can be configured by the pair of hostname and network interface name ( e.g. switch1:eth0 ). The network interface must be belonged to the same subnet as the switch.

The Prometheus server configuration is like SNMP exporter. The example of a configuration is below:

- job_name: 'prosafe'
  static_configs:
      - targets: ['switch1:eth0', '192.128.0.100:enp1s0'] # target switches by hostname:if_name.
  metrics_path: /probe
  relabel_configs:
    - source_labels: [__address__]
      target_label: __param_target
    - source_labels: [__param_target]
      target_label: instance
    - target_label: __address__
      replacement: 127.0.0.1:9493 # The prosafe_exporter's real hostname:port.

Query Example

Outgoing data rate of port1 on switch1:eth0 is below.

rate(prosafe_transmit_bytes_total{instance="switch1:eth0", port="1"}[1m])