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


Performance Monitoring erfasst Traces, mit denen 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 erfasste Traces von Netzwerkanfragen die meisten Netzwerkanfragen für Ihre App enthalten. Einige Anfragen sind jedoch möglicherweise nicht gemeldet wurden, oder Sie verwenden für Netzwerkanfragen eine andere Bibliothek. In diesen können Sie mit der Performance Monitoring API manuell instrumentieren benutzerdefinierte Netzwerkanfrage-Traces. Benutzerdefinierte Netzwerkanfrage-Traces sind nur Apple- und Android-Apps unterstützt werden.

Die Standardmesswerte für eine benutzerdefinierte Netzwerkanfrage-Analyse sind dieselben wie für die von Performance Monitoring automatisch erfassten Netzwerkanfrage-Analysen, insbesondere Antwortzeit, Nutzlastgröße von Antwort und Anfrage sowie Erfolgsquote. Benutzerdefiniert Netzwerkanfrage-Traces unterstützen das Hinzufügen benutzerdefinierter Messwerte nicht.

In Ihrem Code definieren Sie den Anfang und das Ende einer benutzerdefinierten Netzwerkanfrage Trace mithilfe der vom Performance Monitoring SDK bereitgestellten APIs.

Benutzerdefinierte Netzwerkanfrage-Traces werden in der Firebase-Konsole neben den automatisch erfassten Netzwerkanfragen von Performance Monitoring angezeigt (auf dem Untertab Netzwerkanfragen der Traces-Tabelle).

Benutzerdefinierte Netzwerkanfrage-Traces hinzufügen

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

Wenn Sie benutzerdefinierte Netzwerkanfragen in Performance Monitoring manuell instrumentieren möchten, fügen Sie Code ähnlich dem 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-Catayst- 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 Traces von Netzwerkanfragen unterstützen auch das Hinzufügen benutzerdefinierter Attribute (Swift | Obj-C) nicht jedoch benutzerdefinierte 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 Grenzwert überschreitet.