Last week, we launched the beta of our cloud-based exception monitoring service for ASP.NET: appfail.
I thought it'd be good to give an overview of what Appfail is and how it came to be -- from my perspective as a .NET developer.
Where did the idea come from?
I'm a software development lead at Kiandra IT in Melbourne. We run a lot of complex ASP.NET web applications and we care about quality for our clients.I have always felt uneasy about the effectiveness of the generally accepted exception monitoring strategy in the .NET dev community:
- Plug in ELMAH (a great exception reporting plugin for .NET)
- Configure it to log exceptions to a database or an email address
- Periodically check the log by scrolling through a very large list of individual exceptions
- Somehow try and figure out which failures are happening the most and which ones really matter
- If there's a particularly bad one happening -- check the logs very regularly in great fear
In a previous life I was a developer at Microsoft. I worked on Windows Vista, Windows 7 and FAST Search. Inside the Windows team we were blessed with the magic of Windows Error Reporting. When our users encountered exceptions, we received detailed information about the error, including stack traces and mini dumps. Not only did this give us detailed information about the failure scenarios -- it gave us a high level picture of which failures occurred most frequently. Combining exception details and occurrence statistics in one place allows you to make better decisions about which failures matter most to fix.
I wanted to bring some of this awesomeness to ASP.NET -- and I wanted to make it as simple as possible for fellow devs to use.
Failure Analytics Made For Developers
Plug Appfail into your ASP.NET web application and it will report all unhandled exceptions to our cloud service. We designed it to be intuitive -- so it's best explained visually:Login to the Appfail dashboard to view detailed analytics of the failures in your web application and quickly focus on the failures that matter:
It groups exceptions by type and stack trace -- this grouping is called a failure. See a particular NullReferenceException that you are interested in? Click on the failure name to see analytics for that failure only. When did it start happening? How often has it been occurring?
View the stack trace and exception type:
OK, so this failure has occurred 14 times.
As a developer, you want to discover the conditions that caused this failure. Appfail gives you a summary of each occurrence of this failure, showing the date/time, URL, the logged in user who encountered this failure and both the user's device platform & browser.
You can drill even further, and view the details of a particular occurrence of this failure. This screen provides detailed information, including all query/post values, cookies, server information, variables and more:
Notifications
As developers we don't want to get an email every time an exception is encountered in our apps.
We made it so that you can define important events that you want to know about. Is there a particular critical URL that should just work? Register to receive a notification when a failure occurs on this URL. Is there a particular failure that worries you (maybe a StackOverflowException)? Register to receive a message when this occurs. Currently Appfail supports email and TXT/SMS notifications. We'd like to add Twitter DM soon.
Site Overlay
There's been a trend in the dev community recently toward in-page overlays (think: the stack overflow mini profiler)... and frankly I love it! So I couldn't bear to make Appfail without one :-)
As you browse, the overlay shows the number of exceptions that have been reported for the current URL. Clicking on the overlay expands the firebug-like Appfail panel at the bottom of the page:
If a failure occurred on a request issued by a form POST, Appfail can "replay" the conditions that led to the failure. A replay will automatically highlight the form and fill it with the values that were posted when the failure occurred:
This isn't going to lead to a true reproduction of the failure in all scenarios (especially where Javascript & AJAX is involved) but should help in many cases.
Nuget Integration
Appfail is supported in ASP.NET WebForms & MVC 1/2/3. It's really easy to plug in:Install Appfail via Nuget, and then insert your application's Appfail API token into web.config (you get this when you add your application to appfail.net)
Build your app, and away you go!
(there's an extra step for MVC3 with custom errors turned on)
Free Forever
While we're in beta, all accounts are free -- but even once we're out of beta we're committed to always providing a great, free plan for .NET devs. For higher-volume scenarios with a lot of storage and traffic demands, there'll be paid plans.
We ourselves leverage a lot of great free web services out there, and we want to provide the same for other devs.
What's Next?
We've got a lot of great ideas and great plans for Appfail.
Priority #1 is to add Javascript support. We want to provide the same great analytics and notfiications for client-side errors as we do now for server-side errors.
Enjoy!
That's the basics of Appfail and why it has fulfilled a need for us.
We're keen to get feedback and suggestions -- no matter how critical!
If you want to read more -- check out how we've been using Appfail to fix issues in Appfail.
If you'd like to try Appfail, head over to our site and sign up.
Thanks!
Sam & Peter
Sam & Peter







That's a cool app but what about the situation when I have disabled debugging for my web app? Is appfail capable of recording exact exceptions in this scenario also?
ReplyDeletehttp://www.valueworx.com
Hi projecthelper - yes, Appfail will report on exceptions when debugging is disabled.
DeleteIt's designed to be safe and unobtrusive and should work rather well regardless of the environment (development, staging or production).
Does it have to be cloud based or a url browsing like Elmah would do? Sorry a bit confused about the cloud bit from the infrastructure point of view?
ReplyDeleteHi naturehermit, there are a number of advantages to having a cloud based service for exception monitoring:
Delete- we can scale and leverage our cloud infrastructure to perform complex analytics, summaries and reports (coming soon) across days, weeks, months and years. We can dramatically scale to handle a larger load and still provide the necessary number crunching for your application regardless of whether you have 1 exception a day or 100 a minute.
- we can provide storage/backup of exceptions and related information for a longer period of time and have universal access.
- we can maintain really sophisticated notification options (sms/email and other forms coming soon)
- we allow collaboration between colleagues and soon we will allow optional community help (e.g. you will be able to ask if others have seen a similar problem and what to do about it).
- we provide the ability to set up multiple applications and have straightforward access to all of them through a dashboard.
These are just a few things that the service provides and there is a lot more to discover. We are going to announce new features over the coming weeks so we hope that you'll try Appfail.
But you wrote, its going to be free, so what am I missing? Does it allows one to have their own cloud infrastructure or they need to subscribe to yours. Whats the business model? The reason I am asking is because i quite like the idea but I need to know the cost implications. For elmah its easy without fuss or need for any other infrastructure. Could you please clarify? thx
DeleteWe are going to have a free plan and some paid plans going forward.
DeleteWe are still working out the details but you can see the indicative pricing scheme here: https://appfail.net/Plans
We are free during beta and we will always have at least one free plan going forward.
This free plan will be perfect for small websites/web apps but it will have some limitations. For example, the history will not be maintained too far back and there will not be TXT/SMS messaging (as this gets rather pricey).
Other beefier paid plans, however, will accommodate a range of users with various needs. We will maintain a much longer history, provide messaging services, allow multiple collaborators, on-demand reports and integration with other services (both are coming soon), have access to support and to other useful features.
So - if you just want to try Appfail or have a small website then you might want to go for the free plan.
If you are running a more serious web app then it will be worthwhile investing into one of the paid plans as you will get so much more from it.
We will announce our final pricing and feature set very soon.
If you have any specific questions about our plans, features, etc.. please feel free to shoot an email to appfail@appfail.net
i want to talk with you.what can i do it ?
ReplyDeleteHi Feroze - please email us on appfail@appfail.net if you need to talk.
DeleteIf you have a support question you can also post it at support.appfail.net
I'm using the tool but can not get to register exceptions.
ReplyDeleteEustaquio Martin
Hi Eustaquio, we have a KB article which suggests a few troubleshooting steps to try: http://support.appfail.net/kb/troubleshooting/there-are-no-failures-showing-for-my-application
DeleteIf you have tried the above steps and it still doesn't work then please send us an email (appfail@appfail.net) or let us know at support.appfail.net and we can take a look at it together.