Raygun APM: Our commitment to performance

| 3 min. (478 words)

Ever since the public release of Raygun APM for .NET, we’ve been busy at work to make this the best APM product on the market that provides meaningful data to developers, making debugging and troubleshooting much easier.

Every APM product out there will incur some level of performance penalty since you cannot observe a process at zero cost. However, the major question is “how much overhead?” That’s something we care about at Raygun, since by definition, we’re building products to help our customers make their code faster and less buggy.

I wanted to share some recent improvements we have made. However, this is only the beginning, and we are deeply committed to continuing to invest in lowering the performance overhead of Raygun APM.

We already have Raygun APM customers who have switched from major vendors to find a solution that reduces that overhead. We see this as a strategic opportunity to provide the best solution possible in this area.

Recent improvements include:

Better Raygun4Net integration

We introduced in version 1.0.1062 (Oct 14 2019). This enhancement provided a tighter integration with Raygun4Net that brings performance improvements to Sampling, reducing CPU used by the profiler and agent.

By adding Raygun4Net.AspNetCore to your application, Raygun APM unlocks advanced features and intelligence that helps to reduce the CPU overhead of the profiler.

If you’re already using Raygun4Net.AspNetCore in your web application then there is nothing more you need to do other than make sure you’re using version 6.2.0 or above.

For the full instructions on installing and configuring Raygun4Net.AspNetCore please refer to the installation instructions for Crash Reporting.

One of our customers found that this improvement alone reduced the overhead by more than 50%.

Live blacklisting

We introduced live blacklisting in version 1.0.1088 (Dec 4 2019). This is a new feature that automatically blacklists insignificant method calls in traces, helping to improve the performance of the profiler and agent.

This feature monitors your traces for method calls less than 100 microseconds occurring at least 10 times in a trace and blacklists them as insignificant. It is enabled by default but it can be disabled by following the instructions here.

.NET Core 3.0 & 3.1 support

Lastly we’ve also enhanced our support for .NET Core 3.0 & 3.1 and support for Async controllers in version 1.0.1064 (Nov 7, 2019) and 1.0.1076 (Nov 18 2019).

These out-of-the-box improvements have been built into the latest Raygun Agent. If you have an out-of-date Raygun Agent installed, make sure to update to the latest version.

Thank you for helping us improve Raygun APM

The Raygun APM team loves getting feedback from our customers, it’s been a real pleasure to continually ship improvements in 2019. We cannot wait for 2020 when you’ll see Raygun APM add support for Ruby, Node, Java and PHP, as well as continue our ongoing quest to have the lowest overhead APM product available.