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 profiling for queues #2045

Open
sl0thentr0py opened this issue May 17, 2023 · 2 comments
Open

Support profiling for queues #2045

sl0thentr0py opened this issue May 17, 2023 · 2 comments

Comments

@sl0thentr0py
Copy link
Member

Add and test support for profiling transactions from sidekiq/delayed_job/resque, some customers have already shown interest.

@natikgadzhi
Copy link
Contributor

I'm looking into the code for this. Aside from the threading issues (that I don't have enough depth for just yet), it looks like:

  • Transaction has a Profiler attached.
  • On Sentry.start_transaction, the hub will call transaction.start_profiler!, which will, with random luck, do exactly that, as long as this transaction is sampled, and profiling rate allows.
  • It looks like anything that already uses transactions will potentially be able to make profiles. Looking as sentry_context_middleware.rb for sidekiq, it seems like it should work?

I have not yet tried it out myself, but that's the next thing I'm looking at. I expect that if I set my profile rate high enough and spam background jobs in an example app, I should see messed up profiles, all dumped into the single thead_id: 0.

If that's the case, I guess we should focus on trying Vernier first?

@sl0thentr0py
Copy link
Member Author

this is on hold for now, because the server will actually throw away profiles longer than 30s. Longer profiles need a bunch of server support for 'streaming profiles' because otherwise the payloads get too large and are not practical.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

No branches or pull requests

3 participants