Benutzerdefiniertes Monitoring für bestimmte Netzwerkanfragen (Apple- und Android-Apps) hinzufügen


Performance Monitoring erfasst Traces, damit Sie die Leistung Ihrer App im Blick behalten können. Ein Trace ist ein Bericht mit Leistungsdaten, die zwischen zwei Zeitpunkten in Ihrer App erfasst wurden.

Die von Performance Monitoring automatisch erfassten Traces von Netzwerkanfragen enthalten die meisten Netzwerkanfragen für Ihre App. Einige Anfragen werden jedoch möglicherweise nicht gemeldet oder Sie verwenden eine andere Bibliothek für Netzwerkanfragen. In diesen Fällen können Sie die Performance Monitoring API verwenden, um benutzerdefinierte Netzwerkanfrage-Traces manuell zu instrumentieren. Benutzerdefinierte Traces für Netzwerkanfragen werden nur für Apple- und Android-Apps unterstützt.

Die Standardmesswerte für einen benutzerdefinierten Netzwerkanfrage-Trace sind dieselben wie für die Netzwerkanfrage-Traces, die automatisch von Performance Monitoring erfasst werden, nämlich Antwortzeit, Größe der Antwort- und Anfragenutzlast sowie Erfolgsrate. Benutzerdefinierte Netzwerk-Anfrage-Traces unterstützen das Hinzufügen benutzerdefinierter Messwerte nicht.

In Ihrem Code definieren Sie den Anfang und das Ende eines benutzerdefinierten Netzwerk-Anfrage-Traces mit den APIs des Performance Monitoring SDK.

Benutzerdefinierte Traces für Netzwerkanfragen werden in der Firebase-Konsole zusammen mit den Netzwerkanfragen angezeigt, die Performance Monitoring automatisch erfasst (auf dem Untertab Netzwerkanfragen der Tracetabelle).

Benutzerdefinierte Traces für Netzwerkanfragen hinzufügen

Verwenden Sie die Performance Monitoring HTTPMetric API (Swift | Obj-C), um benutzerdefinierte Traces für Netzwerkanfragen hinzuzufügen und bestimmte Netzwerkanfragen zu überwachen.

Wenn Sie benutzerdefinierte Netzwerkanfragen in Performance Monitoring manuell instrumentieren möchten, fügen Sie Code wie den folgenden hinzu:

Swift

Hinweis:Dieses Firebase-Produkt ist nicht für macOS-, Mac Catalyst- und watchOS-Ziele verfügbar.
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

Hinweis:Dieses Firebase-Produkt ist nicht für macOS-, Mac Catalyst- und watchOS-Ziele verfügbar.
@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];
}

Benutzerdefinierte Netzwerkanfrage-Traces unterstützen auch das Hinzufügen benutzerdefinierter Attribute (Swift | Obj-C), aber keine benutzerdefinierten Messwerte.

Nächste Schritte

  • Richten Sie Benachrichtigungen für Netzwerkanfragen ein, die die Leistung Ihrer App beeinträchtigen. Sie können beispielsweise eine E-Mail-Benachrichtigung für Ihr Team konfigurieren, wenn die Antwortzeit für ein bestimmtes URL-Muster einen von Ihnen festgelegten Schwellenwert überschreitet.