Save the date - Google I/O returns May 18-20. Register to get the most out of the digital experience: Build your schedule, reserve space, participate in Q&As, earn Google Developer profile badges, and more. Register now

Learn about HTTP/S network request performance data (any app)

Performance Monitoring uses traces to collect data about monitored processes in your app. A trace is a report that contains data captured between two points in time in your app.

For all app types, Performance Monitoring automatically collects a trace for each network request issued by your app, called an HTTP/S network request trace. These traces collect metrics for the time between when your app issues a request to a service endpoint and when the response from that endpoint is complete. For any endpoint to which your app makes a request, Performance Monitoring captures several metrics:

  • Response time — Time between when the request is made and when the response is fully received

  • Response payload size — Byte size of the network payload downloaded by the app

Data aggregation under URL patterns

Firebase Performance Monitoring automatically aggregates data for similar network requests to help you understand trends in your network request performance.

For each request, Firebase checks if the network request's URL matches a URL pattern. If the request URL matches a URL pattern, Firebase automatically aggregates the request's data under the URL pattern. Firebase displays URL patterns and their aggregated data in the Network tab in the Performance dashboard of the Firebase console.

What's a URL pattern?

A URL pattern contains a domain plus a pattern that can match a URL path, for instance:*/animals/**.

  • URL patterns can contain the following path segments:

    • plain text — matches an exact string
    • * — matches any string in a single path segment
    • ** — matches an arbitrary path suffix
  • URL patterns can be either:

For example: Any of the following URL requests could match the URL pattern*/animals/**.


The domain for automatic URL patterns can also contain * as its first segment, for instance: **/fruits/**. This is currently not supported for custom URL patterns.

Firebase maps each request to only one URL pattern. If you've configured any custom URL patterns, Firebase attempts to match request URLs to those patterns first. If Firebase finds no matching custom URL pattern, then it matches a request URL to the most representative automatic URL pattern. Learn more about automatic and custom URL patterns in the following sections.

Automatic URL patterns

Without any configuration by you, Performance Monitoring attempts to reflect your app's latest usage behavior by matching your app's requests to automatic URL patterns.

How does automatic URL pattern matching work?

Firebase matches each request to the most representative automatic URL pattern that it has derived from requests sent by your app. Note, though, that Firebase attempts to match request URLs to any configured custom URL patterns first.

The following is a basic example for how Firebase attempts to match requests to the most representative automatic URL pattern for your app.

  1. Your app sends many requests to URLs like:


    Firebase determines that** is a common request pattern for your app and adds it as an automatic URL pattern in your project.

    For any new matching requests to this URL pattern, Firebase aggregates the requests' data under the automatic URL pattern**.

  2. After one week, the majority of your app's requests are to and So, Firebase derives a more representative URL pattern of**.

    For any new matching requests to this new URL pattern, Firebase aggregates the requests' data only under the new URL pattern. Firebase continues to aggregate data for requests to under**.

  3. However, over the next several weeks, your app's requests to and decrease substantially. Firebase determines that** is not representative of your app's latest usage behavior, so Firebase starts matching these two requests back to**.

    Firebase does not aggregate any further request data under** because it's no longer the most representative automatic URL pattern.

Because automatic URL pattern matching is dynamic, be aware of the following:

  • Matches and aggregated data from previous requests aren't affected by new URL patterns. Firebase does not retroactively re-aggregate request data.

  • Only future requests are affected by new URL patterns. Firebase maps each new request to the most representative automatic URL pattern. Note, though, that Firebase attempts to match request URLs to any configured custom URL patterns first.

View automatic URL patterns and their data

The Performance dashboard of the console lists automatic URL patterns in the Network > All tab. You might see URL patterns with an Uncategorized label. These are "broad" automatic URL patterns under which Firebase can aggregate data for requests that don't match to any more specific URL pattern.

When the data retention period ends for the data aggregated under a URL pattern, Firebase deletes that data from the URL pattern. If all the data aggregated under an automatic URL pattern expires, then Firebase deletes that URL pattern from the Firebase console.

Custom URL patterns

You can create custom URL patterns to monitor specific URL patterns that Firebase isn't capturing with its derived automatic URL pattern matching. For example, you can use a custom URL pattern to troubleshoot a specific URL or to monitor a specific set of URLs over time.

Visit Create custom URL patterns to learn more.

Track, view, and filter performance data

To view real time performance data, make sure that your app uses a Performance Monitoring SDK version that's compatible with real time data processing. Learn more.

Track specific 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

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.

Learn more about using the dashboard.

View all traces and their data

To view these traces, go to the Performance dashboard in the Firebase console, then click the Network tab.

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 Page URL to view data for a specific page of your site
  • Filter by Effective connection type to learn how a 3g connection impacts your app
  • Filter by Country to make sure your database location isn't affecting a specific region

Learn more about viewing data for your traces.

Next Steps