v2.5.0 ships log pipelines, an alert noise-reduction engine, and cross-service metric correlation; SQL aggregation is 40% faster, plus fixes for arm64 timezone and Collector memory leaks, with upgrade steps.
This release upgrades logs from "stored and searchable" to "processable and routable":
Pipelines use declarative YAML with hot reload — no collector restart. An example that splits nginx access logs into fields:
pipelines:
- name: nginx-access
match: source == "nginx"
steps:
- parse:
format: regex
pattern: '^(?P<ip>\S+) .* "(?P<method>\S+) (?P<request_uri>\S+)" (?P<status>\d+) .* (?P<upstream_time>\S+)$'
- mask:
fields: [ip]
The config applies to new logs immediately after saving; existing logs are not back-filled.
The noise-reduction engine works in two layers. The first deduplicates identical alerts from the same source within a configurable window (default five minutes), so a flapping threshold sends one notification instead of forty. The second applies suppression rules: when a P0 or P1 alert is active, lower-severity alerts from the same service are held until it clears. Both layers are configurable per tenant, and the dedup window, silence windows, and suppression relationships are all set in YAML, not hard-coded.
The v2.6.0 milestone is focused on three things. First, anomaly detection on metrics: a baseline learned per service and per hour, so alerts fire on deviation rather than fixed thresholds. Second, a logs-to-metrics pipeline so you can turn high-cardinality log fields into counters and gauge series directly from the collector, cutting storage for logs you only ever query as numbers. Third, better multi-tenant isolation for managed-service and platform-team deployments — per-tenant quotas and data retention policies.
If you rely on the legacy alert syntax or the v1 log API, now is the time to migrate; both are scheduled for removal. As always, the full, continuously-updated changelog lives on the docs site, and the upgrade script is the supported path for every version.
From v2.4.x:
./upgrade.sh --version 2.5.0
The script backs up config and metadata automatically; data directories stay in place. Recommended order: upgrade the query layer, then collectors, then the alert module — all rolling with no write interruption. Validate pipeline config syntax in staging before pushing to production.
Before the production cutover, run the upgrade against a staging clone and replay a day of production traffic through the pipeline to confirm field extraction and masking behave as expected. The pipeline syntax is validated on save, but validation catches syntax, not semantics — a regex that parses your staging logs but not production's edge cases will only show up under real traffic.
Known issue: upgrading directly from v2.4.0 or earlier requires a one-time manual migration of custom alert rules (the script provides a migrate-alerts subcommand). Run it on a single node only — repeating it duplicates the rules. The full changelog is on the docs site.