Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support tail sampling processor #1135

Closed
ElementalWarrior opened this issue Apr 8, 2022 · 13 comments
Closed

Support tail sampling processor #1135

ElementalWarrior opened this issue Apr 8, 2022 · 13 comments
Assignees
Labels
ADOT collector ADOT Collector related issues feature-request Feature request processor processor related items

Comments

@ElementalWarrior
Copy link

When trying to use the tail_sampling processor, I found it was not included as one of the processors defined in AWS ADOT

Describe the solution you'd like
Add the tailsamplingcollector package and add it to the processor map.

Describe alternatives you've considered
I tried creating a PR, but it was closed. I have used the branch from the PR to self host a forked docker image.

Effectively for my needs, I need to be able to have the collector drop spans such as health check endpoints, which can be accomplished with the tail sampling processor. But there are other uses as well

Additional context
My pull request

@bryan-aguilar bryan-aguilar added enhancement Request for enhancement other than new feature feature-request Feature request ADOT collector ADOT Collector related issues processor processor related items labels Apr 8, 2022
@alexfdz
Copy link

alexfdz commented Jun 8, 2022

We would like to use the tail_sampling processor too. In our use case we would like to limit to a specific rate the amount of successful spans.

processors:
  tail_sampling:
    decision_wait: 30s
    policies:
      [
        {
          name: sample_few_successful_spans,
          type: and,
          and: {
            and_sub_policy:
              [
                {
                  name: sample_successful_spans,
                  type: status_code,
                  status_code: { status_codes: [ OK ] }
                },
                {
                  name: sample_few_spans,
                  type: rate_limiting,
                  rate_limiting: { spans_per_second: 15 }
                }
              ]
          }
        }
      ]

@zksward
Copy link

zksward commented Jun 23, 2022

We're looking to add ADOT to our observability efforts but tail sampling is a must have. +1 from us

@mhausenblas
Copy link
Member

Thanks for your feedback @zksward! ADOT PM here. Can you elaborate why it's a "must have" please?

@zksward
Copy link

zksward commented Jun 23, 2022

It allows us to estimate and control costs while having the flexibility to specify traces of interest. We have a high throughput distributed application and one of the main concerns and pushback on implementing a system wide observability solution is managing the volume of the data. Are there alternatives to the behavior of which I'm not aware?

@mhausenblas
Copy link
Member

Thanks, again. It's not on our immediate roadmap but things can always change.

Are there alternatives to the behavior of which I'm not aware?

You can use what the respective SDK offers, in your app.

@zksward
Copy link

zksward commented Jun 24, 2022

Thanks for being open to the feedback! I'm excited for the possibilities ADOT brings.

@jsalinaspolo
Copy link

You can use what the respective SDK offers, in your app.

It is really hard to manage in the app once you have to sync with many services pushing traces to the collector
Making the sampling in the collector, it can be guaranteed

Any update if it is planned for the next release in August/September?

@github-actions
Copy link
Contributor

github-actions bot commented Oct 9, 2022

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 30 days.

@github-actions github-actions bot added the stale label Oct 9, 2022
@drors55
Copy link

drors55 commented Oct 14, 2022

I am also looking for the tail sampling to be part of ADOT

I would like to have a strategy that:
(1) Capture all traces that failed or had high latency and send to the backend
(2) Capture 5% of all traces regardless of their completion status

I need the failed traces for RCA

@github-actions
Copy link
Contributor

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 30 days.

@github-actions github-actions bot added the stale label Dec 18, 2022
@mhausenblas mhausenblas removed the stale label Jan 4, 2023
@mhausenblas mhausenblas changed the title Support the tail sampling processor from opentelemetry collector Support the tail sampling processor in the collector Jan 11, 2023
@mhausenblas mhausenblas removed the enhancement Request for enhancement other than new feature label Jan 11, 2023
@mhausenblas mhausenblas changed the title Support the tail sampling processor in the collector Support tail sampling processor Jan 11, 2023
@pbrisbin
Copy link

pbrisbin commented Mar 7, 2023

You can use what the respective SDK offers, in your app.

Please correct me if I'm wrong, but the SDKs only have an ability to sample a) at the span level and b) decided at the start of a span. I.e. by ratios or attributes given when the span is constructed. It cannot be used to filter whole Traces nor based on attributes known at the completion of a request/trace such as http-status or total duration. That is what the tailsamplingprocessor does for you, and why it must be in the collector.

@github-actions
Copy link
Contributor

github-actions bot commented May 7, 2023

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 30 days.

@github-actions github-actions bot added the stale label May 7, 2023
@jeromeinsf jeromeinsf removed the stale label May 8, 2023
@rapphil
Copy link
Member

rapphil commented May 15, 2023

Support for the Tail Sampling processor was made available today through ADOT collector v0.29.0.

For more details please refer to: https://aws-otel.github.io/docs/ReleaseBlogs/aws-distro-for-opentelemetry-collector-v0.29.0

Closing the ticket as the component is ready for use.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ADOT collector ADOT Collector related issues feature-request Feature request processor processor related items
Development

No branches or pull requests

10 participants