You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Replace the always-connected DogStatsD stats destination with a shared lazy collector. The /dogstatsd/stats API remains available, but normal DogStatsD ingest no longer fans out every metric batch into a stats-only topology destination.
What changed
Added DogStatsDStatsCollector with an atomic inactive fast path and mutex-protected active collection state.
Wired the collector into the DogStatsD source so decoded metric events are recorded only when a stats request is active.
Removed the permanent dsd_stats_out destination and topology connection.
Added collector unit tests and DogStatsD source wiring coverage.
Why
The previous topology connected dsd_stats_out as a second consumer of dsd_in.metrics, which forced dispatcher fanout cloning on normal DogStatsD traffic even when no stats request was collecting. This keeps the API available while reducing normal hot-path work to an inactive atomic check.
cargo nextest run -p saluki-components (584 passed, 1 skipped)
make fmt
git diff --check
make check-all reached formatting and Clippy successfully, then stopped because local vale is not installed: Please install Vale: https://vale.sh/docs/install
Semantic PR Title Check | Check For Semantic PR Title
🛟 This job is unlikely to succeed on retry. Please review your pipeline configuration.
No release type found in pull request title. Add a prefix to indicate the type of release.
Run ID:e40dc9d8-a48e-4254-b856-386dbd95c4ea Baseline:54dc37e7 · Comparison:21754377 · diff
Optimization Goals: ✅ No significant changes detected
Fine details of change detection per experiment (35)
Experiments configured erratic: true are tagged (ignored) and skipped when determining which experiments regressed or improved. Experiments which are detected as erratic at runtime are tagged (erratic) to flag that the run's sample dispersion was high, but their regression / improvement signal still counts.
A change is flagged as a regression when |Δ mean %| > 5.00% in the regressing direction for its optimization goal AND SMP marks the experiment as a regression (is_regression: true). Improvements use the matching criteria for the improving direction. Experiments configured erratic: true (tagged (ignored)) are skipped outright; experiments detected as erratic at runtime (tagged (erratic)) still count, since that flag describes sample dispersion rather than directional certainty. The Δ mean % cell is colored accordingly: 🟢 = improvement, 🔴 = regression, ⚪ = neutral. Reduction in CPU or memory is an improvement; reduction in ingress throughput is a regression.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Replace the always-connected DogStatsD stats destination with a shared lazy collector. The
/dogstatsd/statsAPI remains available, but normal DogStatsD ingest no longer fans out every metric batch into a stats-only topology destination.What changed
DogStatsDStatsCollectorwith an atomic inactive fast path and mutex-protected active collection state./dogstatsd/statsresponse behavior, max-duration validation,429 AlreadyRunning, and cancellation cleanup.dsd_stats_outdestination and topology connection.Why
The previous topology connected
dsd_stats_outas a second consumer ofdsd_in.metrics, which forced dispatcher fanout cloning on normal DogStatsD traffic even when no stats request was collecting. This keeps the API available while reducing normal hot-path work to an inactive atomic check.Validation
cargo check --workspace && cargo check --workspace --testscargo nextest run -p saluki-components(584 passed,1 skipped)make fmtgit diff --checkmake check-allreached formatting and Clippy successfully, then stopped because localvaleis not installed:Please install Vale: https://vale.sh/docs/install