Primeiros passos com o Firebase Performance Monitoring para iOS

Este guia mostra como usar o Monitoramento de desempenho do Firebase com seu aplicativo, seguindo estas etapas:

  1. Pré-requisitos
  2. Adicionar o Firebase ao projeto do iOS
  3. Adicionar o Performance Monitoring ao app
  4. (Opcional) Definir um rastro personalizado e uma ou mais métricas personalizadas no aplicativo
  5. Verificar os resultados do Monitoramento de desempenho no Console do Firebase
  6. Implantar o app e analisar os resultados no Firebase console.

Pré-requisitos

Antes de começar, é preciso que seu ambiente tenha as seguintes configurações:

  • Xcode 8.2.1 ou posterior
  • Um projeto do Xcode segmentado para iOS 8 ou versões posteriores
  • O identificador de pacote do seu app
  • CocoaPods 1.0.0 ou posterior

Adicionar o Firebase ao projeto do iOS

Em seguida, você precisa adicionar o Firebase ao seu app, adicionar o SDK e inicializar o Firebase em seu aplicativo. Para ver instruções, consulte Adicionar o Firebase ao projeto do iOS.

Adicionar o Monitoramento de desempenho ao app

  1. Abra o podfile que você criou para o projeto (ou crie um usando o comando pod init) e, em seguida, adicione as seguintes linhas dentro da seção de destino:
    pod 'Firebase/Core'
    pod 'Firebase/Performance'
  2. No diretório onde seu podfile está localizado, execute o seguinte comando para instalar o SDK do Monitoramento de desempenho:
    pod install
  3. No final do comando, abra o arquivo .xcworkspace usando o Xcode.
  4. Importe o módulo do Firebase no seu UIApplicationDelegate:

    Swift

    import Firebase
    

    Objective-C

    @import Firebase;
    
  5. Configure uma instância compartilhada do FirebaseApp, que geralmente está no método application:didFinishLaunchingWithOptions: do aplicativo

    Swift

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

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  6. Recompile o app. Os traces automáticos e as solicitações de rede HTTP/S agora serão monitorados.

(Opcional) Definir um trace personalizado e uma ou mais métricas no app

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. Você pode ter vários traces personalizados no app, e é possível ter 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, e estas métricas estão associadas aos traces que os criam.

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

    Swift

    import FirebasePerformance

    Objective-C

    @import FirebasePerformance;

  2. Imediatamente antes do código em que quer iniciar um trace no app, adicione a seguinte linha de código para iniciar um trace denominado test trace:

    Swift

    let trace = Performance.startTrace(name: "test trace")

    Objective-C

    FIRTrace *trace = [FIRPerformance startTraceWithName:@"test trace"];

  3. Para contar os eventos relacionados ao desempenho que ocorrem no app (como hits e novas tentativas do cache), adicione uma linha de código semelhante à seguinte toda vez que o evento ocorre, usando uma string diferente de retry para nomear esse evento se você estiver contando um tipo diferente de evento:

    Swift

    trace.incrementMetric(named:"retry", by: 1)

    Objective-C

    [trace incrementMetric:@"retry" by:1];

  4. Imediatamente após o código onde quer parar o trace, adicione a seguinte linha de código:

    Swift

    trace.stop()

    Objective-C

    [trace stop];

Verificar os resultados do Monitoramento de desempenho no Console do Firebase

  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 aparecerão dentro de 12 horas.

Implantar o app e analisar os resultados no Console do Firebase

Depois de validar o Monitoramento de Desempenho usando um ou mais dispositivos de teste, você pode implantar a versão atualizada do app para seus usuários e usar o Console do Firebase para monitorar dados de desempenho.

(Opcional) Adicionar o monitoramento para solicitações de rede específicas

O Monitoramento de desempenho coleta solicitações de rede automaticamente. Embora isso inclua a maioria das solicitações de rede do seu aplicativo, algumas delas podem não ser relatadas. Para incluir solicitações de rede específicas no Monitoramento de desempenho, adicione o seguinte código ao seu app:

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.

(Opcional) Analisar uma amostra de traces e solicitações de rede

Saiba mais sobre os segmentos de traces específicos ou solicitações de rede no Console do Firebase. Uma amostragem aleatória de sessões gravadas exibe as seguintes informações:

uma imagem da página de sessões do Monitoramento de desempenho do Firebase

  • CPU: o SDK do Monitoramento de desempenho captura quanto tempo do usuário e do sistema é consumido pelo aplicativo.
  • Memória: o SDK do Monitoramento de desempenho captura a quantidade de memória heap usada pelo aplicativo. Memória heap é a memória usada para alocações dinâmicas, incluindo objetos criados, desalocados e que o aplicativo está usando ativamente.
  • Informações individuais: informações detalhadas sobre uma única instância de uma solicitação de trace ou rede, incluindo a hora de início e de término, a duração, o tamanho da solicitação e o tamanho da resposta.
  • Instâncias simultâneas: informações sobre traces ou solicitações de rede que ocorreram ao mesmo tempo.
  • Atributos do dispositivo: informações sobre o dispositivo, incluindo versão do aplicativo, modelo, versão do sistema operacional, rádio e atributos personalizados.

Para visualizar essas amostras detalhadas no Console do Firebase, abra um dos traces ou solicitações de rede do seu aplicativo e clique em Ver sessões. Como alternativa, clique no link para as sessões do atributo específico.

uma imagem do trace do Monitoramento de desempenho do Firebase com um link para as sessões

As sessões que o Monitoramento de desempenho coleta são distribuídas em percentis para cada métrica. As sessões em percentis menores têm métricas com valores mais baixos do que as sessões em percentis mais altos. Para filtrar as sessões disponíveis por percentil, use o menu suspenso acima dos detalhes das sessões.

uma imagem da página de sessões do Monitoramento de desempenho 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

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.