Adicione monitoramento personalizado para solicitações de rede específicas (aplicativos Apple e Android)

O Monitoramento de Desempenho coleta rastreamentos para ajudar você a monitorar o desempenho do seu aplicativo. Um rastreamento é um relatório de dados de desempenho capturados entre dois momentos no 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 Performance Monitoring para instrumentar manualmente rastreamentos de solicitação de rede personalizados . Os rastreamentos de solicitação de rede personalizados são compatíveis apenas com aplicativos Apple e Android.

As métricas padrão para um rastreamento de solicitação de rede personalizado são as mesmas dos rastreamentos de solicitação de rede coletados automaticamente pelo Monitoramento de desempenho, especificamente tempo de resposta, tamanho da carga útil de resposta e solicitação e taxa de sucesso. Os rastreamentos de solicitação 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 rastreamento de solicitação de rede personalizado usando as APIs fornecidas pelo SDK do Performance Monitoring.

Os rastreamentos de solicitação de rede personalizados aparecem no console do Firebase 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

Observação: este produto Firebase não está disponível em destinos macOS, Mac Catalyst e watchOS.
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()

Objetivo-C

Observação: este produto Firebase não está disponível em destinos macOS, Mac Catalyst e watchOS.
@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 personalizados também suportam a adição de atributos personalizados ( Swift | Obj-C ), mas não de 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 por e-mail para sua equipe se o tempo de resposta para um padrão de URL específico exceder um limite definido por você.