Nếu bạn mới bắt đầu sử dụng tính năng Giám sát hiệu suất (iOS+ | Android | Web), các mẹo khắc phục sự cố sau đây có thể giúp giải quyết các vấn đề liên quan đến việc Firebase phát hiện SDK hoặc hiển thị dữ liệu hiệu suất đầu tiên của bạn trong bảng điều khiển của Firebase.
Đã thêm SDK vào ứng dụng nhưng bảng điều khiển
vẫn yêu cầu thêm SDK
Firebase có thể phát hiện xem bạn đã thêm thành công SDK giám sát hiệu suất vào ứng dụng hay chưa khi ứng dụng nhận được thông tin sự kiện (như lượt tương tác với ứng dụng) từ ứng dụng. Thông thường, trong vòng 10 phút sau khi ứng dụng khởi động, trang tổng quan Hiệu suất của bảng điều khiển của Firebase sẽ hiển thị thông báo "Đã phát hiện SDK". Sau đó, trong vòng 30 phút, trang tổng quan sẽ hiển thị dữ liệu được xử lý ban đầu.
Nếu đã hơn 10 phút kể từ khi bạn thêm phiên bản SDK mới nhất vào ứng dụng mà bạn vẫn chưa thấy thay đổi nào, hãy kiểm tra thông điệp nhật ký để đảm bảo rằng tính năng Giám sát hiệu suất đang ghi nhật ký các sự kiện. Hãy thử các bước khắc phục sự cố phù hợp theo mô tả bên dưới để khắc phục sự cố với thông báo phát hiện SDK bị trì hoãn.
Ứng dụng đang ghi nhật ký sự kiện: các bước khắc phục sự cố
Nếu bạn vẫn đang phát triển cục bộ, hãy thử tạo thêm sự kiện để thu thập dữ liệu:
Tiếp tục phát triển ứng dụng bằng trình mô phỏng hoặc thiết bị thử nghiệm.
Tạo sự kiện bằng cách chuyển đổi ứng dụng giữa nền và nền trước một vài lần, tương tác với ứng dụng bằng cách di chuyển trên các màn hình và/hoặc kích hoạt các yêu cầu mạng.
Hãy đảm bảo rằng bạn đã thêm tệp cấu hình Firebase (Google-Service-Info.plist) đúng cách vào ứng dụng và chưa sửa đổi tệp đó.
Cụ thể, hãy kiểm tra những mục sau:
Tên tệp cấu hình không được thêm các ký tự bổ sung, chẳng hạn như (2).
Tệp cấu hình nằm trong thư mục gốc của dự án XCode và được thêm vào đúng mục tiêu.
Mã ứng dụng Apple Firebase (GOOGLE_APP_ID) được liệt kê trong tệp cấu hình là mã phù hợp với ứng dụng của bạn. Hãy tìm mã ứng dụng Firebase của bạn trong thẻ Ứng dụng của bạn trong settingsCài đặt dự án.
Nếu có vấn đề với tệp cấu hình trong ứng dụng của bạn, hãy thử các cách sau:
Xoá tệp cấu hình mà bạn hiện có trong ứng dụng của mình.
Làm theo các hướng dẫn này để tải
tệp cấu hình mới xuống và thêm tệp đó vào ứng dụng Apple.
Nếu SDK đang ghi nhật ký các sự kiện và mọi thứ có vẻ đã được thiết lập đúng cách, nhưng bạn vẫn không thấy thông báo phát hiện SDK hoặc dữ liệu được xử lý (sau 2 giờ), hãy liên hệ với Nhóm hỗ trợ Firebase.
Ứng dụng không ghi nhật ký sự kiện: các bước khắc phục sự cố
Nếu bạn đã thêm thành công SDK và đang sử dụng giải pháp Giám sát hiệu suất trong ứng dụng, thì các mẹo khắc phục sự cố sau đây có thể giúp giải quyết các vấn đề chung liên quan đến các tính năng và công cụ của Giám sát hiệu suất.
Trang tổng quan về hiệu suất thiếu dữ liệu về dấu vết màn hình
Nếu bạn thiếu dữ liệu cho dấu vết kết xuất màn hình, hãy thử các bước khắc phục sự cố sau:
Hãy đảm bảo rằng bạn đang sử dụng phiên bản mới nhất của SDK nền tảng Apple (phiên bản 10.28.0). Dấu vết kết xuất màn hình chỉ có trên phiên bản 5.0.0 trở lên.
Tính năng Giám sát hiệu suất không tạo ra dấu vết kết xuất màn hình cho bộ điều khiển khung hiển thị vùng chứa (chẳng hạn như UINavigationController và UITabBarController). Nếu chỉ thiếu dữ liệu cho những màn hình này, thì đây là hành vi dự kiến.
Trang tổng quan về hiệu suất
thiếu dữ liệu theo dõi tuỳ chỉnh
Bạn có thấy dữ liệu hiệu suất cho các dấu vết được thu thập tự động nhưng không phải cho dấu vết mã tuỳ chỉnh không? Hãy thử các bước khắc phục sự cố sau đây:
Kiểm tra việc thiết lập các dấu vết mã tuỳ chỉnh được đo lường qua Trace API, đặc biệt là các bước sau:
Tên cho dấu vết mã tuỳ chỉnh và chỉ số tuỳ chỉnh phải đáp ứng các yêu cầu sau: không có khoảng trắng ở đầu hoặc ở cuối, không có ký tự dấu gạch dưới ở đầu (_) và độ dài tối đa là 32 ký tự.
Tất cả dấu vết phải được bắt đầu và dừng. Mọi dấu vết chưa bắt đầu, chưa
dừng hoặc dừng trước khi bắt đầu sẽ không được ghi lại.
Kiểm tra thông điệp nhật ký để đảm bảo rằng tính năng Giám sát hiệu suất đang ghi lại các dấu vết mã tuỳ chỉnh dự kiến.
Nếu tính năng Giám sát hiệu suất đang ghi nhật ký các sự kiện, nhưng không có dữ liệu nào hiển thị sau 24 giờ, hãy liên hệ với Nhóm hỗ trợ Firebase.
Trang tổng quan về hiệu suất
thiếu dữ liệu về yêu cầu mạng
Nếu bạn bị thiếu dữ liệu yêu cầu mạng, hãy thử các bước khắc phục sự cố sau:
Tuỳ thuộc vào hành vi của mã và thư viện mạng mà mã của bạn sử dụng, tính năng Giám sát hiệu suất có thể chỉ báo cáo về các yêu cầu mạng đã hoàn tất. Tức là các kết nối HTTP/S bị để mở có thể sẽ không được báo cáo.
Tính năng Giám sát hiệu suất không báo cáo về các yêu cầu mạng có tiêu đề Content-Type không hợp lệ. Tuy nhiên, các yêu cầu mạng không có tiêu đề Content-Type vẫn được chấp nhận.
Dữ liệu về yêu cầu mạng không tổng hợp như dự kiến
Điều gì đã xảy ra với Các vấn đề hàng đầu trong thẻ Hiệu suất trên trang chủ Dự án?
Để cập nhật phần giới thiệu gần đây về tính năng cảnh báo, chúng tôi đã thay thế mục Các vấn đề hàng đầu bằng Cảnh báo gần đây để tự động thông báo cho bạn khi vượt quá ngưỡng bạn đặt. Các vấn đề hiện không còn được dùng nữa và được thay thế bằng cảnh báo.
Bộ chọn ứng dụng ở đầu thẻ Hiệu suất sẽ lọc các mục cảnh báo trong mục Cảnh báo gần đây. Chỉ có 3 cảnh báo gần đây nhất cho(các) ứng dụng đã chọn được hiển thị.
Điều gì đã xảy ra với khả năng đặt ngưỡng cho các vấn đề trong bảng điều khiển?
Tính năng Giám sát hiệu suất hỗ trợ cảnh báo cho các chỉ số vượt quá ngưỡng đã xác định. Để tránh nhầm lẫn với các ngưỡng có thể định cấu hình này cho các chỉ số hiệu suất, chúng tôi đã xoá tính năng định cấu hình các ngưỡng cho các vấn đề.
Điều gì đã xảy ra với thông tin Chi tiết và chỉ số trong bảng điều khiển của Firebase?
Chúng tôi đã thay thế các trang Chi tiết và Chỉ số bằng một giao diện người dùng (UI) tập trung và mới được thiết kế lại để cải thiện cách bạn khắc phục vấn đề. Giao diện người dùng khắc phục sự cố mới này cung cấp chức năng cốt lõi giống như chức năng Chi tiết và Chỉ số được cung cấp. Để tìm hiểu thêm về cách khắc phục sự cố, hãy xem phần Xem thêm dữ liệu về một dấu vết cụ thể.
Tại sao số lượng mẫu không phải là số lượng tôi mong đợi?
Tính năng Giám sát hiệu suất thu thập dữ liệu hiệu suất từ các thiết bị của người dùng trong ứng dụng của bạn. Nếu ứng dụng của bạn có nhiều người dùng hoặc nếu ứng dụng tạo ra một số lượng lớn hoạt động liên quan đến hiệu suất, thì tính năng Giám sát hiệu suất có thể giới hạn việc thu thập dữ liệu ở một nhóm nhỏ thiết bị để giảm số lượng sự kiện được xử lý. Các giới hạn này đủ cao để ngay cả khi có ít sự kiện hơn, giá trị chỉ số vẫn thể hiện được trải nghiệm người dùng trong ứng dụng.
Để quản lý khối lượng dữ liệu chúng tôi thu thập, tính năng Giám sát hiệu suất sử dụng các cách lấy mẫu sau:
Giới hạn số lượng yêu cầu trên thiết bị: Để ngăn thiết bị gửi các loạt dấu vết đột ngột, chúng tôi giới hạn số lượng mã và dấu vết yêu cầu mạng được gửi từ một thiết bị ở mức 300 sự kiện mỗi 10 phút. Phương pháp này bảo vệ thiết bị khỏi các khả năng đo lường lặp lại có thể gửi một lượng lớn dữ liệu hiệu suất, đồng thời ngăn một thiết bị làm sai lệch kết quả đo lường hiệu suất.
Lấy mẫu động: Tính năng Giám sát hiệu suất thu thập giới hạn khoảng 100 triệu sự kiện đối với dấu vết mã và 100 triệu sự kiện đối với dấu vết yêu cầu mạng cho mỗi ứng dụng hằng ngày, trên tất cả người dùng ứng dụng. Tỷ lệ lấy mẫu động được tìm nạp trên các thiết bị (bằng Cấu hình từ xa Firebase) để xác định xem một thiết bị ngẫu nhiên có nên thu thập và gửi dấu vết hay không. Thiết bị không được chọn để lấy mẫu sẽ không gửi bất kỳ sự kiện nào. Tốc độ lấy mẫu động là tuỳ theo ứng dụng và được điều chỉnh để đảm bảo rằng tổng lượng dữ liệu đã thu thập vẫn ở dưới giới hạn.
Phiên hoạt động của người dùng sẽ gửi dữ liệu bổ sung, chi tiết từ thiết bị của người dùng, nên cần nhiều tài nguyên hơn để thu thập và gửi dữ liệu. Để giảm thiểu tác động của các phiên hoạt động của người dùng, Giám sát hiệu suất cũng có thể hạn chế số phiên.
Giới hạn số lượng yêu cầu phía máy chủ: Để đảm bảo các ứng dụng không vượt quá giới hạn lấy mẫu, tính năng Giám sát hiệu suất có thể sử dụng phương pháp lấy mẫu phía máy chủ để loại bỏ một số sự kiện nhận được từ thiết bị. Mặc dù loại giới hạn này không thay đổi hiệu quả của các chỉ số, nhưng nó có thể gây ra những thay đổi nhỏ về mẫu, bao gồm:
Số lượng dấu vết có thể khác với số lần thực thi một đoạn mã.
Các dấu vết được kết hợp chặt chẽ trong mã có thể có số lượng mẫu khác nhau.
Điều gì đã xảy ra với thẻ Vấn đề trong bảng điều khiển?
Chúng tôi đã thay thế thẻ Vấn đề bằng việc giới thiệu tính năng Cảnh báo. Tính năng này tự động thông báo cho bạn khi vượt quá ngưỡng bạn đặt ra. Bạn không cần kiểm tra bảng điều khiển của Firebase theo cách thủ công để xác định trạng thái của một ngưỡng nữa. Để tìm hiểu về Cảnh báo, hãy xem Thiết lập cảnh báo cho các vấn đề về hiệu suất.
Điều gì đã xảy ra với thẻ Trên thiết bị và Mạng trong bảng điều khiển?
Làm thế nào để xem dấu vết trên các trang đó?
Chúng tôi đã thiết kế lại phần Giám sát hiệu suất trên bảng điều khiển của Firebase để thẻ Trang tổng quan hiển thị các chỉ số chính và tất cả dấu vết của bạn trong cùng một không gian. Trong quá trình thiết kế lại, chúng tôi đã xoá trang Trên thiết bị và Mạng.
Bảng dấu vết ở cuối thẻ Trang tổng quan có tất cả thông tin giống như thông tin trên thẻ Trên thiết bị và thẻ Mạng, nhưng có thêm một số tính năng, bao gồm cả khả năng sắp xếp dấu vết theo tỷ lệ phần trăm thay đổi đối với một chỉ số cụ thể. Để xem tất cả các chỉ số và dữ liệu cho một dấu vết cụ thể, hãy nhấp vào tên dấu vết trong bảng dấu vết.
Xem dấu vết của bạn trong các thẻ phụ sau của bảng dấu vết:
Dấu vết yêu cầu mạng (cả ngay lập tức và tùy chỉnh) — phụ Yêu cầu mạng
Dấu vết mã tùy chỉnh — tab phụ Dấu vết tùy chỉnh
Bắt đầu ứng dụng, trong nền trước ứng dụng, dấu vết trong nền ứng dụng — thẻ phụ Dấu vết tuỳ chỉnh
Dấu vết hiển thị màn hình — Thẻ phụ Hiển thị màn hình
Dấu vết tải trang — thẻ phụ Tải trang
Để biết thông tin chi tiết về bảng theo dõi cũng như cách xem các chỉ số và dữ liệu, hãy truy cập vào trang tổng quan của bảng điều khiển (iOS+ |
Android |
Web).
Tại sao số khung hình chậm và bị treo không như tôi mong đợi?
Khung hình kết xuất chậm và khung hình bị treo được tính toán với tốc độ làm mới giả định của thiết bị là 60 Hz. Nếu tốc độ làm mới của thiết bị thấp hơn 60Hz, thì từng khung hình sẽ có thời gian kết xuất chậm hơn vì số khung hình được kết xuất trên mỗi giây sẽ ít hơn.
Thời gian kết xuất chậm hơn có thể khiến nhiều khung hình chậm hoặc bị treo được báo cáo vì có nhiều khung hình hơn sẽ kết xuất chậm hơn hoặc sẽ bị treo. Tuy nhiên, nếu tốc độ làm mới của thiết bị cao hơn 60 Hz, thì từng khung hình sẽ có thời gian kết xuất nhanh hơn.
Việc này có thể khiến báo cáo ít khung hình chậm hoặc bị treo hơn. Đây là điểm hạn chế hiện tại trong SDK giám sát hiệu suất.
Dữ liệu của giải pháp Theo dõi hiệu suất mất nhiều thời gian hơn dự kiến để xuất sang
BigQuery. Đó không phải là thời gian thực?
Nếu bạn đã bật tính năng tích hợp BigQuery cho tính năng Giám sát hiệu suất Firebase, thì dữ liệu của bạn sẽ được xuất sang BigQuery sau 12 đến 24 giờ kể từ cuối ngày (theo Giờ Thái Bình Dương).
Ví dụ: dữ liệu cho ngày 19 tháng 4 sẽ có trong BigQuery vào ngày 20 tháng 4 từ 12:00 trưa đến nửa đêm (tất cả ngày và giờ đều theo Giờ Thái Bình Dương).
Xử lý và hiển thị dữ liệu gần như theo thời gian thực
Dữ liệu hiệu suất "gần thời gian thực" có nghĩa là gì?
Dịch vụ Giám sát hiệu suất Firebase xử lý việc thu thập dữ liệu hiệu suất ngay khi có sẵn, giúp hiển thị dữ liệu gần như theo thời gian thực trong bảng điều khiển của Firebase. Dữ liệu đã xử lý sẽ xuất hiện trong bảng điều khiển trong vài phút sau khi thu thập, do đó có thuật ngữ "gần thời gian thực".
Làm cách nào để nhận dữ liệu hiệu suất gần với thời gian thực cho ứng dụng của tôi?
Để tận dụng quy trình xử lý dữ liệu gần như theo thời gian thực, bạn chỉ cần đảm bảo rằng ứng dụng của mình sử dụng phiên bản SDK giám sát hiệu suất tương thích với quy trình xử lý dữ liệu theo thời gian thực.
Dưới đây là các phiên bản SDK tương thích với thời gian thực:
iOS – phiên bản 7.3.0 trở lên
tvOS – phiên bản 8.9.0 trở lên
Android – phiên bản 19.0.10 trở lên (hoặc Firebase Android BoM v26.1.0 trở lên)
Web – phiên bản 7.14.0 trở lên
Xin lưu ý rằng bạn nên sử dụng phiên bản SDK mới nhất. Tuy nhiên, mọi phiên bản nêu trên đều sẽ cho phép tính năng Giám sát hiệu suất xử lý dữ liệu của bạn gần như theo thời gian thực.
Những phiên bản nào của SDK giám sát hiệu suất được coi là tương thích theo thời gian thực?
Dưới đây là các phiên bản SDK tương thích với tính năng xử lý dữ liệu theo thời gian thực:
iOS – phiên bản 7.3.0 trở lên
tvOS – phiên bản 8.9.0 trở lên
Android – phiên bản 19.0.10 trở lên (hoặc Firebase Android BoM v26.1.0 trở lên)
Web – phiên bản 7.14.0 trở lên
Xin lưu ý rằng bạn nên sử dụng phiên bản SDK mới nhất. Tuy nhiên, mọi phiên bản nêu trên đều sẽ cho phép tính năng Giám sát hiệu suất xử lý dữ liệu của bạn gần như theo thời gian thực.
Nếu tôi không cập nhật ứng dụng để dùng phiên bản SDK tương thích theo thời gian thực thì sao?
Nếu ứng dụng của bạn không sử dụng phiên bản SDK tương thích theo thời gian thực, bạn vẫn sẽ thấy tất cả dữ liệu hiệu suất của ứng dụng trong bảng điều khiển của Firebase. Tuy nhiên, quá trình hiển thị dữ liệu hiệu suất sẽ bị trễ khoảng 36 giờ kể từ thời điểm thu thập.
Tôi đã cập nhật lên phiên bản SDK tương thích theo thời gian thực nhưng một số người dùng của tôi
vẫn đang sử dụng các phiên bản cũ của ứng dụng. Tôi có tiếp tục xem dữ liệu hiệu suất
của họ trong bảng điều khiển của Firebase không?
Có! Bất kể phiên bản SDK nào mà phiên bản ứng dụng sử dụng, bạn đều thấy dữ liệu hiệu suất của tất cả người dùng.
Tuy nhiên, nếu bạn đang xem dữ liệu gần đây (cách đây chưa đầy 36 giờ), thì dữ liệu hiển thị là dữ liệu của người dùng các phiên bản ứng dụng sử dụng phiên bản SDK tương thích theo thời gian thực. Tuy nhiên, dữ liệu không gần đây bao gồm dữ liệu hiệu suất từ tất cả các phiên bản ứng dụng.