open-telemetry / opentelemetry-collector-contrib

Contrib repository for the OpenTelemetry Collector
https://opentelemetry.io
Apache License 2.0
2.88k stars 2.25k forks source link

Refactor tail-sampling processor - Refactor policies #31582

Open jpkrohling opened 6 months ago

jpkrohling commented 6 months ago

Quite a few of the policies can be replaced by OTTL, while others could be replaced by OTTL if new features are added to it. For instance, the latency policy can't be done yet with OTTL.

jpkrohling commented 6 months ago

@TylerHelmuth, do you think it would be feasible to have a duration func for OTTL, to calculate the latency of a trace?

github-actions[bot] commented 6 months ago

Pinging code owners for processor/tailsampling: @jpkrohling. See Adding Labels via Comments if you do not have permissions to add labels yourself.

TylerHelmuth commented 5 months ago

@jpkrohling you can use OTTL's built-in arithmetic to get a span duration, but doing any function for the entire trace would be tricky. OTTL currently can work on a Span but not a Trace as a whole.

github-actions[bot] commented 3 months ago

This issue has been inactive for 60 days. It will be closed in 60 days if there is no activity. To ping code owners by adding a component label, see Adding Labels via Comments, or if you are unsure of which component this issue relates to, please ping @open-telemetry/collector-contrib-triagers. If this issue is still relevant, please ping the code owners or leave a comment explaining why it is still relevant. Otherwise, please close it.

Pinging code owners:

See Adding Labels via Comments if you do not have permissions to add labels yourself.

alec-w commented 3 months ago

Not sure if this is the right place to ask this but it does tie into the tail based sampling policies...

When making use of the ADOT collector in EKS we're using the remote sampler (which essentially fetches the sampling rules from AWS XRay).

This sampling decision is still head based though.

We'd like to use tail based sampling so we can always record traces for long-running requests (which the current tail-based sampling processor would allow us to do) but use the XRay sampling rules for all other requests (which it wouldn't).

Would the only way to accomplish this be the addition of a new processor? It seems that such a processor would in many ways end up being very similar to this one - so wonder if our thinking is heading in the right direction...

jpkrohling commented 1 month ago

This would likely be a new policy. Under the new architecture after the refactoring, it would be an extension.