v2.4 adds alert silence windows and group suppression, per-service trace sampling, Xinchuang adaptations for GBase 8a, UOS and Kylin V10 SP3, plus upgrade guidance.
JJHub OBSERVE v2.4 is out. This release focuses on three areas: alert noise reduction, tracing sampling control, and additional Xinchuang component adaptations. Here are the headline changes; existing users should skim the upgrade notes at the end before rolling out.
Alert storms are one of the worst parts of on-call. A single flaky core node can fire hundreds of alerts in seconds, drowning the ones that matter. v2.4 adds two capabilities:
Silence windows: schedule a silence for an alert rule — for example, between 3am and 4am when batch jobs run, CPU alerts automatically downgrade to log-only with no notification. Configure it on the rule detail page with a cron expression:
silence:
cron: "0 3 * * *"
duration: 1h
action: log
action supports log (record but don't notify) and drop (produce no alert event at all). Start with log, watch it for a while, and only then decide whether to switch to drop.
Group suppression: multiple alerts from the same root cause collapse into one. The system groups by "service + error type", notifies on the first alert, folds subsequent ones into an incrementing count, and sends one summary notification on recovery. This is especially useful for the classic "one database dies and dozens of endpoints all alert at once". The incrementing count shows up as a badge on the alert, so on-call can tell at a glance whether a single incident is still spreading or has stabilized.
Sampling was previously 100% head-based, which is fine for low-traffic services but wasteful and costly for high-traffic ones. v2.4 adds per-service sampling policies:
sampling:
service: order-service
strategy: parentbased_traceidratio
ratio: 0.1
rules:
- match: "http.route == /pay/**"
ratio: 1.0
This keeps 100% sampling on the /pay/** payment path and 10% everywhere else. Rules match on span attributes and are evaluated in order, first match wins — enough to cover "sample all critical paths, sample some of the rest".
Sampling is enforced at the collection layer, so no service restart is needed after changing the policy; the Agent picks it up on its next sampling cycle.
v2.4 adds three items on the Xinchuang front:
Beyond the three headline areas, this release ships a batch of smaller improvements:
On the fix side, 12 known issues are resolved. One is an occasional query timeout on large time ranges — we recommend upgrading sooner rather than later — and another was slow alert-history queries on the Dameng backend. Several smaller fixes address memory growth in the trace store and flaky eBPF probing under sustained load.
The upgrade path is unchanged, with about ten minutes of downtime:
./bin/observe-server upgrade v2.4.0.tar.gz
Two compatibility notes: the alert rule export format has changed, so rules exported from older versions need a one-time migration through the tool in tools/; and v2.3 client SDKs still report normally, so no forced client upgrade — though the new sampling features only take effect on v2.4 Agents.
See the release page for the full changelog, and report issues in the community.