Google is committed to advancing racial equity for Black communities. See how.

Monitoring performance data in the console

Track key metrics in your dashboard

Add your key metrics to your dashboard to learn how they're trending. You can quickly identify regressions by seeing week-over-week changes or verify that recent changes in your code are improving performance.

an image of the Firebase Performance Monitoring metrics dashboard

Here are some example trends that you could track:

  • An increase in app start time since you added a new blocking API call to app start
  • A drop in response payload size for a network request since you implemented resizing full-size images to thumbnails
  • A decrease in network success rate for a third-party API call during an ecosystem outage
  • A decrease in the slow rendering frames for your table view after you optimize the offscreen processing of each item

Each member of a Firebase project can configure their own dashboard. You can track metrics that are important to you, while other project members can track completely different sets of key metrics on their own dashboards.

To add a metric to your dashboard, go to the Performance dashboard in the Firebase console, then click the Dashboard tab. Click an empty metric card, then select an existing metric to add to your dashboard. Click on a populated metric card for more options, like to replace or remove a metric.

The dashboard shows collected metric data over time, both in graphical form and as a numerical percentage change.

  • Each metric card displays the percentage change in the metric's value over the selected time range, as well as the metric's most recently collected value. The statement at the top of the dashboard is an interpretation of the percentage change.
  • By default, the dashboard displays the metric's median value. If you'd like to view how different segments of your users experience your app, select a different percentile from the dropdown at the top of the dashboard.
  • If you have different versions of your app, you can view how the metric's value for one version is trending in comparison to another version and/or in comparison to all your versions. Select the versions from the dropdowns below the chart.

What do the red, green, and grey colors mean?

Most metrics have a desired trending direction, so the dashboard uses color to display an interpretion of whether the metric's data is trending in a good or bad direction.

For example, say you're tracking app start time for your app (a value that should be small). If this value is increasing, then the dashboard displays the metric's percentage change in red, calling attention to a possible issue. However, if the value is decreasing or unchanged, then the dashboard displays the percentage in green or grey, respectively.

If a metric doesn't have an obvious desired trending direction, like the response payload size for a network request, then the dashboard always displays the metric's percentage change in grey, regardless of how the data is trending.

What do the solid and dashed lines mean?

  • dark blue solid line — the metric's value over time for all versions of your app
    This line can be considered the baseline for your app.

  • light green solid line — the metric's value over time for a specific version of your app
    By default, the dashboard displays data for the latest version. To display a different version in the chart, use the first dropdown below the chart.

  • grey solid line — the metric's value over time for another specific version of your app
    By default, the dashboard does not display data for a second version. To display a second version in the chart, use the second dropdown below the chart.

  • light blue dashed line — the metric's value for all versions at a specific time in the past
    For example, if you select to show a chart of the last 7 days, and you hover over August 30, then the light blue dashed line tells you the metric's value for all versions on August 23.



Overview of the On device tab

In the On device tab, find a brief overview for traces related to app lifecycle (like app start time) and any developer-instrumented custom code traces (top table), as well as screen rendering traces for all the screens in your app (bottom table).

Learn more about these traces

  • Traces related to app lifecycle, like the following automatically collected traces:

    • App start trace — This trace measures the time between when the user opens your app and when your app is responsive.

    • App-in-foreground trace — This trace measures the time when the app is running in the foreground and available to the user.

    • App-in-background trace — This trace measures the time when the app is running in the background.

  • Screen rendering traces — These are automatically collected traces for each screen of your app. Each trace collects metrics for slow rendering and frozen frames.

  • Custom code traces — These are traces that you instrument in your own code to monitor specific tasks or a set of tasks. You can even add custom metrics and custom attributes to custom code traces.

View more data for each trace

From the On Device tab, you can click through various screens to explore a trace and drill down into metrics of interest. On most pages, you can use the Filter button (top-left of the screen) to filter the data by attribute, for example:

an image of Firebase Performance Monitoring data being filtered by attribute
  • Filter by App version to view data about a past release or your latest release
  • Filter by Device to learn how older devices handle your app
  • Filter by Country to make sure your database location isn't affecting a specific region

View all collected metrics for a trace

If you click a specific trace from the On device tab, you'll see an overview of the trace's data on metric cards.

  • App start, app-in-foreground, app-in-background, and custom code traces

    The Duration metric card is always available, as it's the default metric for these types of traces. For custom code traces, if you added any custom metrics to the trace, those metric cards are also shown.

    • Use the options in the top-right of the screen to view the metrics' data in aggregate, over time, or for each version of your app.
    • Click View more on a metric card to review a specific metric's data in more detail.
  • Screen rendering traces

    The available metric cards are Slow rendering and Frozen frames, as they're the default metrics for this type of trace.

    • Use the options in the top-right of the screen to view the percentage of screens that fall within the metric's threshold in aggregate, over time, or for each version of your app.
    • Click View more on a metric card to review a specific metric's data in more detail.

View in-depth information about the data

If you click View more on any metric card, you can review more in-depth information about the collected data and use richer analysis features. For example, you can filter and segment the data by attribute or view the data in the context of an app-usage session.



Overview of the Network tab

In the Network tab, find a brief overview for all your HTTP/S network request traces.

Learn more about these traces

HTTP/S network request traces are automatically collected traces that collect data from the time that your app issues a request to a service endpoint until the response from that endpoint is complete. These traces collect metrics like response time and response payload size.

In the console, data for network request traces are aggregated into URL patterns.

View more data for each trace

From the Network tab, you can click through various screens to explore a trace and drill down into metrics of interest. On most pages, you can use the Filter button (top-left of the screen) to filter the data by attribute, for example:

an image of Firebase Performance Monitoring data being filtered by attribute
  • Filter by App version to view data about a past release or your latest release
  • Filter by Device to learn how older devices handle your app
  • Filter by Country to make sure your database location isn't affecting a specific region

View all collected metrics for a trace

If you click a specific URL pattern from the Network tab, you'll see an overview of the trace's data on metric cards. The available metric cards are response time, response payload size, request payload size, and success rate, as they're the default metrics for this type of trace.

Use the options in the top-right of the screen to view the various data in aggregate, over time, or for each version of your app.

Click View more on a metric card to review a specific metric's data in more detail.

View in-depth information about the data

If you click View more on any metric card, you can review more in-depth information about the collected data and use richer analysis features. For example, you can filter and segment the data by attribute or view the data in the context of an app-usage session.



View more details about trace samples

Performance Monitoring also provides reports of user sessions, which are periods of time when your app is in the foreground. These reports are associated with a specific trace, and they present the trace in a timeline context of other traces that Performance Monitoring collected during that same session.

For example, you can see your custom code traces lined up in the order they started (along with their individual durations), and you can also see any network request traces that were happening at that same time.

The console displays a random sampling of these user sessions. They're available for iOS and Android apps and for all types of traces except screen rendering traces.

Here's some of the other data that you can view about a user session:

an image of the Firebase Performance Monitoring sessions page
  • Information about the trace: Detailed information about the trace for that session, including start time, end time, attributes (like device and country), and any applicable metrics for that type of trace (for example, duration for a custom code trace or response time for a network request trace).
  • CPU: How much user time and system time your app consumed during the session
  • Memory: How much heap memory your app used during the session

How to view sessions data

  • For app start and custom code traces

    1. In the On device tab, click a trace to display its metric cards.
    2. In the Duration card, click View more.
    3. View a sampling of sessions:
      • View sessions for any type of user — Click See sessions in the top-right, above the chart.
      • View sessions associated with a specific attribute — Click any attribute, then click the link that's next to an attribute's value (for example, Device > Google Pixel 3 > 3421 sessions).
  • For network request traces

    1. In the Network tab, click a URL pattern to display its metrics cards.
    2. In any card (except Success Rate, click View more.
    3. View a sampling of sessions:
      • View sessions for any type of user — Click See sessions in the top-right, above the chart.
      • View sessions associated with a specific attribute — Click any attribute, then click the link that's next to an attribute's value (for example, Device > Google Pixel 3 > 3421 sessions).
an image of the Firebase Performance Monitoring trace with a link to sessions

Filter sessions by percentile

Sessions are distributed into percentiles for each metric. Sessions in lower percentile ranges have a lower value for the metric than sessions in higher percentile ranges.

To filter the available sessions by percentile, use the percentiles dropdown above the sessions details.

an image of the Firebase Performance Monitoring sessions page