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

Issues Sampling (like traces_sampler) #2440

Closed
saippuakauppias opened this issue Oct 11, 2023 · 4 comments · Fixed by #2456
Closed

Issues Sampling (like traces_sampler) #2440

saippuakauppias opened this issue Oct 11, 2023 · 4 comments · Fixed by #2456
Assignees
Labels
Enhancement New feature or request

Comments

@saippuakauppias
Copy link

saippuakauppias commented Oct 11, 2023

Problem Statement

I ran into the same problem as was voiced in: getsentry/sentry#28792 (comment), getsentry/sentry#46670, getsentry/sentry#27884.
In short: there is a service that periodically restarts due to heavy load on it, we can't do anything about it. At the moment of restarting the service - there is a large (hundreds of thousands) number of sending logged messages to Sentry. It is impossible to disable messages at all, because we need to control the situation when the service has stopped responding at all.

There is a way to set rate limit for tracing in the documentation (and it is mentioned in getsentry/sentry#46670 (comment)). But there is no way to set rate limit by message text from the logger.

We are using Django, and if we try to do according to the example in the documentation, there is no useful information about the message itself in sampling_context. There's just the transaction, no error, no logger message text, no traceback.

Solution Brainstorm

Please make issues_sampler so that it would be possible to filter a errors before sending it to Sentry.

@antonpirker
Copy link
Member

Hey @saippuakauppias !
Thanks for bringing this up. This is good idea and I think on another platform we support we already have something like you suggested. I put this on our todo list, but it will take some time because we are all working on something right now.

@sentrivana
Copy link
Contributor

sentrivana commented Oct 18, 2023

@saippuakauppias This sounds like something that could be solved by defining a custom before_send. All events but transactions will pass through it if you define one and you can decide to drop an event based on whatever criteria you need (at that point you have the ready-to-be-sent event available). Would that solve the issue?

@saippuakauppias
Copy link
Author

@sentrivana, thanks for the idea, I'll try this, even though it looks like a hack

@sentrivana
Copy link
Contributor

sentrivana commented Oct 19, 2023

@saippuakauppias It's a perfectly valid before_send usecase though -- it's currently the intended way to go about dropping events before they leave the SDK. It's also more powerful (though arguably less convenient, if all you need is to define a sample rate) than an issues sampler since you have full control over the criteria.

It does seem like our messaging around it is not ideal though if it sounds like a hack (and in general many folks don't seem to know about it). So we could certainly improve our docs around this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement New feature or request
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

4 participants