Dodawanie niestandardowego monitorowania na potrzeby konkretnych żądań sieciowych (aplikacje Apple i na Androida)
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Performance Monitoring zbiera ślady, aby pomóc Ci monitorować skuteczność aplikacji. Ślad to raport z danymi o skuteczności zarejestrowanymi między 2 punktami w czasie w aplikacji.
Logi czasu żądań sieciowych zbierane automatycznie przez Performance Monitoring
obejmują większość żądań sieciowych w Twojej aplikacji. Niektóre żądania mogą jednak nie być raportowane lub możesz używać innej biblioteki do wysyłania żądań sieciowych. W takich przypadkach możesz użyć interfejsu Performance Monitoring API, aby ręcznie instrumentować niestandardowe logi czasu żądań sieciowych. Niestandardowe logi czasu żądań sieciowych są obsługiwane tylko w przypadku aplikacji na urządzenia Apple i Android.
Domyślne dane w przypadku niestandardowego logu czasu żądań sieciowych są takie same jak w przypadku logów czasu żądań sieciowych zbieranych automatycznie przez Performance Monitoring, a mianowicie czas odpowiedzi, rozmiar ładunku odpowiedzi i żądania oraz odsetek powodzeń. Niestandardowe ślady żądań sieciowych nie obsługują dodawania niestandardowych kategorii danych.
W kodzie definiujesz początek i koniec niestandardowego śledzenia żądania sieciowego za pomocą interfejsów API udostępnianych przez pakiet SDK Performance Monitoring.
Niestandardowe logi czasu żądań sieciowych pojawiają się w Firebase konsoli obok żądań sieciowych, które Performance Monitoring rejestruje automatycznie (na podkarcie Żądania sieciowe w tabeli logów czasu).
Dodawanie niestandardowych logów czasu żądań sieciowych
Użyj Performance Monitoringinterfejsu HTTPMetric API (Swift
|
Obj-C), aby dodać niestandardowe ślady żądań sieciowych i monitorować konkretne żądania sieciowe.
Aby ręcznie instrumentować niestandardowe żądania sieciowe w Performance Monitoring, dodaj kod podobny do tego:
Swift
Uwaga: ten produkt Firebase nie jest dostępny na platformach macOS, Mac Catalyst i watchOS.
Ślady niestandardowych żądań sieciowych obsługują też dodawanie atrybutów niestandardowych (Swift | Obj-C), ale nie danych niestandardowych.
Dalsze kroki
Skonfiguruj alerty dotyczące żądań sieciowych, które pogarszają wydajność aplikacji. Możesz na przykład skonfigurować alert e-mail dla zespołu, jeśli czas odpowiedzi dla określonego wzorca adresu URL przekroczy ustawiony przez Ciebie próg.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-09-05 UTC."],[],[],null,["\u003cbr /\u003e\n\niOS+ Android Flutter \n\n\u003cbr /\u003e\n\nPerformance Monitoring collects *traces* to help you monitor the performance of your app. A\ntrace is a report of performance data captured between two points in time in\nyour app.\n\nThe\n[network request traces automatically collected by Performance Monitoring](/docs/perf-mon/network-traces)\ninclude most network requests for your app. However, some requests might not be\nreported or you might use a different library to make network requests. In these\ncases, you can use the Performance Monitoring API to manually instrument\n***custom network request traces***. Custom network request traces are only\nsupported for Apple and Android apps.\n\nThe default metrics for a custom network request trace are the same as those for\nthe network request traces automatically collected by Performance Monitoring, specifically\nresponse time, response and request payload size, and success rate. Custom\nnetwork request traces do not support adding custom metrics.\n\nIn your code, you define the beginning and the end of a custom network request\ntrace using the APIs provided by the Performance Monitoring SDK.\n\nCustom network request traces appear in the Firebase console alongside the\nnetwork requests that Performance Monitoring captures automatically\n(in the *Network requests* subtab of the traces table).\n\nAdd custom network request traces\n\nUse the Performance Monitoring HTTPMetric API\n([Swift](/docs/reference/swift/firebaseperformance/api/reference/Classes/HTTPMetric)\n\\|\n[Obj-C](/docs/reference/ios/firebaseperformance/api/reference/Classes/FIRHTTPMetric))\nto add custom network request traces to monitor specific network requests.\n\nTo manually instrument custom network requests in Performance Monitoring, add code similar\nto the following: \n\nSwift\n\n\n**Note:** This Firebase product is not available on macOS, Mac Catalyst, watchOS targets. \n\n guard let metric = HTTPMetric(url: \"https://www.google.com\", httpMethod: .get) else { return }\n\n metric.start()\n guard let url = URL(string: \"https://www.google.com\") else { return }\n let request: URLRequest = URLRequest(url:url)\n let session = URLSession(configuration: .default)\n let dataTask = session.dataTask(with: request) { (urlData, response, error) in\n if let httpResponse = response as? HTTPURLResponse {\n metric.responseCode = httpResponse.statusCode\n }\n metric.stop()\n }\n dataTask.resume()\n\nObjective-C\n\n\n**Note:** This Firebase product is not available on macOS, Mac Catalyst, watchOS targets. \n\n @property (nonatomic) FIRHTTPMetric *metric;\n\n - (void)beginManualNetworkInstrumentation {\n self.metric =\n [[FIRHttpMetric alloc] initWithURL:[NSURL URLWithString:@\"https://www.google.com\"]\n HTTPMethod:FIRHTTPMethodGET];\n\n [self.metric start];\n\n NSURLRequest *request =\n [NSURLRequest requestWithURL:[NSURL URLWithString:@\"https://www.google.com\"]];\n NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request\n delegate:self];\n [connection resume];\n }\n\n - (void)connection:(NSURLConnection *)connection\n didReceiveResponse:(NSURLResponse *) response {\n NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response\n self.metric.responseCode = httpResponse.statusCode;\n [self.metric stop];\n }\n\nCustom network request traces also support adding custom attributes\n([Swift](/docs/reference/swift/firebaseperformance/api/reference/Protocols/PerformanceAttributable#setvalue_:forattribute:) \\|\n[Obj-C](/docs/reference/ios/firebaseperformance/api/reference/Protocols/FIRPerformanceAttributable#-setvalue:forattribute:))\nbut not custom metrics.\n\nNext steps\n\n- [Set up alerts](/docs/perf-mon/alerts) for network requests that are degrading the performance of your app. For example, you can configure an email alert for your team if the *response time* for a specific URL pattern exceeds a threshold that you set."]]