These are a few of my FAVOURITE things

We all know you love receiving big chunky feature updates from Raygun, but sometimes it’s the little things that can brighten your day.

We’re always keen to simply make software developers lives easier and so here’s a little update we think you’re really going to find useful – favourites.

When looking into your application’s errors you will of course have several tabs of data available to you and as I’m sure you’re aware, the summary tab is the default one that shows.

Thanks to this latest feature release you can now ‘favourite’ particular values that you’d like to have on your summary tab – so you don’t have to click around tabs all the time to see the data you really want to see.

This small addition will save you all that clicking and put the information you need easily within reach. For example, perhaps we want to include the custom data we send from our Javascript application, without having to dig through all of the tabs to find it each time.

All you need to do is click the favourite icon next to any data you would like to be displayed on your summary tab. For example, go to the error details tab and favourite an item. This will then appear on your summary tab.

Favourites

To remove it just click the icon again – this time on the summary tab and it will be removed.

Yes, it really is that easy to use, so give it a go and keep the data you care about most of all easily visible.

This setting is also set on a per user basis, so it’s personal to you, and it’s really up to you to decide what you’d like to appear on the summary tab.

Wish you could do this and are not a Raygun customer yet? Try our FREE 30 day trial!

Share this post

Setting up Raygun with Azure WebJobs

Azure WebJobs provide a nice, low-impact way to run scheduled or continuous programs against Azure Websites, with easy setup and a good monitoring dashboard. When you need small, occassional housekeeping tasks run against your sites, or constant jobs, using a WebJob removes the hassle of manually copying over console apps to the server and setting them up as scheduled tasks.

Packaging a new or pre-existing console app as a WebJob is pretty painless thanks to good VS2013 integration. It’s just as easy to integrate Raygun with a WebJob, giving you deep visibility into how all your processes are erroring out at runtime, without having to manually dig through logfiles.

Deploying a console WebJob

Firstly, to get a console app up on Azure you can follow the guide here. Once you’ve added the NuGet package, right-clicked on the project and gone through the wizard, a JSON settings file will be created – from here you can deploy to an Azure Website. The History tab in the dashboard will list when the console app was run (according to the schedule you set), which means it’s ready for Raygun integration to show what exceptions occurred.

Integrating Raygun into a WebJob

You’ll need to first grab the Raygun4NET package from NuGet:

To set up Raygun4NET in a console app, you can hook up to the unhandled exception delegate:

That’s all there is to it! Completing this contrived example, that ThrowAnException method might look something like this:

Deploying this project by right-clicking and selecting ‘Publish as Azure WebJob’ will make it available to be run when next scheduled. The resulting exception above will be caught and sent automatically, and the resulting Raygun report looks like this:

The full stacktrace is available, ready to be debugged. If you’ve chosen to get email notifications, and if it’s the first time this exception has been thrown, you’ll get an email informing you of this. If it’s occurred before you’ll get stats on how many times it’s been reported, and the trend.

Grab your Raygun trial

Got Raygun and Azure accounts already? Dive in and hook up your WebJobs to Raygun now! We’ve also got NuGet packages for MVC and WebAPI projects so you can easily set up your Azure projects with Raygun. And if you need a Raygun account, as always there’s the 30-day free trial available here.

Share this post

Filter all the things! – Including by Hostname

When we added enhanced error filtering earlier this month to filter your errors by Operating System and by Browser, we were already working on even more filtering goodness. This time the ability to filter errors by Hostname.

Enabling this for our customers means that you’ll now be able to narrow down errors that are affecting specific users or specific environments a lot more easily.

Alongside the other filtering options you’ll see a new one to filter by Host. By clicking the filter button on the right hand side of your Raygun dashboard, you’ll be able to enter Host details in the dialog and find specific issues faster.

hostname

Note – Host details will start to be collected with your errors now that this feature is live, so it may take some time to fill up with information to filter on.

We hope you find this filter useful whilst hunting down those hard to find errors in your applications. Be sure to give this one a try and let us know what you think! We’re hard at work on some exciting and innovative new features that we think you’re going to love – better get back to it!

Not a Raygun user yet? That’s ok, we have a free 30 day trial which should be plenty of time to discover a better way to manage errors in your applications.

Share this post

Enhanced Error Filtering Now Available!

Lets talk about filters. I can see you’re getting super excited about that…..no? Well, stick with me here. We’re not talking about the ones that you might use to filter your water, air or that horrendous coffee you used to drink, but the kind that just make your life so much easier when hunting down bugs.

If you haven’t already noticed, we’ve now introduced the ability to quickly complete error filtering by Operating System and by Browser to go alongside our other helpful filters in the Raygun app.

All you have to do to use this wonderful addition is click the filter button on the right hand side of the main dashboard. Here you’ll find the new additional options to try out.

Filter by Operating System

Select Operating System from the dropdown and enter the OS you want to filter upon. Applying the filter will show you all the errors affecting the chosen Operating System(s).

Filter by OS

Filter by Browser

Select Browser from the dropdown and enter the Browser version you want to filter upon. Applying the filter will show you all the errors affecting the chosen Browser(s).

Filter by Browser

Once the filter is in place you can browse through the errors that fit under this criteria, adding additional time and date filters if you need to. The filters are easily removable of course, just click to close them on the main dashboard above the error instances.

That’s pretty much it for this update, we’ve heard people are already finding these filter extremely useful in narrowing down those hard to find bugs.

If you haven’t discovered what Raygun can do for your software development yet, what are you waiting for? Sign up for a free 30 day trial now.

Share this post

Raygun for Xamarin.iOS supports Unified API and native error reporting

Raygun is an error tracking service that works in a large variety of languages and platforms. Raygun4Net is a library to add to your .NET applications such as Xamarin.iOS. This gives you awareness into the errors occurring in your published apps so that you can fix them fast.

native ios errors

Unified API 64-bit support

If you’re a Xamarin.iOS developer, then you probably know of the upcoming 64-bit Apple requirements, and the Unified API that Xamarin is providing to help with this. 3rd party libraries/components that you use in your updated apps will also need to support the Unified API, and so the latest version of Raygun4Net is ready to go in both the Xamarin Component Store and NuGet. Update to the latest version of Raygun4Net now to get error reporting in your 64-bit apps. And if you were wondering – both the Xamarin Component and NuGet package will continue to support the classic API for as long as Xamarin does.

Native error reporting

In addition to the Unified API support, the native error reporting support that was previously in beta has now moved into the latest stable release of Raygun4Net. Needless to say, this functionality is available in both the Unified and Classic API versions.

Raygun can be set up with a single line of code in your Xamarin.iOS applications. If you’re already using Raygun4Net, then the existing behavior of your code will be maintained which is to only report managed exceptions, but by modifying this single line of code with a couple of boolean parameters, native error reporting will be enabled:

The first boolean parameter is simply to enable native iOS error reporting.

The second boolean parameter is whether or not to hijack some of the native signals – this is to solve the well known iOS crash reporter issue where null reference exceptions within a try/catch block can cause the application to crash. By setting the second boolean parameter to true, the managed code will take over the SIGBUS and SIGSEGV iOS signals which solves the null reference issue. Doing this however prevents SIGBUS and SIGSEGV native errors from being detected, meaning they don’t get sent to Raygun. This is why we provide this as an option – so if you don’t have any issues with null reference exceptions occurring within try/catch blocks and you want to maximize the native errors that you can be notified of, then set the second boolean parameter to false.

Now Raygun can report native errors occurring in your managed Xamarin.iOS apps. Note that it is unsafe to send native errors at the time an app has crashed, and so native reports are first safely saved to the device and then sent the next time the app starts up. Managed exceptions however will still be sent instantly.

Native error symbolication

Native error reporting is all good and nice, but they don’t mean much until they’ve been symbolicated with a dSYM. And so, simply by uploading a dSYM file to your account, Raygun will symbolicate your native iOS crash reports for you. This results in readable stack traces for both managed and native code that will make quick work for tracking down those bugs.

To upload a dSYM, go to your Raygun dashboard, click “Application Settings” in the side bar, and then click “dSYM Center” that appears below it.

Upload dSYM

Zip up the dSYM file that Xamarin generates in the bin folder of your project, then drag and drop it on to the dSYM upload panel shown above. Note that every time you build your application, a new dSYM will be created, even if no code was changed – so make sure to always upload the dSYM file for each build that you want to track errors from.

Try it today

Looking for excellent error reporting in your Xamarin.iOS applications? Try out Raygun for free with support for Unified API 64-bit apps and native error reporting.

Share this post

New: Global Dashboard now available!

It’s my pleasure to announce a major new feature for all Raygun users: The Global Dashboard. The Global Dashboard lets you select apps from your account and see the health of all of them at once.

If that’s all the Global Dashboard did, it would be a handy feature – but who really just wants handy? Why not go for awesome!

An example dashboard

Error Global Dashboard Unified View

Here you can see that I’ve configured my dashboard to show 5 applications. There’s plenty of options here:

  1. Choose the applications you wish to include from all the apps you have access to.
  2. Choose the time span you wish to view.
  3. Choose if you want to see error groups grouped by app, or, have the groups unified into a single list.
  4. Choose if an app should show at all, if it has no errors – perhaps you only wish to see apps with active errors!

You can choose all of these from the simple tool set above the chart:

Global Dashboard Options

See the health of your software

The overview chart is a powerful way of showing you the health of all the apps you’re monitoring. We use a stacked area chart to layer the crash report counts on top of each other. In this screenshot, I have my mouse over the chart to see a legend that tracks with my cursor. It keeps me informed of the error count at any point where the cursor is.

Stacked area chart of crash reports

Application groups

If you’re viewing your data grouped by application, below the chart are the application groups. You can quickly see what applications are having problems and which are not. You can also jump to an application dashboard quickly with ‘View’ button.

Global dashboard error groups

Expanding an application group instantly shows you the active error groups in that application. Just like on an individual application dashboard, you can also change the status of an error group here should you want to.

Plan wide activity feed

Recent activity feed in Raygun

The Global Dashboard also incorporates an all new Activity Feed. This is plan wide and gives you a list of activity that has occurred in your account recently – errors resolved, errors ignored, apps created, comments added to errors, etc.

In my account screenshot here, I can see that Nick has been wrestling with some bugs recently, but thankfully he’s been resolving them.

Keeping your team aware of activity is crucial in delivering great software. The Activity Feed is our small contribution to helping assist in helping your team know what actions are being taken.

Mobile friendly

The Raygun design and front-end engineering team have been working hard to ensure a beautiful experience – even on small mobile phone screens. All interaction, even with chart hovers, can be done with your finger as well as a cursor. It works just how you’d expect it to.

Try it right now, in your account

The Global Dashboard is accessible right now, from within your Raygun account (don’t have an account? Try us, free, for 30 days). Simply click the globe icon at the top left corner from inside your Raygun account — easy!

Where to find the Raygun Global Dashboard

We’re just getting started

The Global Dashboard represents a big step forward for all Raygun users. We think it will help teams better understand the health of their entire suite of software. It’s still early days however. Feedback from our users has always been critical in ensuring Raygun is delivering the best bug smashing experience possible. I would love to hear your feedback, ideas and experiences on the Global Dashboard so we can continue on our mission to build the best exception logging tool available for you.

John-Daniel Trask
Co-founder & CEO
Mindscape

Share this post

Bulk Update Your Active Error Statuses

For heavy users of Raygun who have a large number of active errors, sometimes you may want to throw your hands up in the air and simply declare bankruptcy, changing all your errors to resolved, ignored or permanently ignored, but not necessarily remove the errors entirely.

This used to be handled by selecting 10 errors at a time using the bulk select tool on the Raygun dashboard – pretty time consuming stuff. So we wondered how we could improve this process for users and have now implemented a much better solution that should see you flying through this process in seconds.

Under the application settings screen, you’ll now find a new section which allows active error statuses to be bulk updated.

Screen Shot 2014-12-01 at 12.05.55 pm

As with our bulk delete feature, you’ll need to validate that the change is definitely wanted, as this could be very hard to undo. So just to be sure, you’ll have to type the word RESOLVED, IGNORED or MUTED in the dialog.

Screen Shot 2014-12-01 at 12.06.45 pm

If you’re now ready to bulk change the status on your active errors, hit the green button and Raygun will get to work on updating all the active errors in your application to your chosen status.

Cool huh? Think of all the things you can do with all that extra time!

If you haven’t yet experience how Raygun can help you build better software, sign up for the free trial today!

Share this post

Blog.WritePost(“Hello Everybody!”);

Well hello there Blog-o-sphere, and welcome to my first Raygun blog post! I thought I’d use this to give you a bit of background info about me so that you can all suss out this strange new face on the Raygun team.

Our new team member, Jordan CarltonSo I’m Jordan, a new recruit to the team for this summer via the Summer of Tech IT internship programme in Wellington. Summer of Tech is an internship programme that helps students who are studying or interested in building or improving their coding, design or other IT skills in preparation for a big finale networking event with companies in Wellington followed by a crazy session of speed interviews to see who makes the final cut. Mindscape has been involved in this internship programme for a number of years now, and a high percentage of their interns are still here (and happy being here) today, which I’m taking as a very good sign!

So what’s my background?  I was born and bred in Somerset in the UK, the home of farmers and cider, and moved out to New Zealand just for fun with my family. Having been out here for some time now, I am currently in my third year of studying Psychology at Victoria University and studied Computer Science for one of those years, and I’ll be writing more about why I love this combination of psych and coding in later blog posts. Before coming to the Raygun team I was studying and working from home for Psoda, a local company providing cloud based portfolio, programme and project management software, having been their Artificial Intelligence intern for Summer of Tech 2013.

I am really excited to be joining the team over the summer months, and not just because they have a great office and team vibe, although these are very important factors! I’m excited because I’ll be working with a very intelligent bunch of people working on a product that helps make other people’s jobs easier. I’ll also be learning about and working with new development environments, languages and processes among numerous other things in the team that will definitely keep me out of trouble this summer.

Share this post

Raygun supports private JavaScript Source Maps

We recently released an update allowing you to directly upload your minified, source and mapping JavaScript files. This is to allow for the use of source mapping when you do not wish to make your JavaScript files publicly accessible.

You can get started with private source maps by accessing the JS Source Center in an application’s settings submenu.

1

The page gives you the option to upload any Javascript source, minified or mapping files as well as the ability to label them with the URL the mapping process will retrieve them from.

2

After uploading, your JavaScript stack traces will be mapped in the same way as if your files were publicly accessible.

Your mapped stack-trace will look something like this:

3

For automatic uploads in build scripts, we offer an API endpoint you can post your files to. You can read about the API along with some examples in our documentation here:
https://raygun.io/docs/workflow?document=source-maps

Share this post

Use Raygun to report errors in your Swift apps

Swift error reporting

Swift is a new language created by Apple for writing iOS and OSX applications. Swift features automatic memory management, an easy to use syntax, compiles to high-performance native code and has interoperability with Objective-C APIs.

This tutorial will show you how to create a new Swift application, how to include and call Objective-C code from Swift code and how to integrate Raygun into the application. Raygun is an error reporting service that will give you awareness into the health of your published applications. If you already have a Swift application that you’d like to use Raygun in, you can skip all the way down to the “Integrating Raygun” section below.

Create a Swift application

Open up XCode 6 and create a new Project. The application in this tutorial is just going to crash at the press of a button, so I have gone with the “Single View Application” template.

New Project

Press Next to see a form where you select some options for the application. Enter a name, and then make sure the Language is set to Swift.

Project Options

Add some buggy code

Now we need to add some code that will demonstrate a crash. This is a good opportunity to show you how Swift and Objective-C code can be used together, so lets write the buggy code in Objective-C and call it from Swift code. In XCode, right click the application folder and select “New File…”. In the panel that opens, select the “Objective-C File” template. In the next form, give the file a name (I’ve called it Buggy) and press Next. After doing this, you’ll see a message that you’ve probably never seen before:

Bridging Header

An Objective-C bridging header is a .h file where you can import Objective-C headers. Any headers that you import into the bridging header can be used in any swift code in your application. Go ahead and click “Yes” on the message popup.

Now, add an Objective-C Header file to go with the implementation file you just added. In this header file, add a single function definition as follows:

In the implementation, write any code you want that causes an app crash. Here I simply call an invalid selector:

Now, as mentioned previously, you’ll need to import Buggy.h into the bridging header so that you can call it from swift code. You’ll also need to import Foundation.h to get the NSObject class that Buggy extends. Here is how this looks in the bridging header:

Add UI to call the buggy code

To finish off the demo application, open Main.storyboard and add a button. Next open the Assistant editor by clicking the tuxedo icon near the top right corner of XCode. This will cause ViewController.swift to open up beside the Main.storyboard UI editor. Select the button you added, then Hold down the control key and drag the mouse from the button to the ViewController.swift code. This will cause a little popup to appear. Change the Connection to Action, give it a name and click “Connect”.

Button Action

In the action code that appears (which is written in Swift) call the Objective-C Buggy code:

Running the application now and clicking the button will cause the app to crash as expected. That leaves one last thing to do…

Integrating Raygun

By integrating Raygun into your application, crash reports will be sent to your Raygun account where you and your team can view the error information and work on solving the bug. This is especially valuable when your application has been published – so you don’t have to worry about whether or not your customers have told you about all the exceptions that have occurred.

There are 2 ways to add Raygun to your project: use CocoaPods (a dependency manager) by following the instructions here, or manually download and reference the framework. You can download the latest version of Raygun4iOS from here. To reference this in your Swift application, click the project in XCode, then select “Build Phases”, open the “Link Binary With Libraries” section and then drag the Raygun4iOS.framework into the list.

Raygun Reference

Since Raygun4iOS is an Objective-C framework, add the following import to your bridging file so that you can call it from Swift code:

Finally, in AppDelegate.swift, add the following code to the application function. Your app API key can be obtained when you create a new application in your Raygun account, or view the Application Settings of an existing application.

And that’s all it takes to integrate Raygun into a Swift app!

Now run the application to deploy it to either the simulator or a device. Please note that if the app crashes while the debugger is attached, XCode probably won’t let execution to continue which will prevent Raygun from seeing it, so it’s best to stop the XCode debugger after deploying. Start the app, and then press the button which will crash and close down the application. At the time the application crashes, the application will be in an unpredictable state, so Raygun4iOS safely saves the error report rather than sending it straight away. Open the application one last time to cause the saved error report to be sent to your Raygun account.

Upload dSYMs with the Raygun Sidekick

If you are familiar with iOS crash reporting, you’ll know that symbolicating a crash report with a dSYM will produce a far more useful stack trace. Your Raygun account can take care of symbolicating all your iOS crash reports if you upload the appropriate dSYM to your Raygun account. The most convenient way to do this which we recommend is to use the Raygun Sidekick Mac tool. Read more about this here!

Try Raygun in your Swift apps today

If you have any question about Raygun, we’d love to hear them in the comment section below, or in the forums. If you want to learn more about working with Swift, you can find various resources here.

Like the sound of getting awareness into how healthy your published applications are? Sign up for a free 30 day Raygun trial now – No credit card required.

Share this post