Different grouping behavior on another account
Gunter
Posted on
Mar 20 2015
Hi, a couple of days ago I recommended someone to try out Raygun for managing errors. This person is currently using the trial period.
There is however a problem. All errors send are grouped by classname. Even if the error message, stack trace and any of the other values are different, the error is still grouped together with errors that have the same classname.
The application we're using does not appear to have this problem, but we're also sending with an older version of raygun and are on an actual plan, not the trial. Have there been any major changes that could cause this unwanted grouping behavior, either in the raygun4js or back-end? Or is this normal behavior in the trial?
lee-houghton
Posted on
Mar 21 2015
I'm seeing similar behaviour, also a trial... Although in our case the stack traces are the same, and we're using Raygun4Node. Standard Errors are OK, but any RequestError instances seem to be grouped into one group.
John-Daniel Trask
Raygun
Posted on
Mar 21 2015
Hi Everyone,
The way that grouping works is per-language that's sending it (e.g. different grouper for Ruby, .NET, Node, JavaScript, etc). This is because various languages have different styles of reporting errors, or have special requirements (e.g. pre-processing source maps or symbol files).
Now, grouping is a complicated thing to do at the best of times. It seems easy at very first glance, but you start to see things that make it complicated. Just like everything in software right? :-)
So, we're constantly making improvements to our grouping code. Usually this is based on feedback from our customers (Why are these two grouped? Why aren't these two grouped?).
So we update the grouping code.
You know what happens then? It means we make a new hash for each group, and errors start getting grouped differently. That's fine, however it has one major problem: if we just changed the grouping code for all existing applications then suddenly you get all new groups, all your links to issue trackers are on old groups with old identities, all comments are tied to old groups since the new errors have a new finger print (hash).
To make it even worse, it means every error we receive is now active again, because it has a new finger print! So all that work you do to carefully resolve-in-version or permanently ignore, has to be done again.
So, what we don't automatically upgrade the grouping code for existing apps.
This leads to two outcomes:
- New apps get the latest version of the grouping code. So if you made a new app and received the same data, it might be grouped differently (better).
- If you're happy to move to the new grouping code for an app, knowing the implications that come with it, we can make the change at our end for an existing app.
For clarity however: We don't change the grouping logic between trial and payment. For the same reason that we don't change it when we make any improvements.
I hope that helps answer why you sometimes see different behaviour!
So, here's what I propose:
- If you have things that you think should be grouped, that aren't. Or vice versa (grouped but shouldn't be), please use the Feedback link in the app to send us a note with the URL's asking us to investigate. We can then add that data to our test suite for the language grouping that you use and update our grouping code.
- If you're comfortable with re-fingerprinting and the side effects of it, you can also use the Feedback link in the app to request that we change you to the latest version of the grouping code for your app.
I hope this response helps in understanding what's happening at our end related to error grouping! :-)
Kind regards,
John-Daniel
lee-houghton
Posted on
Mar 21 2015
Thanks for the quick and detailed response! I had figured bits of it out by reading old forum posts, but your explanation is very helpful. It seems like me like a good addition to the FAQs section, although I obviously don't know how frequently it gets asked :)
I guess in my case the error message itself isn't affecting the hash; unfortunately all of my SQL errors have the same class name and stack trace, so I'll write some feedback about it.