Prototype of an adaptive sampler based on peer.service #29
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.
Prototype of an adaptive sampler, which uses the upstream service information stored in
TraceState
(us
entry filled withservice.name
), in order to keep proportional samples for each calling service, trying too reduce under-representation. Non-optimized (i.e. uses a single gigantic lock), but presented here to validate (or not) how helpful propagating upstream service can be.This takes a little inspiration from this Software Runtime Monitoring with Adaptive Sampling paper, and doing the following:
TraceIdRatioSampler
for simplicity purposes).service
, and it not, and if the sample decision is RECORD_AND_SAMPLE (from 1), go ahead and do sample the trace, and else drop it.