Tell prometheus how happy your systemd is ! 😊
A prometheus exporter using monitord to export statistic to prometheus collectors.
Install via cargo.
cargo install monitord-exporter
monitord-exporter --help
```console $ monitord-exporter --help prometheus exporter to share how happy your systemd is ! 😊
Usage: monitord-exporter [OPTIONS]
Options:
-d, --dbus-address
[default: unix:path=/run/dbus/system_bus_socket]
-n, --networkd-state-file-path
[default: /run/systemd/netif/links]
-p, --port
[default: 1]
-v, --verbose... More output per occurrence
-q, --quiet... Less output per occurrence
-h, --help
Print help information (use -h
for a summary)
-V, --version Print version information ```
```console
monitordnetworkdaddressstate{interfacename="eno4"} 3 monitordnetworkdaddressstate{interfacename="ens2f0"} 1 monitordnetworkdaddressstate{interfacename="spectrum"} 3 monitordnetworkdaddressstate{interfacename="vlan69"} 3 monitordnetworkdaddressstate{interfacename="vlan70"} 3 monitordnetworkdaddressstate{interfacename="wg0"} 3
monitordnetworkdadminstate{interfacename="eno4"} 4 monitordnetworkdadminstate{interfacename="ens2f0"} 3 monitordnetworkdadminstate{interfacename="spectrum"} 4 monitordnetworkdadminstate{interfacename="vlan69"} 4 monitordnetworkdadminstate{interfacename="vlan70"} 4 monitordnetworkdadminstate{interfacename="wg0"} 4
monitordnetworkdcarrierstate{interfacename="eno4"} 5 monitordnetworkdcarrierstate{interfacename="ens2f0"} 1 monitordnetworkdcarrierstate{interfacename="spectrum"} 5 monitordnetworkdcarrierstate{interfacename="vlan69"} 5 monitordnetworkdcarrierstate{interfacename="vlan70"} 5 monitordnetworkdcarrierstate{interfacename="wg0"} 5
monitordnetworkdipv4addressstate{interfacename="eno4"} 3 monitordnetworkdipv4addressstate{interfacename="ens2f0"} 1 monitordnetworkdipv4addressstate{interfacename="spectrum"} 3 monitordnetworkdipv4addressstate{interfacename="vlan69"} 3 monitordnetworkdipv4addressstate{interfacename="vlan70"} 1 monitordnetworkdipv4addressstate{interfacename="wg0"} 3
monitordnetworkdipv6addressstate{interfacename="eno4"} 2 monitordnetworkdipv6addressstate{interfacename="ens2f0"} 1 monitordnetworkdipv6addressstate{interfacename="spectrum"} 3 monitordnetworkdipv6addressstate{interfacename="vlan69"} 3 monitordnetworkdipv6addressstate{interfacename="vlan70"} 3 monitordnetworkdipv6addressstate{interfacename="wg0"} 3
monitordnetworkdmanaged_interfaces 6
monitordnetworkdoperstate{interfacename="eno4"} 9 monitordnetworkdoperstate{interfacename="ens2f0"} 2 monitordnetworkdoperstate{interfacename="spectrum"} 9 monitordnetworkdoperstate{interfacename="vlan69"} 9 monitordnetworkdoperstate{interfacename="vlan70"} 9 monitordnetworkdoperstate{interfacename="wg0"} 9
monitordnetworkdrequiredforonline{interfacename="eno4"} 1 monitordnetworkdrequiredforonline{interfacename="ens2f0"} 0 monitordnetworkdrequiredforonline{interfacename="spectrum"} 1 monitordnetworkdrequiredforonline{interfacename="vlan69"} 1 monitordnetworkdrequiredforonline{interfacename="vlan70"} 1 monitordnetworkdrequiredforonline{interfacename="wg0"} 1
monitordunitsactive_units 425
monitordunitsautomount_units 1
monitordunitsfailed_units 2
monitordunitsinactive_units 157
monitordunitsjobs_queued 0
monitordunitsloaded_units 519
monitordunitsmasked_units 25
monitordunitsmount_units 52
monitordunitsnotfoundunits 38
monitordunitspath_units 4
monitordunitsscope_units 18
monitordunitsservice_units 200
monitordunitsslice_units 7
monitordunitssocket_units 28
monitordunitstarget_units 54
monitordunitstimer_units 20
monitordunitstotal_units 584 ```
To do test runs (requires systemd
and optionally systemd-networkd
installed)
cargo run -- -p 1234 -v
-v
for debug logging-p
> 1024 to run as non root / with capabilitiesEnsure the following pass before submitting a PR (CI checks):
cargo test
cargo clippy
cargo fmt