wireguard_exporter

command module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 18, 2020 License: Apache-2.0 Imports: 10 Imported by: 0

README

WireGuard Exporter

Simple wireguard exporter written in go, mainly to practice some more go. Inspired by these two wireguard exporters [rust, go] as well as the main exporter structure based on the node_exporter

The exporter will add friendly names labels to the metrics if a CSV file of publickey,name is provided. See here for an example of the file.

Usage

The usage closely follows that of node_exporter:

Usage: wireguard_exporter

Flags:
  -h, --help                                   Show context-sensitive help.
      --web.listen-address=":9586"             Address on which to expose metrics and web interface.
      --web.telemetry-path="/metrics"          Path under which to expose metrics.
      --web.disable-exporter-metrics           Exclude metrics about the exporter itself (promhttp_*, process_*, go_*).
      --web.config=STRING                      [EXPERIMENTAL] Path to config yaml file that can enable TLS or authentication.
      --web.max-requests=2                     Maximum number of parallel scrape requests. Use 0 to disable.
      --wireguard.friendly-name-file=STRING    Path to public key to name mapping file.
      --log.level="info"                       Only log messages with the given severity or above. One of: [debug, info, warn, error]
      --log.format="logfmt"                    Output format of log messages. One of: [logfmt, json]
      --version                                Show application version.

Exposed metrics

wireguard_build_info - Just standard version info

wireguard_latest_handshake_seconds - Unix time of the last handshake with the client

wireguard_received_bytes_total - Number of bytes the server has recieved from the peer.

wireguard_sent_bytes_total - Number of bytes the server sent to the peer.

# HELP wireguard_build_info A metric with a constant '1' value labeled by version, revision, branch, and goversion from which wireguard was built.
# TYPE wireguard_build_info gauge
wireguard_build_info{branch="HEAD",goversion="go1.14.2",revision="72c960fd6cf36d9fdce91384a991b1d7dfa164e9",version="v0.0.0-SNAPSHOT-72c960f"} 1
# HELP wireguard_latest_handshake_seconds Seconds from the last handshake
# TYPE wireguard_latest_handshake_seconds gauge
wireguard_latest_handshake_seconds{friendly_name="",interface="wg0",public_key="00mEv1wMyzVFO/Hrt++uWlziR2ZChW5hf1N6ZxrrGRw="} 1.600419993e+09
# HELP wireguard_received_bytes_total Bytes received from the peer
# TYPE wireguard_received_bytes_total counter
wireguard_received_bytes_total{friendly_name="",interface="wg0",public_key="00mEv1wMyzVFO/Hrt++uWlziR2ZChW5hf1N6ZxrrGRw="} 1.33991636e+08
# HELP wireguard_sent_bytes_total Bytes sent to the peer
# TYPE wireguard_sent_bytes_total counter
wireguard_sent_bytes_total{friendly_name="",interface="wg0",public_key="00mEv1wMyzVFO/Hrt++uWlziR2ZChW5hf1N6ZxrrGRw="} 2.587097504e+09

TODO

  • Add badges :D
  • Add systemd unit file
  • look at tests

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL