Performance Reporting is a great tool for staying on top of and prioritizing the issues players experience while running your game. This Unity service, which is currently available to Plus and Pro subscribers, automatically captures unhandled exceptions and native crashes and gives you real-time reports that help you identify and prioritize performance issues. Over the past 12 months, we’ve made a series of significant improvements that will help you stay ahead of performance issues in real-time. Read on to learn more.

What’s out now

First, we’ve expanded our native support beyond iOS to also include Android, MacOS Player, Windows Player, and the Windows Editor.

Additionally, we’ve added better information for you when you upload symbols, exposing not only the overall status, but also which symbols are usable.

Last but not least, perhaps one of the biggest changes was moving the backend from MySQL to Elasticsearch. This has enabled us to store each individual report and set the stage for many improvements on the Developer Dashboard. Some of the changes include charts that give you quick insight into how often players are running into problems, tags to organize your problems, and filters for drilling into problems by date range, metadata and/or tags.

What’s new in 2018.3 Beta

Two of the most asked-for features

You asked, and we’ve listened! Reports sent by games built using 2018.3 will now contain debug logs and custom metadata. Both of these features will help you understand the scenario that led up to the report being filed.

If you’ve enabled capturing debug logs in your Performance Reporting settings, we’ll automatically capture up to 50 debug logs leading up to the report. You can customize the metadata to specify your most important key-value pair data points. This can be done at any point, such as when the game first initializes, a new level loads or even when the player takes a specific action. It’s easy to request that a new piece of metadata should be tracked with this statement:

UnityEngine.CrashReportHandler.CrashReportHandler.SetUserMetadata(“key”, “value”); 1 UnityEngine . CrashReportHandler . CrashReportHandler . SetUserMetadata ( “ key ” , “ value ” ) ;

All of this information is available on the Developer Services Dashboard:

Introducing integrated notifications for Performance Reporting

With certain services, such as Cloud Build and Collaborate, you can integrate project management and messaging tools you already use, like Slack or JIRA, into your workflow. We received a lot of positive feedback on this, so we’ve added the feature to Performance Reporting. This means that instead of having to remember to go to the Developer Dashboard to check if you’ve had any new problems, you can simply change your settings and receive a notification!

Slack, Discord, and JIRA are supported out-of-the-box, so you can very quickly and easily integrate these. It takes just minutes to set up.

If you want to integrate with something other than Slack, Discord, and Jira, you can integrate with webhooks. There are three messages currently supported:

New Problem: Triggered whenever a new problem is seen. New Problem Version: Triggered when an existing problem is seen for the first time on a new version of your game. Reopened Problem: Triggered when a previously closed problem is seen in a new version of your game.

Have feedback? Want to get involved?

Have a feature you’d like or an issue to report? We’d love to hear from you! You can get involved by reaching out to us on the Performance Reporting forum or emailing perfsupport@unity3d.com with any feedback or features that you’d like to see. We are working on expanding the tools we support with integrations and would like to know which tools you use.

We’ll also be at Unite LA, so stop the Developer Services booth and say hello!