获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

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

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

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()

Objective-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 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ê.