Ir para o console

Primeiros passos com o Monitoramento de desempenho para iOS

Antes de começar

Adicione o Firebase ao seu projeto do iOS, caso ainda não tenha feito.

Etapa 1: adicionar o Monitoramento de desempenho ao seu app

  1. Abra o podfile que você criou para o projeto ou execute pod init para criar um. Depois, adicione as seguintes linhas na seção de destino:

    pod 'Firebase/Analytics'
    pod 'Firebase/Performance'
  2. No diretório do seu podfile, execute o seguinte comando para instalar o SDK do Monitoramento de desempenho:

    pod install
  3. Abra o arquivo .xcworkspace usando o Xcode.

  4. Importe o módulo do Firebase no UIApplicationDelegate:

    Swift

    import Firebase

    Objective-C

    @import Firebase;
  5. Configure uma instância compartilhada do FirebaseApp, que é normalmente encontrada no método application:didFinishLaunchingWithOptions::

    Swift

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  6. Recompile o app.

O Firebase agora está monitorando os traces automáticos e as solicitações de rede HTTP/S.

Etapa 2: verificar o Console do Firebase para visualizar os resultados do Monitoramento de desempenho

  1. Execute o app no simulador Xcode (Produto -> Executar).

  2. Confirme se os resultados do Monitoramento de desempenho aparecem no Console do Firebase.

    Os resultados geralmente são exibidos em até 12 horas.

Etapa 3: adicionar métricas e traces personalizados (opcional)

Um trace personalizado é um relatório de dados de desempenho associados a algum código no app. Para saber mais sobre traces personalizados, consulte a visão geral do Monitoramento de desempenho.

É possível ter vários traces personalizados no app, além de manter mais de um deles em execução por vez. Cada trace personalizado pode ter uma ou mais métricas para contar eventos relacionados ao desempenho no app. Elas estão associadas aos traces que as criam.

Os nomes das métricas e dos traces personalizados precisam atender aos seguintes requisitos: não conter espaço em branco inicial ou final, não conter sublinhado (_) no início e ter no máximo de 32 caracteres.

  1. Adicione o módulo do Monitoramento de desempenho ao cabeçalho:

    Swift

    import FirebasePerformance
    

    Objective-C

    @import FirebasePerformance;
    
  2. Para iniciar e interromper um trace personalizado, una o código que você quer rastrear com linhas de código semelhantes às seguintes:

    Swift

    let trace = Performance.startTrace(name: "customTraceName")
    
    // code that you want to trace
    
    trace.stop()
    

    Objective-C

    FIRTrace *trace = [FIRPerformance startTraceWithName:@"customTraceName"];
    
    // code that you want to trace
    
    [trace stop];
    
  3. Para incluir uma métrica personalizada, adicione uma linha de código semelhante às seguintes toda vez que o evento ocorrer. Por exemplo, essa métrica personalizada conta eventos relacionados ao desempenho que ocorrem no seu aplicativo, como ocorrências em cache ou novas tentativas.

    Swift

    let trace = Performance.startTrace(name: "customTraceName")
    
    trace.incrementMetric(named:"eventName", by: 1)
    // code that you want to trace (and log custom metrics)
    
    trace.stop()
    

    Objective-C

    FIRTrace *trace = [FIRPerformance startTraceWithName:@"customTraceName"];
    
    [trace incrementMetric:@"eventName" by:1];
    // code that you want to trace (and log custom metrics)
    
    [trace stop];
    

Etapa 4: adicionar o monitoramento a solicitações de rede específicas (opcional)

O Monitoramento de desempenho coleta solicitações de rede automaticamente. Isso inclui a maioria das solicitações de rede do seu aplicativo, mas algumas delas podem não ser relatadas.

Para incluir solicitações de rede personalizadas no Monitoramento de desempenho, adicione ao app o seguinte código:

Swift

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];
}

As solicitações de rede HTTP/S capturadas especificamente dessa maneira aparecem no Console do Firebase com as solicitações de rede que o Monitoramento de desempenho captura automaticamente.

Etapa 5: implantar seu app e analisar os resultados

Depois de validar o Monitoramento de desempenho usando o simulador Xcode e um ou mais dispositivos de teste, você será capaz de implantar a versão atualizada do seu app para os usuários.

É possível monitorar dados de desempenho no Console do Firebase.

Problemas conhecidos

  • O Monitoramento de desempenho tem problemas de compatibilidade conhecidos com o GTMSQLite. Recomendamos não usar o Monitoramento de desempenho com apps que usam GTMSQLite.
  • O método swizzling após chamar FirebaseApp.configure() pode interferir no SDK do Monitoramento de desempenho.
  • Problemas conhecidos no simulador de iOS 8.0 a 8.2 impedem o Monitoramento de desempenho de capturar eventos de desempenho. Esses problemas são corrigidos no simulador de iOS 8.3 e versões posteriores.
  • As conexões estabelecidas com backgroundSessionConfiguration da NSURLSession terão tempos de conexão mais longos do que o esperado. Essas conexões são executadas fora do processo, e o tempo reflete os eventos de retorno de chamada em processo.

Próximas etapas