-
v0.0.6
StableRelease / guard (push) Successful in 22sGates / frontend (push) Successful in 1m30sGates / test (push) Successful in 1m50sGates / frontend (push) Successful in 1m9sGates / test-aarch64 (push) Successful in 6m55sGates / test (push) Successful in 1m34sGates / test-aarch64 (push) Successful in 6m9sGates / package (push) Successful in 3m49sGates / package (push) Successful in 32sGates / container (push) Successful in 15sCI / gates (push) Successful in 21m28sGates / container (push) Successful in 9sRelease / gates (push) Successful in 20m7sRelease / publish (push) Successful in 4m26sreleased this
2026-08-17 16:49:01 +00:00 | 72 commits to master since this releaseThe period picker now scopes the whole dashboard. The upstream table was the last widget that ignored it, and fixing that meant recording upstream outcomes over time instead of counting them since boot. Read the query-log note below before you upgrade.
Added
- Four metrics for the new upstream-history recorder:
nxdns_upstream_history_flushes_total,nxdns_upstream_history_flush_failures_total,nxdns_upstream_history_rows_dropped_totaland thenxdns_upstream_history_pendinggauge. While a flush to the database keeps failing,GET /api/healthreportsdegraded; it recovers on the next flush that succeeds.
Changed
- Upstream health answers for the selected period. The dashboard's upstream table used to print counters accumulated since process start beside a success rate taken over the last 32 exchanges, which is how "63 failures" and "100.0% success rate" ended up in the same row under a period picker that scoped nothing there. Every upstream outcome is now aggregated into its wall-clock minute and written to
querylog.db, andGET /api/upstream/health?period=…serves the selected window: attempts, failures, success rate, and the last failure with its error name, all inside the period, from 31 days of history. A window with no attempts reports no success rate at all instead of a perfect one, and the table shows an em-dash. The in-memory health state that drives failover and backoff is unchanged, as are its/metricsseries. GET /api/upstream/healthchanged shape. Gone from each upstream:consecutive_failures,total_successes,total_failures, the last-32success_rate,last_errorandlast_error_age_s. Each upstream keepsurl,enabledandavailableand gains aperiodobject with the ranged numbers; the body gainsperiod,since,untiland acompleteflag that says whether any outcome was known to be dropped inside the window. The removed counters are still exported by/metricsunder their existing names. On the dashboard the "Right now" section is gone with them: the upstream table rejoined the ranged part of the page, and the disk card, the one live widget left, is titled "Storage now".- The query log is recreated on upgrade. Recording upstream history added two tables to the
querylog.dbschema, and its fingerprint check refuses a database that does not match the shipped definition. On first start this version renames the existingquerylog.dbaside asquerylog.db.corrupt-<unix seconds>in the data directory and creates a fresh one, so query history and stats restart empty. The renamed file is left in place rather than deleted, so removing it is your call.config.dbis untouched: no configuration is lost.
Artifacts
9688a59a5307429e893bb6cde2cf965cf44721d609971fe67b7e73f91003a7e1 nxdns-0.0.6-x86_64-linux-musl.tar.gz 95a4d702da2eec905673205102d6787275d0ff7dc3031aa23304659bca89ee9f nxdns-0.0.6-aarch64-linux-musl.tar.gz 6dade19c7693084ab7ddd0af2e5643fb64ed2597b452c3b6e5ee089aeb2e3ce3 IMAGE-DIGEST.txtgit.mial.net/mokhtar/nxdns:0.0.6@sha256:20076be836bc13a56e0a14cf3b9f5ca829ba41f9051ad2c66b2afdf95ce2cca4Commits since v0.0.5
377f00a changelog: 0.0.6 releases today e0a7cd8 milestone 26: upstream health answers for the selected periodDownloads
- Four metrics for the new upstream-history recorder: