v2.3 adds alert grouping and deduplication, optimized native OTel protocol support, faster log queries, and broader Xinchuang platform support. Full changelog, upgrade steps, and compatibility notes inside.
JUJING OBSERVE v2.3 is out today. This release focuses on three things: stop alert spam, make OTel data actually usable, and make queries faster. Full changelog below.
Previously, ten disk alerts on one host produced ten notifications. v2.3 introduces alert grouping: multiple events from the same rule, grouped by the same dimensions (host, service, endpoint), collapse into a single notification that summarizes first-trigger time, the list of affected objects, and latest status.
group_by: [host, alertname]
group_wait: 30s
repeat_interval: 4h
We also added alert fingerprints. Repeated triggers with the same fingerprint update state without re-notifying; only a state change (firing → resolved, or an escalation) sends a new message. For teams using tiers, P2 alerts now default to a single hourly digest.
Previously OTLP data went through a conversion layer before ingestion. v2.3 parses OTLP/JSON and OTLP/Protobuf directly, cutting the latency from Collector to queryable by roughly 40%. Also new:
probabilistic sampling policy for rate-based sampling, so high traffic doesn't blow up storage.Log queries now use SIMD acceleration on aarch64, cutting aggregate-query P95 latency by about 35%. The archive tier gains hot/cold tiering on object storage: data older than 30 days moves to cold storage automatically, meaningfully lowering cost, while queries remain transparent (they span tiers automatically).
Fixes: the DM cursor-leak bug (pre-8.1.1) that caused occasional query stalls; excessive memory usage for dashboards over large time ranges; and several frontend display issues.
Upgrading from v2.2 is in-place; the database schema migrates automatically:
./upgrade.sh --from 2.2 --to 2.3
Notes:
Full docs and offline installers are updated on the download page; the Xinchuang (aarch64) build ships in lockstep.