Agrega supervisión personalizada en solicitudes de red específicas (apps para Apple y Android)
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Performance Monitoring recopila seguimientos para ayudarte a supervisar el rendimiento de tu app.
Un seguimiento es un informe de datos de rendimiento que se capturan entre dos momentos en
tu app.
Los seguimientos de solicitudes de red que recopila Performance Monitoring automáticamente incluyen la mayoría de las solicitudes de red de tu app. Sin embargo, es posible que no se informen algunas solicitudes o que uses una biblioteca diferente para hacer solicitudes de red. En estos
casos, puedes usar la API de Performance Monitoring para instrumentar manualmente los
seguimientos personalizados de solicitudes de red. Los seguimientos de solicitudes de red personalizados solo son
compatibles con las apps para Apple y Android.
Las métricas predeterminadas para un seguimiento de solicitud de red personalizado son las mismas que las de los seguimientos de solicitudes de red que recopila Performance Monitoring automáticamente: el tiempo de respuesta, el tamaño de la carga útil de la solicitud y de la respuesta, y la tasa de éxito. Los seguimientos de solicitudes de red personalizados no admiten agregar métricas personalizadas.
En el código, tú defines el inicio y el final de un seguimiento de solicitud de red personalizado con las APIs que proporciona el SDK de Performance Monitoring.
Los seguimientos de solicitudes de red personalizados aparecen en la Firebase console junto con
solicitudes de red que Performance Monitoring captura automáticamente
(en la pestaña secundaria Solicitudes de red de la tabla de seguimientos).
Agrega seguimientos de solicitudes de red personalizados
Usa la
API de HttpMetric
de Performance Monitoring para agregar seguimientos de solicitudes de red personalizados y supervisar solicitudes de red específicas.
Para instrumentar manualmente las solicitudes de red personalizadas en Performance Monitoring, agrega código similar
al siguiente:
Kotlin
valurl=URL("https://www.google.com")valmetric=Firebase.performance.newHttpMetric("https://www.google.com",FirebasePerformance.HttpMethod.GET,)metric.trace{valconn=url.openConnection()asHttpURLConnectionconn.doOutput=trueconn.setRequestProperty("Content-Type","application/json")try{valoutputStream=DataOutputStream(conn.outputStream)outputStream.write(data)}catch(ignored:IOException){}// Set HttpMetric attributessetRequestPayloadSize(data.size.toLong())setHttpResponseCode(conn.responseCode)printStreamContent(conn.inputStream)conn.disconnect()}
Los seguimientos de solicitudes de red personalizados también permiten agregar atributos personalizados, pero no métricas personalizadas.
Próximos pasos
Configura alertas para las solicitudes de red que degraden
el rendimiento de tu app. Por ejemplo, puedes configurar una alerta por correo electrónico para
tu equipo si el tiempo de respuesta de un patrón de URL específico supera
un umbral que estableciste.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-08-21 (UTC)"],[],[],null,["\u003cbr /\u003e\n\niOS+ Android Flutter \n\n\u003cbr /\u003e\n\nPerformance Monitoring collects *traces* to help you monitor the performance of your app. A\ntrace is a report of performance data captured between two points in time in\nyour app.\n\nThe\n[network request traces automatically collected by Performance Monitoring](/docs/perf-mon/network-traces)\ninclude most network requests for your app. However, some requests might not be\nreported or you might use a different library to make network requests. In these\ncases, you can use the Performance Monitoring API to manually instrument\n***custom network request traces***. Custom network request traces are only\nsupported for Apple and Android apps.\n\nThe default metrics for a custom network request trace are the same as those for\nthe network request traces automatically collected by Performance Monitoring, specifically\nresponse time, response and request payload size, and success rate. Custom\nnetwork request traces do not support adding custom metrics.\n\nIn your code, you define the beginning and the end of a custom network request\ntrace using the APIs provided by the Performance Monitoring SDK.\n\nCustom network request traces appear in the Firebase console alongside the\nnetwork requests that Performance Monitoring captures automatically\n(in the *Network requests* subtab of the traces table).\n\nAdd custom network request traces\n\nUse the Performance Monitoring HTTPMetric API\n([Swift](/docs/reference/swift/firebaseperformance/api/reference/Classes/HTTPMetric)\n\\|\n[Obj-C](/docs/reference/ios/firebaseperformance/api/reference/Classes/FIRHTTPMetric))\nto add custom network request traces to monitor specific network requests.\n\nTo manually instrument custom network requests in Performance Monitoring, add code similar\nto the following: \n\nSwift\n\n\n**Note:** This Firebase product is not available on macOS, Mac Catalyst, watchOS targets. \n\n guard let metric = HTTPMetric(url: \"https://www.google.com\", httpMethod: .get) else { return }\n\n metric.start()\n guard let url = URL(string: \"https://www.google.com\") else { return }\n let request: URLRequest = URLRequest(url:url)\n let session = URLSession(configuration: .default)\n let dataTask = session.dataTask(with: request) { (urlData, response, error) in\n if let httpResponse = response as? HTTPURLResponse {\n metric.responseCode = httpResponse.statusCode\n }\n metric.stop()\n }\n dataTask.resume()\n\nObjective-C\n\n\n**Note:** This Firebase product is not available on macOS, Mac Catalyst, watchOS targets. \n\n @property (nonatomic) FIRHTTPMetric *metric;\n\n - (void)beginManualNetworkInstrumentation {\n self.metric =\n [[FIRHttpMetric alloc] initWithURL:[NSURL URLWithString:@\"https://www.google.com\"]\n HTTPMethod:FIRHTTPMethodGET];\n\n [self.metric start];\n\n NSURLRequest *request =\n [NSURLRequest requestWithURL:[NSURL URLWithString:@\"https://www.google.com\"]];\n NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request\n delegate:self];\n [connection resume];\n }\n\n - (void)connection:(NSURLConnection *)connection\n didReceiveResponse:(NSURLResponse *) response {\n NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response\n self.metric.responseCode = httpResponse.statusCode;\n [self.metric stop];\n }\n\nCustom network request traces also support adding custom attributes\n([Swift](/docs/reference/swift/firebaseperformance/api/reference/Protocols/PerformanceAttributable#setvalue_:forattribute:) \\|\n[Obj-C](/docs/reference/ios/firebaseperformance/api/reference/Protocols/FIRPerformanceAttributable#-setvalue:forattribute:))\nbut not custom metrics.\n\nNext steps\n\n- [Set up alerts](/docs/perf-mon/alerts) for network requests that are degrading the performance of your app. For example, you can configure an email alert for your team if the *response time* for a specific URL pattern exceeds a threshold that you set."]]