github dmachard/DNS-collector v2.6.0-beta7

41 minutes ago

This release introduces major performance, scalability, and security improvements:

  • ~40% lower memory footprint across the DNStap collector, wire-DNS decoders, and JSON serialization.
  • Optional multi-worker pool (num-workers) for improved high-throughput scalability.
  • New fast direct Wire DNSTap decoder
  • Distroless runtime image for a smaller Docker image and reduced attack surface.
  • Channel DNS message batching across all workers to increase throughput

⚠️ Deprecations

  • Worker Queue Configuration: The legacy per-worker chan-buffer-size setting is deprecated in favor of global.worker.buffer-size (default: 512) and global.worker.batch-size (default: 64). A non-blocking deprecation warning is logged if legacy options are detected.

💡 Enhancements

  • feat(dnstap): zero-alloc Protobuf wire decoder for DNSTap collector by @dmachard in #1302
  • perf(dnsutils,workers): native binary IP representation with zero-allocation lazy formatting by @dmachard in #1303
  • feat: add UPX compression for linux, darwin and freebsd release binaries by @dmachard in #1300
  • feat(docker): switch runtime image to distroless/static-debian13 with UPX compression by @dmachard in #1301
  • perf(dnsutils): fast direct JSON encoder & modular transformer encoding by @dmachard in #1296
  • perf(dnsutils,workers): precompile text formatter with opcode dispatch by @dmachard in #1297
  • perf(dnsutils): add zero-alloc fast-path for uncompressed DNS question decoding by @dmachard in #1298
  • perf(collectors,workers): add lazy timestamp formatting by @dmachard in #1299
  • perf(workers): optimize flat-json encoding across loggers and add benchmarks by @dmachard in #1294
  • perf(workers): update worker telemetry channels with atomic counters by @dmachard in #1295
  • perf(prom-collector): optimize prometheus metrics using atomic counters by @dmachard in #1293
  • perf(dnsutils): optimize memory and CPU by using DNSMessage pointers by @dmachard in #1291
  • perf(dnstap collector): add configurable worker pool for high-throughput scalability by @dmachard in #1289
  • perf(dnsutils): optimize JSON serialization and DNS decoder by @dmachard in #1290
  • perf(dnstap collector): add configurable socket read buffer size by @dmachard in #1288
  • perf(dnstap collector): optimize processor hot path allocations and enum lookups by @dmachard in #1287

Full Changelog: v2.5.0...v2.6.0-beta7

Don't miss a new DNS-collector release

NewReleases is sending notifications on new releases.