Questions about Performance impact
Erik
Posted on
Jul 05 2014
Can you help me to understand what kind of performance impact Raygun has on a busy website that logs a lot of data (informational, warning, critical, etc..)?
One problem I see in your client code is that it seems to have two ways to send data, synchronously and async. Async uses the thread pool, which on a busy site logging a lot of data could exhaust the thread pool (or at least reduce the number of requests the site can handle because the threadpool size is reduced with logging threads).
You don't seem to offer a version that supports async/await, is that correct?
What happens if there is a network routing problem between us and Raygun or Raygun is down? Will it lock up our site with connection timeouts? Will errors pile up in a queue using up more and more memory? Perusing your source, I didn't see any real code to deal with these situations...
jeremy
Raygun
Posted on
Jul 10 2014
Hi Erik,
As you have noted the performance impact with either be the use of a background thread or the blocking time in sending the data to our API endpoint. Keep in mind this is only of impact when you are handling and reporting an exception which has a natural performance cost by itself and presumably will be a fairly abnormal occurrence.
In terms of a network problem there would be a network timeout on sending the exception which we silently handle but this would either be a blocking delay if calling synchronously or would consume the background thread during that time. If you are expecting this to be a problem we would encourage either modification of the provider to suit your needs or implementing a queuing mechanism or the like in front of calling the client to manage these requirements.
Kind regards,
Jeremy