Nếu bạn đang bắt đầu sử dụng Performance Monitoring (iOS trở lên | Android | Web), các mẹo khắc phục sự cố sau đây có thể giúp bạn 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 trong bảng điều khiển 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 Performance Monitoring vào ứng dụng của mình hay chưa khi nhận được thông tin sự kiện (chẳng hạ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 kể từ khi khởi động ứng dụng, Bảng điều khiển
về hiệu suất
của bảng điều khiển 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 đã 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 và bạn vẫn không thấy thay đổi nào, hãy kiểm tra thông điệp nhật ký để đảm bảo rằng Performance Monitoring đang ghi nhật ký các sự kiện. Hãy thử các bước khắc phục sự cố thích hợp như mô tả bên dưới để khắc phục thông báo phát hiện SDK bị trễ.
Ứ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ị kiểm thử.
Tạo sự kiện bằng cách chuyển đổi ứng dụng giữa chế độ nền và chế độ nền trước nhiều 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.
Đảm bảo rằng tệp cấu hình Firebase (Google-Service-Info.plist) được thêm chính xác vào ứng dụng và bạn chưa sửa đổi tệp đó.
Cụ thể, hãy kiểm tra những vấn đề sau:
Tên tệp cấu hình không có ký tự thừa, 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 các mục tiêu chính xác.
Mã ứng dụng Firebase Apple (GOOGLE_APP_ID) được liệt kê trong tệp cấu hình là chính xác cho ứng dụng của bạn. Tìm mã ứng dụng Firebase trong thẻ Ứng dụng của bạn của chế độ cài đặt Dự ánsettings.
Nếu có điều gì đó không ổn với tệp cấu hình trong ứng dụng, hãy thử những cách sau:
Xoá tệp cấu hình mà bạn hiện có trong ứng dụng.
Làm theo 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 của bạn trên Apple.
Nếu SDK đang ghi lại sự kiện và mọi thứ có vẻ như đã đượ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 đã 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 Performance Monitoring trong ứng dụng, thì các mẹo khắc phục sự cố sau đây có thể giúp bạn giải quyết các vấn đề chung liên quan đến tính năng và công cụ Performance Monitoring.
Trang tổng quan hiệu suất bị thiếu dữ liệu theo dõi 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:
Đả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 11.6.0). Dấu vết kết xuất màn hình chỉ có trong phiên bản v5.0.0 trở lên.
Performance Monitoring không tạo dấu vết kết xuất màn hình cho trình điều khiển chế độ xem vùng chứa (chẳng hạn như UINavigationController và UITabBarController). Nếu chỉ thiếu dữ liệu cho các màn hình này, thì đây là hành vi dự kiến.
Trang tổng quan về hiệu suất bị 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 thấy dữ liệu hiệu suất cho các dấu vết mã tuỳ chỉnh không? Hãy thử các bước khắc phục sự cố sau:
Kiểm tra chế độ thiết lập dấu vết mã tuỳ chỉnh được đo lường thông qua Trace API, đặc biệt là những thông tin sau:
Tên của 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ó dấu cách ở đầu hoặc cuối, không có ký tự dấu gạch dưới (_) ở đầu và có độ 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 không bắt đầu, không 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 Performance Monitoring đang ghi lại dấu vết mã tuỳ chỉnh dự kiến.
Nếu Performance Monitoring đang ghi lại 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 yêu cầu mạng
Nếu bạn 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 kết nối mạng mà mã sử dụng, Performance Monitoring có thể chỉ báo cáo về các yêu cầu mạng đã hoàn tất. Điều này có nghĩa là các kết nối HTTP/S đang mở có thể không được báo cáo.
Performance Monitoring 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 sẽ được chấp nhận.
Điều gì đã xảy ra với thẻ Các vấn đề hàng đầu trong thẻ Hiệu suất trên Trang chủ dự án?
Chúng tôi đã thay thế mục Các vấn đề hàng đầu bằng mục Cảnh báo gần đây để tiếp nối việc ra mắt tính năng cảnh báo gần đây. Tính năng này sẽ tự động thông báo cho bạn khi các ngưỡng mà bạn đặt bị vượt quá. Chúng tôi hiện không còn sử dụng vấn đề mà thay vào đó là cảnh báo.
Bộ chọn ứng dụng ở đầu thẻ Hiệu suất sẽ lọc các mục nhập cảnh báo trong phần Thông báo gần đây. Chỉ hiển thị 3 cảnh báo gần đây nhất cho(các) ứng dụng đã chọn.
Khả năng đặt ngưỡng cho các vấn đề trong bảng điều khiển đã bị gì vậy?
Performance Monitoring 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á khả năng định cấu hình ngưỡng cho 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 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, được thiết kế lại để cải thiện cách bạn khắc phục sự cố. 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ư Thông tin chi tiết và Chỉ số. Để 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 cho một dấu vết cụ thể.
Tại sao số lượng mẫu không như tôi mong đợi?
Performance Monitoring thu thập dữ liệu hiệu suất từ thiết bị của người dùng ứng dụng. 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 lượng lớn hoạt động hiệu suất, thì Performance Monitoring có thể giới hạn việc thu thập dữ liệu ở một số thiết bị để giảm số lượng sự kiện được xử lý. Các hạn mức này đủ cao để ngay cả khi có ít sự kiện hơn, các giá trị chỉ số vẫn thể hiện trải nghiệm ứng dụng của người dùng.
Để quản lý lượng dữ liệu mà chúng tôi thu thập, Performance Monitoring sử dụng các tuỳ chọn lấy mẫu sau:
Giới hạn tốc độ trên thiết bị: Để ngăn thiết bị gửi các dấu vết đột ngột, chúng tôi giới hạn số lượng dấu vết yêu cầu mạng và mã được gửi 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 thiết bị đ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: Performance Monitoring thu thập một số lượng hạn chế dấu vết mã và dấu vết yêu cầu mạng trên mỗi ứng dụng hằng ngày trên tất cả người dùng ứng dụng. Tốc độ lấy mẫu động được tìm nạp trên các thiết bị (sử dụng Firebase Remote Config) để 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à dành riêng cho ứng dụng và điều chỉnh để đảm bảo tổng dung lượng dữ liệu được thu thập vẫn nằm dưới giới hạn.
Các dự án đã bật tính năng tích hợp BigQuery sẽ nhận được giới hạn cao hơn đối với số lượng dấu vết yêu cầu mạng.
Phiên người dùng gửi thêm dữ liệu chi tiết từ thiết bị của người dùng, đòi hỏi 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 người dùng, Performance Monitoring cũng có thể hạn chế số lượng phiên.
Giới hạn tốc độ phía máy chủ: Để đảm bảo rằng ứng dụng không vượt quá giới hạn lấy mẫu, Performance Monitoring có thể sử dụng tính năng 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 làm thay đổi hiệu quả của các chỉ số, nhưng có thể gây ra một số 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 một đoạn mã được thực thi.
Các dấu vết được ghép nối chặt chẽ trong mã có thể có số lượng mẫu khác nhau.
Đã xảy ra chuyện gì với thẻ Vấn đề trong bảng điều khiển?
Chúng tôi đã thay thế thẻ Vấn đề bằng thẻ Cảnh báo. Thẻ này sẽ tự động thông báo cho bạn khi bạn vượt quá ngưỡng đã đặt. Bạn không cần phải kiểm tra bảng điều khiển Firebase theo cách thủ công để xác định trạng thái của ngưỡng nữa. Để tìm hiểu về Cảnh báo, hãy xem bài viết Thiết lập cảnh báo cho các vấn đề về hiệu suất.
Đã xảy ra chuyện gì với thẻ Trên thiết bị và Mạng trong bảng điều khiển?
Làm cách nào để xem dấu vết trên các trang đó?
Chúng tôi đã thiết kế lại phần Performance Monitoring của bảng điều khiển 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 một không gian. Trong quá trình thiết kế lại, chúng tôi đã xoá các 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ư các thẻ Trên thiết bị và Mạng hiển thị, 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 cho một chỉ số cụ thể. Để xem tất 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 trong các thẻ con sau đây của bảng dấu vết:
Dấu vết yêu cầu mạng (cả sẵn có và tuỳ chỉnh) — Thẻ con Yêu cầu mạng
Dấu vết mã tuỳ chỉnh — Thẻ con Dấu vết tuỳ chỉnh
Dấu vết khởi động ứng dụng, dấu vết ứng dụng ở nền trước, dấu vết ứng dụng ở chế độ nền — thẻ con Dấu vết tuỳ chỉnh
Dấu vết kết xuất màn hình — Thẻ con Kết xuất màn hình
Dấu vết tải trang — Thẻ con Tải trang
Để biết thông tin chi tiết về bảng dấu vết và xem các chỉ số cũng như dữ liệu, hãy truy cập vào trang tổng quan về bảng điều khiển (iOS trở lên | Android | Web).
Tại sao số lượng 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 thiết bị giả định là 60Hz. Nếu tốc độ làm mới của thiết bị thấp hơn 60 Hz, thì mỗi 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 mỗi giây ít hơn.
Thời gian kết xuất chậm hơn có thể khiến nhiều khung hình bị chậm hoặc bị treo hơn được báo cáo vì nhiều khung hình sẽ được kết xuất chậm hơn hoặc bị treo. Tuy nhiên, nếu tốc độ làm mới của thiết bị cao hơn 60 Hz, thì mỗi khung hình sẽ có thời gian kết xuất nhanh hơn.
Điều này có thể khiến ít khung hình bị chậm hoặc bị treo hơn được báo cáo. Đây là hạn chế hiện tại trong SDK Performance Monitoring.
Dữ liệu Performance Monitoring của tôi đang mất nhiều thời gian hơn dự kiến để xuất sang BigQuery. Không phải theo thời gian thực phải không?
Nếu bạn đã bật tính năng tích hợp BigQuery cho Firebase Performance Monitoring, dữ liệu của bạn sẽ được xuất sang BigQuery từ 12 đến 24 giờ sau khi kết thúc 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 như theo thời gian thực" có nghĩa là gì?
Firebase Performance Monitoring xử lý dữ liệu hiệu suất đã thu thập khi dữ liệu đó đến, dẫn đến việc hiển thị dữ liệu gần như theo thời gian thực trong bảng điều khiển Firebase. Dữ liệu đã xử lý sẽ hiển thị trong bảng điều khiển trong vòng vài phút sau khi thu thập, do đó có thuật ngữ "gần như theo thời gian thực".
Làm cách nào để lấy dữ liệu hiệu suất gần như theo thời gian thực cho ứng dụng của tôi?
Để tận dụng tính năng 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 Performance Monitoring tương thích với tính năng xử lý dữ liệu theo thời gian thực.
Sau đây là các phiên bản SDK tương thích 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 phiên bản 26.1.0 trở lên)
Web – Phiên bản 7.14.0 trở lên
Xin lưu ý rằng bạn luôn nên sử dụng phiên bản SDK mới nhất, nhưng mọi phiên bản nêu trên đều cho phép Performance Monitoring xử lý dữ liệu của bạn gần như theo thời gian thực.
Phiên bản SDK Performance Monitoring nào được coi là tương thích theo thời gian thực?
Sau đâ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 phiên bản 26.1.0 trở lên)
Web – Phiên bản 7.14.0 trở lên
Xin lưu ý rằng bạn luôn nên sử dụng phiên bản SDK mới nhất, nhưng mọi phiên bản nêu trên đều cho phép Performance Monitoring xử lý dữ liệu của bạn gần như theo thời gian thực.
Điều gì sẽ xảy ra nếu tôi không cập nhật ứng dụng để sử dụng phiên bản SDK tương thích theo thời gian thực?
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, thì 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 Firebase. Tuy nhiên, việc 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 dữ liệu.
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 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 thấy dữ liệu hiệu suất của họ trong bảng điều khiển Firebase không?
Có! Bất kể phiên bản SDK nào mà một thực thể ứng dụng sử dụng, bạn sẽ 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 (dưới khoảng 36 giờ), thì dữ liệu hiển thị là 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 phải gần đây bao gồm dữ liệu hiệu suất từ tất cả phiên bản ứng dụng.