Performance Monitoring erfasst Traces, um die Leistung Ihrer App zu überwachen. Ein Trace ist ein Bericht mit Leistungsdaten, die zwischen zwei Zeitpunkten in Ihrer App erfasst wurden.
Die von Performance Monitoring automatisch erfassten Netzwerkanfrage-Traces umfassen die meisten Netzwerkanfragen für Ihre App. Einige Anfragen werden jedoch möglicherweise nicht erfasst oder Sie verwenden eine andere Bibliothek, um Netzwerkanfragen zu stellen. In diesen Fällen können Sie die Performance Monitoring API verwenden, um benutzerdefinierte Netzwerkanfrage-Traces manuell zu instrumentieren. Benutzerdefinierte Netzwerkanfrage-Traces werden nur für Apple- und Android-Apps unterstützt.
Die Standardmesswerte für einen benutzerdefinierten Netzwerkanfrage-Trace sind die gleichen wie für die von Performance Monitoring automatisch erfassten Netzwerkanfrage-Traces, insbesondere Antwortzeit, Antwort- und Anfragenutzlastgröße und Erfolgsquote. Bei benutzerdefinierten Netzwerkanfrage-Traces können keine benutzerdefinierten Messwerte hinzugefügt werden.
In Ihrem Code definieren Sie den Anfang und das Ende einer benutzerdefinierten Netzwerkanfrage mithilfe der APIs des Performance Monitoring SDK.
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 Traces für Netzwerkanfragen 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 folgenden Code hinzu:
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];
}
Bei benutzerdefinierten Netzwerkanfrage-Traces können auch benutzerdefinierte Attribute hinzugefügt werden (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 Grenzwert überschreitet.