monitord-exporter

Tell prometheus how happy your systemd is ! 😊

A prometheus exporter using monitord to export statistic to prometheus collectors.

Install

Install via cargo.

```console $ monitord-exporter --help prometheus exporter to share how happy your systemd is ! 😊

Usage: monitord-exporter [OPTIONS]

Options: -d, --dbus-address dbus address

      [default: unix:path=/run/dbus/system_bus_socket]

-n, --networkd-state-file-path network netif dir

      [default: /run/systemd/netif/links]

-p, --port TCP Port to listen on

      [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 ```

Example Output

```console

TYPE monitordnetworkdaddress_state gauge

monitordnetworkdaddressstate{interfacename="eno4"} 3 monitordnetworkdaddressstate{interfacename="ens2f0"} 1 monitordnetworkdaddressstate{interfacename="spectrum"} 3 monitordnetworkdaddressstate{interfacename="vlan69"} 3 monitordnetworkdaddressstate{interfacename="vlan70"} 3 monitordnetworkdaddressstate{interfacename="wg0"} 3

HELP monitordnetworkdadmin_state Is the interface configured to be operational (Double check)

TYPE monitordnetworkdadmin_state gauge

monitordnetworkdadminstate{interfacename="eno4"} 4 monitordnetworkdadminstate{interfacename="ens2f0"} 3 monitordnetworkdadminstate{interfacename="spectrum"} 4 monitordnetworkdadminstate{interfacename="vlan69"} 4 monitordnetworkdadminstate{interfacename="vlan70"} 4 monitordnetworkdadminstate{interfacename="wg0"} 4

HELP monitordnetworkdcarrier_state Does the link have physical signal or not

TYPE monitordnetworkdcarrier_state gauge

monitordnetworkdcarrierstate{interfacename="eno4"} 5 monitordnetworkdcarrierstate{interfacename="ens2f0"} 1 monitordnetworkdcarrierstate{interfacename="spectrum"} 5 monitordnetworkdcarrierstate{interfacename="vlan69"} 5 monitordnetworkdcarrierstate{interfacename="vlan70"} 5 monitordnetworkdcarrierstate{interfacename="wg0"} 5

HELP monitordnetworkdipv4addressstate Deprecated IP on the interface operational state

TYPE monitordnetworkdipv4addressstate gauge

monitordnetworkdipv4addressstate{interfacename="eno4"} 3 monitordnetworkdipv4addressstate{interfacename="ens2f0"} 1 monitordnetworkdipv4addressstate{interfacename="spectrum"} 3 monitordnetworkdipv4addressstate{interfacename="vlan69"} 3 monitordnetworkdipv4addressstate{interfacename="vlan70"} 1 monitordnetworkdipv4addressstate{interfacename="wg0"} 3

HELP monitordnetworkdipv6addressstate IPv6 on the interface operational state

TYPE monitordnetworkdipv6addressstate gauge

monitordnetworkdipv6addressstate{interfacename="eno4"} 2 monitordnetworkdipv6addressstate{interfacename="ens2f0"} 1 monitordnetworkdipv6addressstate{interfacename="spectrum"} 3 monitordnetworkdipv6addressstate{interfacename="vlan69"} 3 monitordnetworkdipv6addressstate{interfacename="vlan70"} 3 monitordnetworkdipv6addressstate{interfacename="wg0"} 3

HELP monitordnetworkdmanaged_interfaces Count of interfaces networkd manages

TYPE monitordnetworkdmanaged_interfaces gauge

monitordnetworkdmanaged_interfaces 6

HELP monitordnetworkdoper_state Interface overall operational state

TYPE monitordnetworkdoper_state gauge

monitordnetworkdoperstate{interfacename="eno4"} 9 monitordnetworkdoperstate{interfacename="ens2f0"} 2 monitordnetworkdoperstate{interfacename="spectrum"} 9 monitordnetworkdoperstate{interfacename="vlan69"} 9 monitordnetworkdoperstate{interfacename="vlan70"} 9 monitordnetworkdoperstate{interfacename="wg0"} 9

HELP monitordnetworkdrequiredforonline Bool state of systemd being configured to wait for this interface to come online before network online target.

TYPE monitordnetworkdrequiredforonline gauge

monitordnetworkdrequiredforonline{interfacename="eno4"} 1 monitordnetworkdrequiredforonline{interfacename="ens2f0"} 0 monitordnetworkdrequiredforonline{interfacename="spectrum"} 1 monitordnetworkdrequiredforonline{interfacename="vlan69"} 1 monitordnetworkdrequiredforonline{interfacename="vlan70"} 1 monitordnetworkdrequiredforonline{interfacename="wg0"} 1

HELP monitordunitsactive_units Count of all active units

TYPE monitordunitsactive_units gauge

monitordunitsactive_units 425

HELP monitordunitsautomount_units Count of all automount units

TYPE monitordunitsautomount_units gauge

monitordunitsautomount_units 1

HELP monitordunitsdevice_units Count of device units

TYPE monitordunitsdevice_units gauge

HELP monitordunitsfailed_units Count of failed units - delete or fix

TYPE monitordunitsfailed_units gauge

monitordunitsfailed_units 2

HELP monitordunitsinactive_units Count of inactive units

TYPE monitordunitsinactive_units gauge

monitordunitsinactive_units 157

HELP monitordunitsjobs_queued systemd jobs queued - Add what a job is ...

TYPE monitordunitsjobs_queued gauge

monitordunitsjobs_queued 0

HELP monitordunitsloaded_units Count of loaded units

TYPE monitordunitsloaded_units gauge

monitordunitsloaded_units 519

HELP monitordunitsmasked_units Count of masked units

TYPE monitordunitsmasked_units gauge

monitordunitsmasked_units 25

HELP monitordunitsmount_units Count of mount units

TYPE monitordunitsmount_units gauge

monitordunitsmount_units 52

HELP monitordunitsnotfoundunits Count of not found units

TYPE monitordunitsnotfoundunits gauge

monitordunitsnotfoundunits 38

HELP monitordunitspath_units Count of path units

TYPE monitordunitspath_units gauge

monitordunitspath_units 4

HELP monitordunitsscope_units Count of scope units

TYPE monitordunitsscope_units gauge

monitordunitsscope_units 18

HELP monitordunitsservice_units Count of service units

TYPE monitordunitsservice_units gauge

monitordunitsservice_units 200

HELP monitordunitsslice_units Count of slice units

TYPE monitordunitsslice_units gauge

monitordunitsslice_units 7

HELP monitordunitssocket_units Count of socket units

TYPE monitordunitssocket_units gauge

monitordunitssocket_units 28

HELP monitordunitstarget_units Count of target units

TYPE monitordunitstarget_units gauge

monitordunitstarget_units 54

HELP monitordunitstimer_units Count of timer units

TYPE monitordunitstimer_units gauge

monitordunitstimer_units 20

HELP monitordunitstotal_units Count of total systemd units

TYPE monitordunitstotal_units gauge

monitordunitstotal_units 584 ```

Development

To do test runs (requires systemd and optionally systemd-networkd installed)

Ensure the following pass before submitting a PR (CI checks):