Conversation
Binary Size Analysis (Agent Data Plane)Baseline: 216e499 · Comparison: effc81a · diff ✅ Binary size difference within thresholdChanges by Module
Detailed Symbol Changes |
Regression Detector (Agent Data Plane)Run ID: Optimization Goals: ✅ No significant changes detectedFine details of change detection per experiment (5)Experiments configured
Bounds Checks: ✅ Passed (5)
ExplanationA 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 ( |
8c1f3ef to
0b264ce
Compare
0b264ce to
c136f61
Compare
c136f61 to
1c671fa
Compare
182e522 to
518a5e5
Compare
0a682ab to
b8916be
Compare
Add the APM_SAMPLING decoder and a TraceSamplingSubscription owned by the trace sampler. Decode the Agent payload shape, including absent and null values and lowercase aliases for the target TPS fields. Accept a single valid assignment. Reject invalid or multiple assignments without replacing the accepted snapshot. An empty assignment leaves the last applied sampler settings in place. Decode errors do not quote the payload. Resolve each field from the last by_env entry matching the normalized default environment, then all_envs, then the static setting. Before each event buffer, apply new priority and errors sampler targets and the rare sampling switch. An errors sampler initially disabled by a zero target stays disabled; the no-priority target stays static. Expose the subscription through the sampler configuration builder, with an inert default until startup supplies a client. Test payload decoding, environment selection and updates through the built sampler.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bbcb42659f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
A zero target scales every learned signature rate to zero. When a later update raised the target again, the update returned early because there is no ratio to scale by, so those signatures kept dropping every trace until the next bucket began. Recompute the rates from the current window when the target rises from zero. The Datadog Agent has the same gap; this departs from it on purpose.
Human Summary
Adds a
TraceSamplingSubscriptionand decoder for its remote configuration protocol.AI Summary
The RC client in #2713 can deliver typed product snapshots, and #2719 handles semantic mappings for trace translation and stats. This PR adds the separate
APM_SAMPLINGconsumer: its decoder interprets remote sampler settings, and the trace sampler can apply accepted settings while processing traces. The sampler configuration takes aTraceSamplingSubscription; without one, it holds an inert subscription and continues using its configured settings. #2724 is responsible for constructing the production subscription and passing it into the sampler.APM_SAMPLINGcan override the priority and errors sampler target traces per second and enable or disable rare sampling. For each field, the sampler takes the last matchingby_enventry, thenall_envs, then its static setting. Missing ornullfields leave that field unset; an explicit zero orfalseis an override. The no-priority sampler target is not remotely changed.SamplingDecoderaccepts one configuration. It rejects malformed input or multiple assigned configurations. With none assigned, it publishes anUnassignedsnapshot: unlike the semantic registry, the sampler keeps its last applied remote settings instead of returning to static settings.Change Type
How did you test this PR?
make fmt,cargo check --workspace,cargo check --workspace --tests,make check-docs,make check-clippyat the stack tip.saluki-componentstests: 549 passed at the stack tip.References