v2.0.0
What's Changed
⚠️ Breaking Changes
This release introduces breaking changes (see #1121 and #1122):
- the multiplexer mode is removed, please to use the syntax with pipeline introduced since the v0.56 version.
- deprecated fields in tcp, fluentd, kafka, redis loggers are removed
🚀 Performance
This release introduces some important optimizations
- the DNS parsing core, focusing on reducing CPU overhead and memory pressure during high-traffic scenarios (>20k).
- the text formatting output now uses a reusable buffer pool, resulting in fewer memory allocations
- Stdout logger buffering logic has been improved to batch multiple DNS messages before writing to output, reducing the number of system calls and improving throughput.
💡 Enhancements
- feat(loki): improved the relabeling process to support Prometheus > v0.307 by @dmachard in #1136
- feat(stdout): reduce syscalls via buffered writer by @dmachard in #1125
- refactor(logfile): optimize logfile worker with bufio and fix rotation logic by @dmachard in #1126
- feat(loggers): remove deprecated fields in tcp, fluentd, kafka, redis loggers by @dmachard in #1122
- feat(dnsparser): optimize lookups and reduce allocations in ParseLabels by @dmachard in #1123
- feat(worker): add text buffer pool to optimize DNSMessage text formatting by @dmachard in #1124
- feat(elasticsearch): add retry and exponential backoff for bulk requests by @dmachard in #1119 #1120
- feat(worker): MQTT v3.11/v5 worker support by @shift in #1113
- feat(#976): kafka - add backoff algorithm for re-connect @dmachard in #1112
- feat(#936): dnstap - add latency_ms field derived from latency by @dmachard in #1117
- feat(#333): dnstap - handle query/response timestamps to compute latency when available
- chore: multiplexer mode removed by @dmachard in #1121
🔧 Bugfixes
- fix: correct swapped cache TTL and size default values by @alamin-mahamud in #1114
- fix(#973): kafka - refactor connect logic to fix auto-reconnect failure by @dmachard in #1112
- fix(workers): properly track discarded messages when remote side is not ready by @dmachard in #1115
📈 Dependency updates
- build(deps): bump github.com/IBM/fluent-forward-go from 0.3.0 to 0.4.0 by @dependabot[bot] in #1132
- build(deps): bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in #1135
- build(deps): bump actions/download-artifact from 6 to 7 by @dependabot[bot] in #1134
- build(deps): bump golang.org/x/net from 0.47.0 to 0.48.0 by @dependabot[bot] in #1133
- build(deps): bump github.com/miekg/dns from 1.1.68 to 1.1.69 by @dependabot[bot] in #1130
- build(deps): bump alpine from 3.22.2 to 3.23.2 by @dependabot[bot] in #1127
- build(deps): bump go.opentelemetry.io/otel/trace from 1.38.0 to 1.39.0 by @dependabot[bot] in #1131
- build(deps): bump golang from 1.25.4-alpine to 1.25.5-alpine by @dependabot[bot] in #1128
- chore(deps): refactor loki to support v3.6.3 by @dmachard in #1118
- build(deps): bump github.com/tinylib/msgp from 1.3.0 to 1.5.0 by @dependabot[bot] in #1106
- build(deps): bump github.com/prometheus/prometheus from 0.309.0 to 0.309.1 by @dependabot[bot] in #1129
New Contributors
- @shift made their first contribution in #1113
- @alamin-mahamud made their first contribution in #1114
Full Changelog: v1.14.0...v2.0.0