Skip to content
Prometheus exporter for Unbound DNS resolver
Rust Dockerfile HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github
assets MVP Feb 7, 2020
benches
fuzz
src
.dockerignore
.editorconfig
.gitignore
.rustfmt.toml
COMPARISON.md
Cargo.lock
Cargo.toml
Dockerfile
LICENSE-MIT
README.md Link to Grafana dashboard Feb 7, 2020

README.md

unbound-telemetry

Logo

Coverage Status MIT licensed Minimum rustc version

Unbound DNS resolver metrics exporter for Prometheus

Features

  • Communicates with unbound via TLS, UDS socket or shared memory
  • Compatible with kumina/unbound_exporter; your dashboard should just work
  • Small binary size (~2 Mb after strip) and memory footprint (~10 Kb)
  • Takes ~10 ms to respond with gathered metrics
  • Blazing fast!

Platform support

This project is developed, manually and automatically tested with Linux.

Following platforms are tested in the CI environment and expected to work:

  • Windows
  • FreeBSD
  • NetBSD
  • macOS

OpenBSD is not tested right now, but it might work also.

Note that communication via UDS socket or shared memory is not supported for Windows.

Installation

From sources

  1. Rust language compiler version >= 1.39 is required
  2. Clone the repository
  3. Run the following command
    $ cargo build --release
  4. Get the compiled executable from the ./target/release/unbound-telemetry

Usage

HTTP interface is available at http://0.0.0.0:9167 by default and can be changed via CLI arguments.

TLS socket

First of all, enable remote-control option in the unbound.conf, configure control interface address and TLS if needed.

Run the following command to see possible flags and options:

$ unbound-telemetry tls --help

Unix domain socket

Similar to TLS socket, you need to enable remote-control option first.

Run the following command to see possible flags and options:

$ unbound-telemetry uds --help

Shared memory

Enable shm-enable option in the unbound.conf and run the following command:

$ unbound-telemetry shm --help

Monitoring

/healthcheck URL can be used for automated monitoring; in case when exporter is not able to access the unbound instance, HTTP 500 error will be returned, response body will contain plain text error description.

Grafana

This Grafana dashboard can be used to show all metrics provided by this exporter.

License

unbound-telemetry is released under the MIT License.

Donations

If you appreciate my work and want to support me or this project, you can do it here.

You can’t perform that action at this time.