Dns-exporter

Latest version: v1.0.0

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

Scan your dependencies

Page 1 of 3

1.0.0

1.0.0 represents the first stable release of `dns_exporter`. Future changes (especially concerning metrics naming and labels) will follow semver rules regarding versioning. The goal is to never introduce dashboard breaking changes to metrics without bumping the major version.

The details about all the changes through the pre-releases are included below, but are probably only interesting if you have been using a pre-1.0 version. If you have existing dashboards with pre-1.0 data you will need to create new, seperate dashboards for 1.0 because the metrics have changed so much. You can use https://grafana.com/grafana/dashboards/20617-dns-exporter/ as a starting point for your own dashboards.

1.0.0rc4

Changed
- Remove wrong buckets on response time Histogram, replace with default buckets

1.0.0rc3

Fixed
- Catch `httpx.ConnectTimeout` from protocol `doh` as failure reason `timeout`

Changed
- Add more labels to the `dnsexp_scrape_failures_total` metric so it has all the same labels as `dnsexp_dns_query_time_seconds` in addition to the `reason` label.

1.0.0rc2

Fixed
- Always send Content-Length header for metrics responses
- Do not overwrite ``no_nsid`` placeholder if a blank NSID is received from server (to avoid blank labels)

Changed
- Add the ``monitor`` label in all examples, also the ones scraping internal metrics

1.0.0rc1

Changed
- Minimum supported DNSPython version is now 2.5.0
- Log at level warning when encountering an unknown failure
- Remove failure reason `connection_refused` and report it as `connection_error` along with the rest of socket related errors.
- Remove `dnsexp_failures_total` from per-scrape metrics. Failure reasons are now tracked only under `/metrics`.
- Switch from `http.server.HTTPServer` to `http.server.ThreadingHTTPServer`
- Add new failure reason `invalid_response_statuscode` for DoH failures.
- The default for the ``collect_ttl_rr_value_length`` has been changed from ``255`` to ``50`` to reduce label cardinality.
- Docs: Mention the importance of scraping internal metrics under ``/metrics``
- Docs: Mention adding a ``monitor`` label to identify the exporter in use, for setups where multiple instances of ``dns_exporter`` is running.
- Update unit tests for all of the above

Fixed
- Always send content-length header for static responses (100, thanks jcodybaker!)

1.0.0beta6

Added
- Unit tests for proxy code
- Unit tests for new code introduced to make ruff happy
- New `collect_ttl` setting to control collection of per-RR TTL metrics. Default is true.
- New `verify_certificate` bool setting to control validation of certificates on encrypted protocols. Default is true.
- New `verify_certificate_path` str setting to override the system CA when validating certificates on encrypted protocols. Leave empty to use the default system CA. Default is an empty string.

Changed
- Replace black, flake8, isort, pydocstyle with ruff
- Some refactoring to reduce complexity and ease testing
- Much linting
- Move coverage.py config to .coveragerc to make showing measurement contexts in coverage html work
- Proxy support for DoQ disabled, pending next dnspython release with https://github.com/rthalley/dnspython/pull/1060
- Improve unit tests
- Polish dockerhub action a bit (thanks dallemon!)
- Re-add custom histogram buckets for metric `dnsexp_dns_responsetime_sedonds` from 1 second doubling until 4194304 seconds (48 days).
- Build docs in `pre-commit` to avoid breaking them
- Include `protocol`, `server`, and `proxy` labels in the `dnsexp_scrape_failures_total` Counter metric.

Fixed
- Fixed a bug which made `fail_if_all_match_regexp` validation succeed on the first matching RR (not considering further RRs).

Page 1 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.