diff --git a/site/dashboard.html b/site/dashboard.html index f600a0a..a0434a1 100644 --- a/site/dashboard.html +++ b/site/dashboard.html @@ -873,6 +873,7 @@ async function refresh() { document.getElementById('totalQueries').textContent = formatNumber(q.total); document.getElementById('uptime').textContent = formatUptime(stats.uptime_secs); document.getElementById('uptimeSub').textContent = formatUptimeSub(stats.uptime_secs); + document.getElementById('footerUpstream').textContent = stats.upstream || ''; document.getElementById('overrideCount').textContent = stats.overrides.active; document.getElementById('blockedCount').textContent = formatNumber(q.blocked); const bl = stats.blocking; @@ -1150,7 +1151,8 @@ setInterval(refresh, 2000);
- Logs: macOS: /usr/local/var/log/numa.log · Linux: journalctl -u numa -f + Upstream: + · Logs: macOS: /usr/local/var/log/numa.log · Linux: journalctl -u numa -f · GitHub
diff --git a/src/api.rs b/src/api.rs index 0c6bc54..b3ae490 100644 --- a/src/api.rs +++ b/src/api.rs @@ -126,6 +126,7 @@ struct QueryLogResponse { #[derive(Serialize)] struct StatsResponse { uptime_secs: u64, + upstream: String, queries: QueriesStats, cache: CacheStats, overrides: OverrideStats, @@ -435,8 +436,11 @@ async fn stats(State(ctx): State>) -> Json { let override_count = ctx.overrides.lock().unwrap().active_count(); let bl_stats = ctx.blocklist.lock().unwrap().stats(); + let upstream = ctx.upstream.lock().unwrap().to_string(); + Json(StatsResponse { uptime_secs: snap.uptime_secs, + upstream, queries: QueriesStats { total: snap.total, forwarded: snap.forwarded,