O monitoramento de desempenho coleta rastreamentos para ajudá-lo a monitorar o desempenho do seu aplicativo. Um rastreamento é um relatório de dados de desempenho capturado entre dois pontos no tempo em seu aplicativo.
Os rastreamentos de solicitação de rede coletados automaticamente pelo Monitoramento de desempenho incluem a maioria das solicitações de rede para seu aplicativo. No entanto, algumas solicitações podem não ser relatadas ou você pode usar uma biblioteca diferente para fazer solicitações de rede. Nesses casos, você pode usar a API de monitoramento de desempenho para instrumentar manualmente os rastreamentos de solicitação de rede personalizados . Os rastreamentos de solicitação de rede personalizados são suportados apenas para aplicativos Apple e Android.
As métricas padrão para um rastreamento de solicitação de rede personalizado são as mesmas para os rastreamentos de solicitação de rede coletados automaticamente pelo monitoramento de desempenho, especificamente tempo de resposta, resposta e tamanho da carga de solicitação e taxa de sucesso. Os rastreamentos de solicitação de rede personalizados não oferecem suporte à adição de métricas personalizadas.
Em seu código, você define o início e o fim de um rastreamento de solicitação de rede personalizado usando as APIs fornecidas pelo SDK de monitoramento de desempenho.
Os rastreamentos de solicitação de rede personalizados aparecem no Firebase console junto com as solicitações de rede que o Monitoramento de desempenho captura automaticamente (na subguia Solicitações de rede da tabela de rastreamentos).
Adicionar rastreamentos de solicitação de rede personalizados
Use a API HTTPMetric de monitoramento de desempenho ( Swift | Obj-C ) para adicionar rastreamentos de solicitação de rede personalizados para monitorar solicitações de rede específicas.
Para instrumentar manualmente solicitações de rede personalizadas no Monitoramento de desempenho, adicione um código semelhante ao seguinte:
Rápido
guard let metric = HTTPMetric(url: "https://www.google.com", httpMethod: .get) else { return }
metric.start()
guard let url = URL(string: "https://www.google.com") else { return }
let request: URLRequest = URLRequest(url:url)
let session = URLSession(configuration: .default)
let dataTask = session.dataTask(with: request) { (urlData, response, error) in
if let httpResponse = response as? HTTPURLResponse {
metric.responseCode = httpResponse.statusCode
}
metric.stop()
}
dataTask.resume()
Objective-C
@property (nonatomic) FIRHTTPMetric *metric;
- (void)beginManualNetworkInstrumentation {
self.metric =
[[FIRHttpMetric alloc] initWithURL:[NSURL URLWithString:@"https://www.google.com"]
HTTPMethod:FIRHTTPMethodGET];
[self.metric start];
NSURLRequest *request =
[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://www.google.com"]];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request
delegate:self];
[connection resume];
}
- (void)connection:(NSURLConnection *)connection
didReceiveResponse:(NSURLResponse *) response {
NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response
self.metric.responseCode = httpResponse.statusCode;
[self.metric stop];
}
Os rastreamentos de solicitação de rede personalizada também suportam a adição de atributos personalizados ( Swift | Obj-C ), mas não métricas personalizadas.
Próximos passos
- Configure alertas para solicitações de rede que estão prejudicando o desempenho do seu aplicativo. Por exemplo, você pode configurar um alerta de e-mail para sua equipe se o tempo de resposta para um padrão de URL específico exceder um limite definido por você.