13 releases
new 0.2.9 | Dec 18, 2024 |
---|---|
0.2.8 | Jan 4, 2021 |
0.2.7 | Jun 4, 2019 |
0.2.4 | Mar 18, 2019 |
0.2.1 | Oct 8, 2018 |
#381 in Network programming
33KB
614 lines
prosafe_exporter
Prometheus exporter for NETGEAR switches supported by ProSAFE Plus utility.
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
- GS308E
- GS116Ev2
- GS108Ev3
- GS105Ev2
- GS108PEv3
- JGS524PE
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.
The ProSAFE switches need to have the Switch Management Mode set to "Web browser and Plus Utility" for the exporter to work correctly.
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', 'switch2:*'] # 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.
if_name
can be *
. If *
is used, prosafe_exporter will search an accessible network interface automatically.
Query Example
Outgoing data rate of port1
on switch1:eth0
is below.
rate(prosafe_transmit_bytes_total{instance="switch1:eth0", port="1"}[1m])
Dependencies
~14–21MB
~319K SLoC