Dns-exporter

Latest version: v1.1.0

Safety actively analyzes 723217 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 4

1.1.0

-------------------

1.1.0beta4

-------------------------

Changed
~~~~~~~

- Better metadata for Docker image builds

1.1.0beta3

-------------------------

Fixed
~~~~~

- Docker image workflow was broken for some platforms

1.1.0beta2

-------------------------

Changed
~~~~~~~

- Update linters in ``.pre-commit-config.yaml`` and fix new linting issues
- Convert CHANGELOG.md to CHANGELOG.rst and include in sphinx build/RTD
- Rework Dockerfile, push images to both Dockerhub and Github

1.1.0beta1

---------------------------

Added
~~~~~

- DNS-over-HTTP3 support: New protocol ``doh3`` was added for doing
DNS-over-QUIC wrapped in HTTP3, aka DNS-over-HTTP3.
- Digestabot introduced to keep docker image digests up-to-date.
- Proxy support for DoQ and DoH3. Issue 96.

Changed
~~~~~~~

- Bump dnspython dependency minimum version to 2.7.0
- Pass custom CA path as ssl.SSLContext for DoH2 requests to silence
httpx DeprecationWarning
- Refactor verify logic into new seperate methods ``get_tls_context()``
and ``get_tls_verify()``
- Verify that the configured ``verify_certificate_path`` exists in the
filesystem, raise ConfigError if not.
- Improve certificate related unit tests (parametrize and add more
tests)
- Move ``test_internal_metrics()`` test to seperate file, write metrics
to temp file to ease debugging when the test breaks (which happens
often).
- Update and simplify Dockerfile
- Move coverage.py, pytest and tox config to ``pyproject.toml``.

Fixed
~~~~~

- Docs url in package metadata (used for example in PyPi sidebar).
Issue 11.
- Make unit tests, mypy and linters happy after DoH3 addition.
- Re-enable custom CA path support for DoQ. Only works with a CA file,
not with a CA dir, for now (132).
- Socket reuse bug introduced with proxy support for QUIC based
protocols.

1.0.0

many internal changes. It also enables DoQ support. Most stuff should
work as it did before 1.0.0 though.

The metrics exposed under /query (per-scrape metrics) are now:

- dnsexp_dns_query_time_seconds (Gauge, unchanged)
- dnsexp_dns_query_success (Gauge, unchanged)
- dnsexp_dns_response_rr_ttl_seconds (Gauge, unchanged)
- dnsexp_failures_total (Counter, renamed and changed from Enum)

The metrics exposed under /metrics (persistent exporter-internal
metrics) are now:

- dnsexp_build_version (Info, unchanged)
- dnsexp_http_requests_total (Counter, unchanged)
- dnsexp_http_responses_total (Counter, unchanged)
- dnsexp_dns_queries_total (Counter, unchanged)
- dnsexp_dns_responsetime_seconds (Histogram, renamed and changed from
Counter)
- dnsexp_scrape_failures_total (Counter, renamed and got a reason
label)

Further changes are mostly technical details.

Added
~~~~~

- RELEASE.md file describing how to do a release
- ``build`` module to the ``dev`` extras in ``pyproject.toml``
- Python 3.12 support
- Automatic DockerHub upload of containers when new releases are tagged
- Automatic PyPi upload of packages when new releases are tagged

Changed
~~~~~~~

- Delete the ``develop`` branch, ``main`` is the new default branch.
Update ``RELEASE.md`` to reflect the change.
- Update some development dependencies
- Major refactor: move DNS lookup to a custom
``prometheus_client.registry.Collector`` class in ``collector.py``

Fixed
~~~~~

- DNS over QUIC support now works. Default port is 853 as per
https://www.rfc-editor.org/rfc/rfc9250.html#name-port-selection

Page 1 of 4

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.