Adicionar monitoramento personalizado para solicitações de rede específicas (apps para Apple e Android)
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
O Performance Monitoring coleta traces para ajudar você a monitorar o desempenho do app. Um trace é um relatório de dados de desempenho capturado entre dois momentos no app.
Os traces de solicitações de rede coletados automaticamente pelo Performance Monitoring incluem a maioria das solicitações de rede do app. No entanto, algumas delas podem não ser reportadas ou talvez você precise usar uma biblioteca diferente para fazer solicitações de rede. Nesses casos, é possível usar a API Performance Monitoring para instrumentar manualmente traces de solicitação de rede personalizada. Os traces de solicitações de rede personalizados só oferecem suporte aos apps para Apple e Android.
As métricas padrão de um trace de solicitação de rede personalizada são as mesmas dos traces de solicitação de rede coletados automaticamente pelo Performance Monitoring, especificamente o tempo de resposta, o tamanho do payload de solicitação e resposta e a taxa de sucesso. Os traces de solicitações de rede personalizados não oferecem suporte à adição de métricas personalizadas.
No seu código, você define o início e o fim de um trace de solicitação de rede personalizada usando as APIs fornecidas pelo SDK do Performance Monitoring.
Os traces de solicitação de rede personalizada aparecem no console do Firebase com as solicitações de rede que o Performance Monitoring captura automaticamente (na subguia Solicitações de rede da tabela de traces).
Adicionar traces de solicitações de rede personalizados
Use a API HTTPMetric do Performance Monitoring (Swift | Obj-C) para adicionar traces de solicitação de rede personalizada e, assim, monitorar solicitações de rede específicas.
Para instrumentar manualmente as solicitações de rede personalizadas no Performance Monitoring, adicione o seguinte código:
Swift
Observação: este produto do Firebase não está disponível para destinos macOS, Mac Catalyst e watchOS.
Os traces de solicitações de rede personalizados também aceitam a adição de atributos personalizados
(Swift |
Obj-C),
mas não de métricas personalizadas.
Próximas etapas
Configure alertas para solicitações de rede que estejam afetando
o desempenho do app. Por exemplo, configure um alerta por e-mail para
sua equipe que será enviado quando o tempo de resposta para um padrão de URL específico exceder
um limite definido por você.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-09-04 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."]]