sentry-ruby icon indicating copy to clipboard operation
sentry-ruby copied to clipboard

Expose on_rate_limit as part of the transport contract

Open sl0thentr0py opened this issue 1 year ago • 0 comments

I see, thanks for the explanation of your use case. So a few points

  • we never do a retry ever on our side, a dropped event is a dropped event
  • the server's rate limiting is merely interpreted as 'stop doing stuff for a while'
  • technically it is breaking yes, but this is considered internal to the http transport implementation and not really part of the API contract

That said, there are a couple of options for you now

  • make your own transport deriving from Sentry::HTTPTransport and override send_data there and do what you wish there
  • I can expose a on_rate_limit hook in the transport class similar to on_error to make that easier so you just need to define that one method to retry

does that work?

Originally posted by @sl0thentr0py in https://github.com/getsentry/sentry-ruby/pull/2216#discussion_r1472958970

sl0thentr0py avatar Jan 31 '24 15:01 sl0thentr0py