Stay organized with collections
Save and categorize content based on your preferences.
Firebase Performance Monitoring
plat_iosplat_androidplat_webplat_flutter
Gain insight into your app's performance issues.
Firebase Performance Monitoring is a service that helps you to gain insight into the
performance characteristics of your Apple, Android, and web apps.
You use the Performance Monitoring SDK to collect performance data from your app, then
review and analyze that data in the Firebase console. Performance Monitoring helps you
to understand in real time where the performance of your app can be improved so
that you can use that information to fix performance issues.
Automatically measure app startup time, HTTP network requests, and
more
When you integrate the Performance Monitoring SDK into your app, you don't need to
write any code before your app starts automatically monitoring several
critical aspects of performance.
For native apps, the SDK logs startup time, rendering data by screen, and
activity while in the foreground or background. For web apps, the SDK logs
aspects like first contentful paint, ability for users to interact with
your app, and more.
Gain insight into situations where app performance could be
improved
Optimizing the performance of your app can be challenging when you don't
know exactly why it is falling short of user expectations. That's why
Performance Monitoring lets you see performance metrics broken down by
attributes, like country,
device, app version, and OS level.
Customize monitoring for your app
You can instrument
custom code traces
to capture your app's performance in specific situations, like when you
load a new screen or display a new interactive feature. And, you can
create custom metrics on these custom code traces to count events
that you define (like cache hits) during those traces.
Identify significant changes in app performance
Identifying and resolving major app performance issues, like network
outages, is vital to the success of your app. Performance Monitoring lets
you set up and customize alerts for
the most critical parts of your app so you can see and respond to
performance pitfalls – before
they affect your users.
How does it work?
When you add the Performance Monitoring SDK, Firebase automatically starts collecting
data for several common processes in your app, for example:
Performance Monitoring uses traces to collect data about these processes. A trace is
a report that contains data captured between two points in time in your app.
The collected performance data for each trace are called metrics and vary
depending on the type of trace. For example, when an instance of your app issues
a network request, the trace collects metrics that are important for network
request monitoring, like response time and payload size.
Each time an instance of your app runs a monitored process, the associated trace
also automatically collects attributes data for that app instance. For
example, if an Android app issues a network request, the trace collects the
device, app version, and other attributes for that specific app instance. You
can use these attributes to filter your performance data and learn if specific
user segments are experiencing issues.
The out-of-the-box traces from Performance Monitoring get you started with monitoring your
app, but to learn about the performance of specific tasks or flows, try out
instrumenting your own custom traces of code
in your app.
Implementation path
Add the Performance Monitoring SDK to your app
You can add the Performance Monitoring SDK to your app, along with any other
Firebase products that you want to use in your app. Apple platforms |
Android |
Web |
Flutter
(Optional)
Instrument custom code traces and custom metrics in your app
Using the Performance Monitoring SDK, you can instrument
custom code traces and
custom metrics
to measure specific aspects of your app's performance.
Monitor performance data in the console in real time
In the
Firebase console,
you can monitor performance data from your users to learn the specific
situations where your app's performance could be improved. You can also
break down the performance data by
attributes, like app version,
country, device, or OS.
User data
Performance Monitoring does not permanently store any personally identifiable
information (such as names, email addresses, or phone numbers). While monitoring
HTTP network requests, Performance Monitoring uses URLs (not including URL parameters)
to build aggregated and anonymous URL patterns that are eventually persisted
and shown in the Firebase console.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-27 UTC."],[],[],null,["Firebase Performance Monitoring \nplat_ios plat_android plat_web plat_flutter \nGain insight into your app's performance issues. \nFirebase Performance Monitoring is a service that helps you to gain insight into the performance characteristics of your Apple, Android, and web apps.\n\n\u003cbr /\u003e\n\nYou use the Performance Monitoring SDK to collect performance data from your app, then\nreview and analyze that data in the Firebase console. Performance Monitoring helps you\nto understand in real time where the performance of your app can be improved so\nthat you can use that information to fix performance issues.\n\n\u003cbr /\u003e\n\nReady to get started? Choose your platform:\n\n[iOS+](/docs/perf-mon/get-started-ios)\n[Android](/docs/perf-mon/get-started-android)\n[Web](/docs/perf-mon/get-started-web)\n[Flutter](/docs/perf-mon/flutter/get-started)\n\nKey capabilities\n\n|-------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Automatically measure app startup time, HTTP network requests, and more | When you integrate the Performance Monitoring SDK into your app, you don't need to write any code before your app starts automatically monitoring several critical aspects of performance. For native apps, the SDK logs startup time, rendering data by screen, and activity while in the foreground or background. For web apps, the SDK logs aspects like first contentful paint, ability for users to interact with your app, and more. |\n| Gain insight into situations where app performance could be improved | Optimizing the performance of your app can be challenging when you don't know exactly why it is falling short of user expectations. That's why Performance Monitoring lets you see performance metrics broken down by [*attributes*](/docs/perf-mon/attributes), like country, device, app version, and OS level. |\n| Customize monitoring for your app | You can instrument [*custom code traces*](/docs/perf-mon/custom-code-traces) to capture your app's performance in specific situations, like when you load a new screen or display a new interactive feature. And, you can create *custom metrics* on these custom code traces to count events that you define (like cache hits) during those traces. |\n| Identify significant changes in app performance | Identifying and resolving major app performance issues, like network outages, is vital to the success of your app. Performance Monitoring lets you [set up and customize alerts](/docs/perf-mon/alerts) for the most critical parts of your app so you can see and respond to performance pitfalls -- before they affect your users. |\n\nHow does it work?\n\nWhen you add the Performance Monitoring SDK, Firebase *automatically* starts collecting\ndata for several common processes in your app, for example:\n\n|---|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------|\n| | - [App start up time for Apple and Android apps](/docs/perf-mon/app-start-foreground-background-traces) - [Screen rendering for Apple and Android apps](/docs/perf-mon/screen-traces) | - [Page loading for web apps](/docs/perf-mon/page-load-traces) - [Network requests for all types of apps](/docs/perf-mon/network-traces) |\n\nPerformance Monitoring uses ***traces*** to collect data about these processes. A trace is\na report that contains data captured between two points in time in your app.\n\nThe collected performance data for each trace are called ***metrics*** and vary\ndepending on the type of trace. For example, when an instance of your app issues\na network request, the trace collects metrics that are important for network\nrequest monitoring, like response time and payload size.\n\nEach time an instance of your app runs a monitored process, the associated trace\nalso automatically collects ***attributes*** data for that app instance. For\nexample, if an Android app issues a network request, the trace collects the\ndevice, app version, and other attributes for that specific app instance. You\ncan use these attributes to filter your performance data and learn if specific\nuser segments are experiencing issues.\n\nThe out-of-the-box traces from Performance Monitoring get you started with monitoring your\napp, but to learn about the performance of specific tasks or flows, try out\n[instrumenting your own custom traces of code](/docs/perf-mon/custom-code-traces)\nin your app.\n\nImplementation path\n\n|---|---------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| | Add the Performance Monitoring SDK to your app | You can add the Performance Monitoring SDK to your app, along with any other Firebase products that you want to use in your app. [Apple platforms](/docs/perf-mon/get-started-ios) \\| [Android](/docs/perf-mon/get-started-android) \\| [Web](/docs/perf-mon/get-started-web) \\| [Flutter](/docs/perf-mon/flutter/get-started) |\n| | *(Optional)* Instrument custom code traces and custom metrics in your app | Using the Performance Monitoring SDK, you can instrument [custom code traces and custom metrics](/docs/perf-mon/custom-code-traces) to measure specific aspects of your app's performance. |\n| | Monitor performance data in the console in real time | In the [Firebase console](//console.firebase.google.com/project/_/performance), you can monitor performance data from your users to learn the specific situations where your app's performance could be improved. You can also break down the performance data by [attributes](/docs/perf-mon/attributes), like app version, country, device, or OS. |\n\nUser data\n\nPerformance Monitoring does not permanently store any personally identifiable\ninformation (such as names, email addresses, or phone numbers). While monitoring\nHTTP network requests, Performance Monitoring uses URLs (not including URL parameters)\nto build aggregated and anonymous URL patterns that are eventually persisted\nand shown in the Firebase console.\n\nFor more details, refer to the\n[Examples of information collected by\nPerformance Monitoring](/support/privacy#performance-monitoring-collected-info).\n\nNext steps\n\n- To get started using Performance Monitoring in your app, visit:\n\n - [Get Started with Performance Monitoring for Apple platforms](/docs/perf-mon/get-started-ios)\n - [Get Started with Performance Monitoring for Android](/docs/perf-mon/get-started-android)\n - [Get Started with Performance Monitoring for web](/docs/perf-mon/get-started-web)\n - [Get Started with Performance Monitoring on Flutter](/docs/perf-mon/flutter/get-started)\n- To learn about setting up alerts, see [Set up alerts for performance issues](https://firebase.google.com/docs/perf-mon/alerts)."]]