Self-heal device= → ifindex attribution and expose plugin meta counters in the scrape. ipng_stats_rescan_interval (default 60s, 0 to disable) runs a per-worker timer that re-resolves every binding via if_nametoindex, so interface teardown/recreate (e.g. GRE tunnel reprovision) picks up the new ifindex without requiring an nginx reload. nginx_ipng_ifindex_misses_total increments whenever a cmsg-reported ingress ifindex doesn't match any binding — making stale mappings observable. Also expose the existing zone_full_events and flushes_total shared-memory counters, which were tracked but never emitted. JSON output gains a top-level "meta" object; schema stays at 2 (additive change). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
74 lines
3.0 KiB
Plaintext
74 lines
3.0 KiB
Plaintext
nginx-ipng-stats-plugin (0.7.0-1) unstable; urgency=medium
|
|
|
|
* Pre-release v0.7.0.
|
|
- New ipng_stats_rescan_interval directive (default 60s, 0 to
|
|
disable). Per-worker timer that re-resolves every device= →
|
|
ifindex mapping, self-healing attribution after interface
|
|
teardown/recreate without requiring nginx -s reload.
|
|
- New nginx_ipng_ifindex_misses_total counter: connections whose
|
|
ingress ifindex didn't match any configured binding. Surfaces
|
|
stale mappings and genuinely-unconfigured interfaces.
|
|
- Expose the existing nginx_ipng_zone_full_events_total and
|
|
nginx_ipng_flushes_total meta counters in both the Prometheus
|
|
and JSON scrape outputs. JSON gains a top-level "meta" object
|
|
alongside "records" (schema unchanged, additive).
|
|
|
|
-- Pim van Pelt <pim@ipng.ch> Sat, 18 Apr 2026 19:36:36 +0200
|
|
|
|
nginx-ipng-stats-plugin (0.6.0-1) unstable; urgency=medium
|
|
|
|
* Pre-release v0.6.0.
|
|
|
|
-- Pim van Pelt <pim@ipng.ch> Sat, 18 Apr 2026 15:30:40 +0200
|
|
|
|
nginx-ipng-stats-plugin (0.5.0-1) unstable; urgency=medium
|
|
|
|
* Pre-release v0.5.0.
|
|
|
|
-- Pim van Pelt <pim@ipng.ch> Sat, 18 Apr 2026 14:38:25 +0200
|
|
|
|
nginx-ipng-stats-plugin (0.4.0-1) unstable; urgency=medium
|
|
|
|
* Pre-release v0.4.0.
|
|
|
|
-- Pim van Pelt <pim@ipng.ch> Sat, 18 Apr 2026 13:15:15 +0200
|
|
|
|
nginx-ipng-stats-plugin (0.3.0-1) unstable; urgency=medium
|
|
|
|
* Pre-release v0.3.0.
|
|
|
|
-- Pim van Pelt <pim@ipng.ch> Sat, 18 Apr 2026 11:47:26 +0200
|
|
|
|
nginx-ipng-stats-plugin (0.2.0-1) unstable; urgency=medium
|
|
|
|
* Reduce scrape cardinality.
|
|
- Status codes are collapsed to six class lanes
|
|
(1xx/2xx/3xx/4xx/5xx/unknown) on the counter key. Per-(source, vip)
|
|
counter cardinality is now bounded at six regardless of response mix.
|
|
- Histograms drop the code label entirely and aggregate across classes
|
|
per (source, vip).
|
|
- New nginx_ipng_latency_total counter (with code class label) exposes
|
|
per-class mean latency via latency_total / requests_total.
|
|
- New nginx_ipng_bytes_in and nginx_ipng_bytes_out histograms; bucket
|
|
bounds configurable via the new ipng_stats_byte_buckets directive.
|
|
- JSON schema bumped to 2. Records are now per-(source, vip) with an
|
|
inner `classes` map.
|
|
- Operators needing per-three-digit-code breakdowns should consume
|
|
ipng_stats_logtail off-host; the stats zone intentionally trades
|
|
that resolution for a smaller, bounded scrape.
|
|
|
|
-- Pim van Pelt <pim@ipng.ch> Fri, 17 Apr 2026 12:36:57 +0000
|
|
|
|
nginx-ipng-stats-plugin (0.1.0-1) unstable; urgency=medium
|
|
|
|
* Initial release.
|
|
- ngx_http_ipng_stats_module: per-VIP, per-device HTTP traffic
|
|
counters, attributed via SO_BINDTODEVICE on per-interface
|
|
listening sockets, exposed as Prometheus text and JSON from a
|
|
single scrape endpoint.
|
|
- Debian package libnginx-mod-http-ipng-stats builds against the
|
|
target release's nginx-dev headers with --with-compat and loads
|
|
into stock upstream nginx without recompiling nginx itself.
|
|
|
|
-- Pim van Pelt <pim@ipng.ch> Thu, 16 Apr 2026 00:00:00 +0000
|