-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
Don't have transactions go through post_process #81065
Comments
Roll out strategy: Part 1:
what to watch for during rollout:
Part 2: Stop producing post_process for transactions
|
@JoshFerge during SRE office hours it was raised that sending signals is not an asynchronous event - basically all of the existing (and future) receivers of those signals are still processed synchronously. So we need to understand what is being triggered by that signal and understand how that impacts things. Are we going to be doing those signal handlers inside of save_event_transaction now too? |
i've changed the implementation to not use signals and call what the signal did previously directly. we also confirmed that these calls are very fast https://sentry.sentry.io/traces/?project=1&query=span.op%3Atasks.post_process_group.transaction_processed_signal&statsPeriod=24h&visualize=%7B%22chartType%22%3A1%2C%22yAxes%22%3A%5B%22avg%28span.duration%29%22%5D%7D |
given that for post_process we use rabbitmq/celery, and its quite high throughput, we should consider that for transactions, this may not be necessary.
sentry/src/sentry/ingest/transaction_clusterer/datasource/redis.py
Line 103 in 5d39254
We can cut the number of rabbitmq tasks we send by ~40% if we simply don't use post_process for transactions.
We can also cut out the usage of rc-processing for transactions for this.
We'd move this transaction sampling over to save_event_transaction.
Steps:
Part 1 (Safe Transition):
I assume that we're okay with a minute of data or so being lost from the transaction clusterer. by doing a simple switch-over, we can save some complexity. (i believe this is just used for accurate dynamic sampling calculations)
Part 2 (Cleanup):
The text was updated successfully, but these errors were encountered: