Performance Monitoring erfasst Traces, damit Sie die Leistung Ihrer Anwendung überwachen können. A Trace ist ein Bericht mit Leistungsdaten, die zwischen zwei Zeitpunkten in für Ihre App.
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 einen benutzerdefinierten Trace von Netzwerkanfragen sind die gleichen wie für die automatisch von Performance Monitoring erfassten Netzwerkanfrage-Traces, insbesondere Antwortzeit, Größe der Antwort- und Anfragenutzlast 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 Trace mithilfe der vom Performance Monitoring SDK bereitgestellten APIs.
Benutzerdefinierte Traces von Netzwerkanfragen werden in der Firebase-Konsole neben dem Netzwerkanfragen, die von Performance Monitoring automatisch erfasst werden Sie finden sie in der Trace-Tabelle auf dem Untertab Netzwerkanfragen.
Benutzerdefinierte Traces für Netzwerkanfragen hinzufügen
Performance Monitoring HTTPMetric API verwenden (Swift | Obj-C) um benutzerdefinierte Traces für Netzwerkanfragen hinzuzufügen, um bestimmte Netzwerkanfragen zu überwachen.
Wenn Sie benutzerdefinierte Netzwerkanfragen in Performance Monitoring manuell instrumentieren möchten, fügen Sie einen ähnlichen Code hinzu zu:
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];
}
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.