New Feature: Burst Protection

We just pushed a new features to all you guys and gals: Burst Protection.

I’m not saying that it ever happened to you, but you probably know someone, who knows someone, who’s cousin knows someone … well you get it. You released a new version of your software to production and suddenly everything starts failing. All of your users are frustrated and your operations team run around like headless chickens. When stuff like this is happening, your website typically logs a lot of errors. Depending on which plan you’ve purchased, you have a maximum number of allowed errors. Even though this number is a soft limit, we cannot guarantee that we store everything if you start logging thousands and thousands of errors within a short period of time. Burst Protection to the rescue!

With Burst Protection we make an intelligent decision, when your site suddenly starts pushing a shit load of errors to This means that only a percentage of the errors are actually logged. This makes it easier for you to keep within the quota and also make easier for you to track down the actual errors.

So how does respond when under pressure? Let’s write a little evil piece of code:

for (var i = 0; i < 500; i++)
    Task.Factory.StartNew(() =>
        var request = (HttpWebRequest)WebRequest.Create("");
        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded";
        var elmahError = new Error(new ApplicationException());
        var errorString = ErrorXml.EncodeString(elmahError);
        var errorStringEncoded = HttpUtility.UrlEncode(errorString);
        var bytes = Encoding.UTF8.GetBytes("=" + errorStringEncoded);
        request.ContentLength = bytes.Length;
        var outputStream = request.GetRequestStream();
        outputStream.Write(bytes, 0, bytes.Length);
        HttpWebResponse response;
            response = (HttpWebResponse)request.GetResponse();
        catch (WebException e)
            response = (HttpWebResponse) e.Response;

The short version: Perform 500 requests to the API within a short period of time. HTTPS request example is taken from one of the samples. Here’s a screenshot of the output after a few hundred errors logged:

Burst protection

As you can see, starts returning a different status code for some of the errors. If you’re using the NuGet package for your web application, you won’t even notice the different status code, because this is handled within the client.

Features steps
We monitor your websites

We monitor your websites

We monitor your websites for crashes and availability. This helps you get an overview of the quality of your applications and to spot trends in your releases.

We notify you

We notify you

We notify you when errors starts happening using Slack, Microsoft Teams, mail or other forms of communication to help you react to errors before your users do.

We help you fix bugs

We help you fix bugs

We help you fix bugs quickly by combining error diagnostic information with innovative quick fixes and answers from Stack Overflow and social media.

See how we can help you monitor your website for crashes Monitor your website