Die Leistungsüberwachung sammelt Ablaufverfolgungen , um Ihnen bei der Überwachung der Leistung Ihrer App zu helfen. Eine Ablaufverfolgung ist ein Bericht von Leistungsdaten, die zwischen zwei Zeitpunkten in Ihrer App erfasst wurden.
Die von der Leistungsüberwachung automatisch erfassten Netzwerkanforderungsablaufverfolgungen umfassen die meisten Netzwerkanforderungen für Ihre App. Einige Anforderungen werden jedoch möglicherweise nicht gemeldet, oder Sie verwenden möglicherweise eine andere Bibliothek, um Netzwerkanforderungen zu stellen. In diesen Fällen können Sie die Leistungsüberwachungs-API verwenden, um benutzerdefinierte Netzwerkanforderungs-Traces manuell zu instrumentieren . Benutzerdefinierte Ablaufverfolgungen für Netzwerkanforderungen werden nur für Apple- und Android-Apps unterstützt.
Die Standardmetriken für eine benutzerdefinierte Netzwerkanforderungsablaufverfolgung sind die gleichen wie die für die Netzwerkanforderungsablaufverfolgungen, die automatisch von der Leistungsüberwachung erfasst werden, insbesondere Antwortzeit, Antwort- und Anforderungsnutzlastgröße und Erfolgsrate. Benutzerdefinierte Netzwerkanforderungsablaufverfolgungen unterstützen das Hinzufügen benutzerdefinierter Metriken nicht.
In Ihrem Code definieren Sie den Anfang und das Ende einer benutzerdefinierten Netzwerkanforderungsablaufverfolgung mithilfe der vom Performance Monitoring SDK bereitgestellten APIs.
Benutzerdefinierte Netzwerkanforderungs-Traces werden in der Firebase-Konsole neben den Netzwerkanforderungen angezeigt, die von der Leistungsüberwachung automatisch erfasst werden (auf der Unterregisterkarte Netzwerkanforderungen der Traces-Tabelle).
Fügen Sie benutzerdefinierte Netzwerkanforderungs-Traces hinzu
Verwenden Sie die Performance Monitoring HTTPMetric API ( Swift | Obj-C ), um benutzerdefinierte Netzwerkanforderungsablaufverfolgungen hinzuzufügen, um bestimmte Netzwerkanforderungen zu überwachen.
Um benutzerdefinierte Netzwerkanforderungen in der Leistungsüberwachung manuell zu instrumentieren, fügen Sie Code ähnlich dem folgenden hinzu:
Schnell
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()
Ziel 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 Netzwerkanforderungsablaufverfolgungen unterstützen auch das Hinzufügen benutzerdefinierter Attribute ( Swift | Obj-C ), jedoch keine benutzerdefinierten Metriken.
Nächste Schritte
- Richten Sie Warnungen 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.