Search Unity

Feature requests after using the preview for a while

Discussion in 'Unity Cloud Diagnostics' started by rjevans, Aug 19, 2016.

  1. rjevans

    rjevans

    Joined:
    Sep 24, 2010
    Posts:
    24
    So I've been using the game performance reporting service for a bit now, and it's a great start! Getting exceptions from builds has been incredibly useful. I've been trying to think of ways to leverage the data more and here's a list of things that I think would be super useful to see as feature additions:

    Interface:
    • Clear/delete specific exceptions: When I'm going through all the reported exceptions, I'll usually look at them one at a time, analyze the data, and then move on to the next one. It'd be nice to be able to clear an exception at that point, instead of needing to go through *all* of them and and then click "clear all exceptions" in the UI. Especially if new exceptions are potentially coming in as I'm trying to clear out old data, it feels a bit dicey to press that button.
    • Filters: text filter is a great start. I'd also love to be able to filter by date range, version number, operating system, etc. Dates are probably most useful in the current context?
    • Add the ability to sort by count of affected users/devices? That way I can sort to see the stuff that's affecting the most users at the top of the list
    • Grouping by final call in the call stack. As an example right now I have an IndexOutOfRange exception in a method that gets called from several places. The last call is always in my function DijkstraMap.GetWeight(x,y), but the call stacks to get to that method are often varied. I'd like to see all of these calls still get lumped into a single row/report count since they're related, even if it took an entirely different view mode/toggle in the interface

    API:
    • To integrate I put the CrashReporting.Init() call in my main menu scene, which works great. ON returning to my main menu scene though, the Init call throws an exception on being called again. It'd be nice if the API handled this case silently. Alternatively it'd be nice if there was some sort of flag to check to see if the API is initialized

    Data:
    • This probably goes beyond the intent of the API, but I'd *love* to find a way to have this include the text of the output log text file. Exception info is great but there's often a lot of useful data in the output log that would help us track down issues.
    • In addition to affected OS, I'd love to see more device info when an exception occurs. On PC in particular knowing cpu/gpu would be super useful
     
  2. wcorwin

    wcorwin

    Joined:
    Feb 7, 2014
    Posts:
    9
    Great suggestions!

    A few answers:

    Interface: Deleting specific exceptions is high on the todo list, but was somewhat ignored. I'll see if we can bump that in priority as its been requested multiple times.

    Your final suggestion of grouping is a great idea. I'm not sure what the UI would look like for something along those lines, but it might be worth a quick dive to see what it would take.

    API: If you ever get the chance to upgrade to 5.4, we have integrated crash reporting in to the editor, so you can eliminate the call to Init() and remove the plugin entirely.

    Data: We do track cpu/gpu along with some other relevant device info. Sadly, it's not exposed on the UI. It's probably not coming up soon on the roadmap, but it's something we need to do.
     
  3. rjevans

    rjevans

    Joined:
    Sep 24, 2010
    Posts:
    24
    Thanks - this is all great to hear.

    We just launched this week into early access so we'll probably hold off on 5.4 until stuff calms down a bit, good to know the call is gone.

    And yeah in terms of priorities deleting specific exceptions is far and away #1. So yay!
     
  4. rjevans

    rjevans

    Joined:
    Sep 24, 2010
    Posts:
    24
    One more request - the ability to filter or remove based on a given version. Our specific use case: there's a pirated copy of an old version and a nontrivial number of the exceptions reported are from people running this bad build. I'm spending a good bit of time trying to dig through finding the real issues and it'd be nice to focus on stuff from just the most recent game version.
     
  5. mahdi_jeddi

    mahdi_jeddi

    Joined:
    Jul 18, 2016
    Posts:
    246
    My main request is a way to know whether the exception was thrown in the editor. I sometimes see some exception in the reports that I myself caused and panic to see why it's happening.
     
  6. Maverick

    Maverick

    Joined:
    Dec 18, 2009
    Posts:
    240
    Sorry to ask it here in suggestions, but couldn't find any useful info.

    Starting with 5.4 and built-in performance reporting, how can we specify current version and how do we switch it off in the editor? It was quite handy with old plugin version, using just an Init().

    Thanks.
     
  7. thomasn_unity

    thomasn_unity

    Unity Technologies

    Joined:
    Jun 21, 2016
    Posts:
    60
    Crash reporting pulls the version number from the bundle version value in the player settings, so you should be able to set it there, although I think it only shows up in the inspector on some platforms. If it's not there for your platform, you might be able to set it on another platform and switch back.

    Also, there's currently no simple way to switch it off in the editor. The workaround is to disable it entirely, and only enable it when you make a build. We know that's not ideal and we're working on a better solution.
     
  8. Maverick

    Maverick

    Joined:
    Dec 18, 2009
    Posts:
    240
    Switching to another platform just to set bundle version is not really a viable solution. For now we'll be turning it off and use old approach.

    Hope you'll come up with a solution as soon as possible.

    Thanks.
     
  9. mahdi_jeddi

    mahdi_jeddi

    Joined:
    Jul 18, 2016
    Posts:
    246
    I have my own build system and version that also sets the bundle version on iOS and works fine on Windows. But yeah, it should be visible on all platforms anyway if Unity themselves are using it like this.