Skip to main content

Multi-target Prometheus exporter with an exclusive focus on DNS monitoring

Project description

Run Tox CI Documentation Status Ruff codecov PyPI version Docker Image Version (latest semver)

dns_exporter

dns_exporter is a multi-target Prometheus exporter with an exclusive focus on DNS monitoring. It is built on the excellent libraries dnspython and the Prometheus Python client library.

dns_exporter can be used to monitor availability and performance of DNS servers, and to validate the responses they return. It can monitor recursive and authoritative servers regardless of the software they run. You can use it to make sure your (or your providers) DNS servers are sending the replies you expect and configure Prometheus and Alertmanager to notify you if something stops working.

dns_exporter works similar to the Blackbox exporter where Prometheus asks the exporter to scrape the target, rather than the exporter itself being the target. This is called the Multi Target Exporter Pattern. It is typically used in black-box style exporters where 1) the thing you are monitoring is not under your control, or 2) you want to measure the path as well. Often when monitoring DNS both 1) and 2) are relevant.

This means that for each scrape Prometheus speaks HTTP to the dns_exporter which then speaks DNS with the target DNS server and returns the resulting metrics over HTTP to Prometheus. dns_exporter supports doing DNS queries over plain port 53 UDP and TCP, as well as DoT, DoH, DoH3, and DoQ.

Installation

dns_exporter is not yet in any OS package managers but installing dns_exporter can be done from pypi. This is the recommended way to install for now:

pip install dns_exporter

There is also a Docker image so you can get your container on:

docker run -p 15353:15353 tykling/dns_exporter:latest

There is also a Kubernetes Helm Chart (maintained by @christianhuth) available on ArtifactHUB.

Python Support

Python 3.10, 3.11, 3.12, 3.13 and 3.14 are fully supported. dns_exporter aims to follow the officially supported Python versions.

Documentation

The documentation is available on ReadTheDocs

Grafana Dashboard

There is a Grafana dashboard you can use as a starting point for your own dashboards.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dns_exporter-1.2.0b2.tar.gz (73.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dns_exporter-1.2.0b2-py3-none-any.whl (38.2 kB view details)

Uploaded Python 3

File details

Details for the file dns_exporter-1.2.0b2.tar.gz.

File metadata

  • Download URL: dns_exporter-1.2.0b2.tar.gz
  • Upload date:
  • Size: 73.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for dns_exporter-1.2.0b2.tar.gz
Algorithm Hash digest
SHA256 0cc994e5f5b7cbc5f5f422350b3dde123fba92508c0f5e7bfb02f1ecd502362e
MD5 8baeed20c18a019c8051f1ca2b25c25e
BLAKE2b-256 a803126d53257ef20955758f7c7dd035461afae27f7c9a3c82c6e9a202a0b57b

See more details on using hashes here.

Provenance

The following attestation bundles were made for dns_exporter-1.2.0b2.tar.gz:

Publisher: pypi.yml on tykling/dns_exporter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dns_exporter-1.2.0b2-py3-none-any.whl.

File metadata

  • Download URL: dns_exporter-1.2.0b2-py3-none-any.whl
  • Upload date:
  • Size: 38.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for dns_exporter-1.2.0b2-py3-none-any.whl
Algorithm Hash digest
SHA256 44bde53c46380c27fd1cc07a13d1a7354b9a8ec8fc5b87963d1335eb1c219f1c
MD5 a7ca7e95aa91673060d9f533ec324309
BLAKE2b-256 7b2be78887070eacef0d67bb84bb95b9fa958895f7fb0bc15a69877475db9cde

See more details on using hashes here.

Provenance

The following attestation bundles were made for dns_exporter-1.2.0b2-py3-none-any.whl:

Publisher: pypi.yml on tykling/dns_exporter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page