Trang này cung cấp các mẹo khắc phục sự cố để bắt đầu sử dụng Performance Monitoring hoặc sử dụng các tính năng và công cụ của Performance Monitoring.
Kiểm tra đầu tiên để khắc phục sự cố
Hai bước kiểm tra sau đây là các phương pháp hay nhất chung mà mọi người nên thực hiện trước khi khắc phục sự cố thêm.
1. Kiểm tra thông điệp nhật ký để xem các sự kiện về hiệu suất
Kiểm tra thông điệp nhật ký để đảm bảo rằng SDK Performance Monitoring đang ghi lại các sự kiện hiệu suất.
Cách xem thông điệp nhật ký cho các sự kiện hiệu suất
Bật tính năng ghi nhật ký gỡ lỗi cho Performance Monitoring tại thời điểm xây dựng bằng cách thêm phần tử
<meta-data>
vào tệpAndroidManifest.xml
của ứng dụng như sau:<application> <meta-data android:name="firebase_performance_logcat_enabled" android:value="true" /> </application>
Kiểm tra thông điệp nhật ký của bạn để xem có thông báo lỗi nào không.
Performance Monitoring gắn thẻ cho thông điệp nhật ký bằng
FirebasePerformance
. Khi sử dụng tính năng lọc logcat, bạn có thể xem cụ thể dấu vết thời lượng và nhật ký yêu cầu mạng HTTP/S bằng cách chạy lệnh sau:adb logcat -s FirebasePerformance
Kiểm tra các loại nhật ký sau đây cho biết rằng Performance Monitoring đang ghi nhật ký các sự kiện về hiệu suất:
Logging trace metric: TRACE_NAME, FIREBASE_PERFORMANCE_CONSOLE_URL
Logging network request trace: URL
Nhấp vào URL để xem dữ liệu của bạn trong bảng điều khiển Firebase. Có thể mất vài phút để dữ liệu cập nhật trong trang tổng quan.
Nếu ứng dụng của bạn không ghi lại các sự kiện hiệu suất, hãy xem các mẹo khắc phục sự cố.
2. Kiểm tra Trang tổng quan về trạng thái Firebase
Hãy kiểm tra Trang tổng quan về trạng thái của Firebase trong trường hợp Firebase hoặc Performance Monitoring bị ngừng dịch vụ.
Bắt đầu với Performance Monitoring
Nếu bạn mới bắt đầu sử dụng Performance Monitoring (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 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 hay chưa khi 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 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ố
Đảm bảo rằng bạn đang sử dụng Performance Monitoring SDK Android 19.1.0 trở lên (hoặc Firebase BoM 26.3.0 trở lên), hãy xem Ghi chú phát hành.
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:
- 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-services.json
) đú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 mô-đun (cấp ứng dụng) của ứng dụng.
Mã ứng dụng Firebase cho Android (
mobilesdk_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 Cài đặt dự án settings.
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 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 rồi thêm tệp đó vào ứng dụng Android.
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 10 phút), 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ố
Kiểm tra chế độ thiết lập trình bổ trợ Gradle Performance Monitoring như sau:
Đảm bảo rằng bạn đã thêm trình bổ trợ đúng cách. Cụ thể, hãy kiểm tra những mục sau:
- Bạn đã thêm trình bổ trợ (
) vào tệpapply plugin: 'com.google.firebase.firebase-perf' build.gradle
mô-đun (cấp ứng dụng). - Bạn đã đưa phần phụ thuộc đường dẫn lớp vào trình bổ trợ (
) trong tệpclasspath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
cấp dự án.
- Bạn đã thêm trình bổ trợ (
Hãy đảm bảo rằng trình bổ trợ không bị tắt thông qua một trong các cờ sau:
instrumentationEnabled
trong tệpbuild.gradle
của mô-đun (cấp ứng dụng)firebasePerformanceInstrumentationEnabled
trong tệpgradle.properties
của bạn
Kiểm tra để đảm bảo rằng SDK Performance Monitoring không bị tắt thông qua một trong các cờ sau trong tệp
AndroidManifest.xml
:firebase_performance_collection_enabled
firebase_performance_collection_deactivated
Đảm bảo rằng Performance Monitoring không bị tắt trong thời gian chạy.
Nếu bạn không tìm thấy bất kỳ tính năng nào bị vô hiệu hoá trong ứng dụng, hãy liên hệ với Nhóm hỗ trợ Firebase.
Bảng điều khiển cho biết đã phát hiện SDK nhưng không có dữ liệu nào hiển thị
Performance Monitoring xử lý dữ liệu sự kiện hiệu suất trước khi hiển thị dữ liệu đó trong trang tổng quan Hiệu suất.
Nếu đã hơn 24 giờ kể từ khi thông báo "Đã phát hiện SDK" xuất hiện mà bạn vẫn chưa thấy dữ liệu, hãy kiểm tra Trang tổng quan về trạng thái Firebase trong trường hợp có sự cố ngừng dịch vụ đã biết. Nếu không có sự cố ngừng hoạt động, hãy liên hệ với Nhóm hỗ trợ Firebase.
Khắc phục vấn đề chung
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.
Ứng dụng không ghi nhật ký các sự kiện hiệu suất
Nếu bạn không thấy thông báo nhật ký cho các sự kiện về hiệu suất, hãy thử các bước khắc phục sự cố sau:
Hãy kiểm tra chế độ thiết lập của trình bổ trợ Gradle Performance Monitoring như sau:
Đảm bảo rằng bạn đã thêm trình bổ trợ đúng cách. Cụ thể, hãy kiểm tra những mục sau:
- Bạn đã thêm trình bổ trợ (
) vào tệpapply plugin: 'com.google.firebase.firebase-perf' build.gradle
mô-đun (cấp ứng dụng). - Bạn đã đưa phần phụ thuộc classpath cho trình bổ trợ (
) vào tệpclasspath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
cấp dự án.
- Bạn đã thêm trình bổ trợ (
Đảm bảo rằng trình bổ trợ không bị vô hiệu hoá thông qua một trong các cờ sau:
instrumentationEnabled
trong tệpbuild.gradle
của mô-đun (cấp ứng dụng)firebasePerformanceInstrumentationEnabled
trong tệpgradle.properties
Kiểm tra để đảm bảo rằng SDK Performance Monitoring không bị tắt thông qua một trong các cờ sau trong tệp
AndroidManifest.xml
:firebase_performance_collection_enabled
firebase_performance_collection_deactivated
Đảm bảo rằng Performance Monitoring không bị tắt trong thời gian chạy.
Nếu bạn không thấy tính năng nào bị vô hiệu hoá trong ứng dụng của mình, hãy liên hệ với Nhóm hỗ trợ của Firebase.
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:
Hãy đảm bảo rằng bạn đang sử dụng phiên bản SDK Android mới nhất (phiên bản 21.0.2). Dấu vết kết xuất màn hình chỉ có trên phiên bản 15.2.0 trở lên.
Đảm bảo rằng bạn chưa tắt tính năng Tăng tốc phần cứng theo cách thủ công cho một màn hình.
Đảm bảo bạn không sử dụng DexGuard hoặc Jack. Performance Monitoring không tương thích với các chuỗi công cụ này.
DexGuard tắt tính năng tự động thu thập dấu vết khởi động ứng dụng, ứng dụng chạy trên nền trước và ứng dụng chạy trên nền sau. Tuy nhiên, mọi dấu vết mã tuỳ chỉnh sẽ hoạt động bình thường nếu ứng dụng của bạn sử dụng DexGuard.
Jack không còn được dùng nữa và bạn thường không nên sử dụng trong ứng dụng của mình.
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 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:
Nếu bạn đã đo lường dấu vết mã tuỳ chỉnh thông qua Trace API, hãy kiểm tra chế độ thiết lập của các dấu vết, đặc biệt là những dấu vết 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 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.
- 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 (
Nếu bạn đã đo lường dấu vết mã tuỳ chỉnh thông qua ký hiệu
@AddTrace
, hãy kiểm tra chế độ thiết lập của trình bổ trợ Gradle Performance Monitoring:Hãy nhớ thêm trình bổ trợ đúng cách. Cụ thể, hãy kiểm tra những mục sau:
- Bạn đã thêm trình bổ trợ (
) vào tệpapply plugin: 'com.google.firebase.firebase-perf' build.gradle
mô-đun (cấp ứng dụng). - Bạn đã đưa phần phụ thuộc classpath cho trình bổ trợ (
) vào tệpclasspath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
cấp dự án.
- Bạn đã thêm trình bổ trợ (
Đảm bảo rằng trình bổ trợ không bị vô hiệu hoá thông qua một trong các cờ sau:
instrumentationEnabled
trong tệpbuild.gradle
của mô-đun (cấp ứng dụng)firebasePerformanceInstrumentationEnabled
trong tệpgradle.properties
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 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:
Đối với các ứng dụng Android, trình bổ trợ Performance Monitoring cho Gradle cho phép công cụ đo lường cung cấp tính năng tự động giám sát các yêu cầu mạng HTTP/S. Kiểm tra những điều sau:
Đảm bảo rằng bạn đã thêm trình bổ trợ đúng cách. Cụ thể, hãy kiểm tra những vấn đề sau:
- Bạn đã thêm trình bổ trợ (
) vào tệpapply plugin: 'com.google.firebase.firebase-perf' build.gradle
mô-đun (cấp ứng dụng). - Bạn đã đưa phần phụ thuộc classpath cho trình bổ trợ (
) vào tệpclasspath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
cấp dự án.
- Bạn đã thêm trình bổ trợ (
Đảm bảo rằng trình bổ trợ không bị vô hiệu hoá thông qua một trong các cờ sau:
instrumentationEnabled
trong tệpbuild.gradle
của mô-đun (cấp ứng dụng)firebasePerformanceInstrumentationEnabled
trong tệpgradle.properties
của bạn
Kiểm tra tính không tương thích của thư viện mạng. Performance Monitoring tự động thu thập các chỉ số cho các yêu cầu mạng sử dụng các thư viện mạng sau: OkHttp 3.x.x, URLConnection của Java và Apache HttpClient.
Xin lưu ý rằng bạn có thể thêm tính năng giám sát tuỳ chỉnh cho các yêu cầu mạng.
Hãy lưu ý những điều 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, 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 bị để mở có thể sẽ không được báo cáo.
Performance Monitoring không tương thích với DexGuard và Jack.
- DexGuard tắt tính năng giám sát các yêu cầu mạng HTTP/S.
- Jack không còn được dùng nữa và thường không được dùng trong ứng dụng của bạn.
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.
Dữ liệu về yêu cầu mạng không tổng hợp như dự kiến
Tìm hiểu thêm về cách Performance Monitoring tổng hợp dữ liệu yêu cầu mạng trong các mẫu URL.
Bạn cũng có thể thử các mẫu URL tuỳ chỉnh!
Câu hỏi thường gặp
Đ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?
Để 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ỉ hiển thị 3 cảnh báo gần đây nhất cho (các) ứng dụng đã chọn.
Để tìm hiểu thêm 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.
Khả năng đặt ngưỡng cho các vấn đề trong bảng điều khiển đã bị gì?
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 mớ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 về 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ừ 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 lượng lớn hoạt động cải thiện hiệu suất, thì Performance Monitoring 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 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ý khối lượng dữ liệu chúng tôi thu thập, Performance Monitoring sử dụng các lựa chọn 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: Performance Monitoring thu thập một số lượng dấu vết mã và dấu vết yêu cầu mạng có giới hạn cho mỗi ứng dụng mỗi 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à tuỳ theo ứng dụng và được điều chỉnh để đảm bảo rằng tổng lượng dữ liệu được thu thập vẫn ở 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 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, Performance Monitoring cũng có thể hạn chế số 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 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 một đoạn mã được thực thi.
- 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 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 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 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 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á 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ả 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ả 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
- 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ẻ con 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ố 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 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 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ì từng 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à một hạn chế hiện tại trong SDK Performance Monitoring.
Tại sao tôi không thấy dấu vết mảnh?
Để xem hiệu suất của các mảnh ngoài hoạt động của ứng dụng, hãy đảm bảo rằng ứng dụng của bạn đang sử dụng Performance Monitoring SDK Android phiên bản 20.1.0 trở lên. Để tìm hiểu thêm, hãy xem bài viết Thêm tính năng Giám sát hiệu suất vào ứng dụng.
Làm cách nào để biết dấu vết nào liên quan đến các mảnh và hoạt động?
Mỗi mảnh và dấu vết hoạt động dựa trên tên lớp như đã xác định trong ứng dụng của bạn. Mỗi dấu vết màn hình chứa tiền tố st, theo sau là tên của lớp. Trên bảng điều khiển của Firebase, tiền tố sẽ bị xoá. Để tìm hiểu thêm, hãy xem Tìm hiểu về dữ liệu hiệu suất kết xuất màn hình (ứng dụng Apple và Android) .
Tại sao tôi thấy ít dấu vết mảnh hơn so với các dấu vết khác?
Performance Monitoring tiến hành lấy mẫu sự kiện trên tất cả sự kiện được thu thập trên một thiết bị. Phương pháp này cho phép chúng tôi thu thập các sự kiện tối thiểu cần thiết từ thiết bị của người dùng để cung cấp các chỉ số về hiệu suất.
Làm cách nào để tôi được thông báo khi có vấn đề về hiệu suất kết xuất của ứng dụng?
Performance Monitoring cho phép bạn thiết lập cảnh báo cho các chỉ số mà bạn quan tâm. Đối với các dấu vết kết xuất màn hình được tạo, bạn có thể thiết lập cảnh báo để thông báo cho bạn khi tỷ lệ phần trăm khung hình bị chậm và bị treo vượt quá ngưỡng mà bạn đặt.
Thời gian tạo bản dựng của tôi cao sau khi bật trình bổ trợ Gradle Performance Monitoring. Làm cách nào để cải thiện vấn đề này?
Performance Monitoring dành cho Android sử dụng tính năng đo lường mã byte để cung cấp một số tính năng ngay từ đầu như theo dõi các yêu cầu mạng HTTP/S. Trong quá trình biên dịch, quy trình này yêu cầu lặp lại tất cả các lớp của ứng dụng (bao gồm cả các phần phụ thuộc) để đo lường đoạn mã quan trọng trong việc đo lường hiệu suất yêu cầu mạng của ứng dụng.
Dưới đây là một số yếu tố chính góp phần làm tăng thời gian xây dựng:
- Số lượng lớp hoặc tệp
- Kích thước của từng lớp đó (số dòng mã)
- Cấu hình máy
- Bản dựng ban đầu so với bản dựng tiếp theo (các bản dựng tiếp theo thường nhanh hơn bản dựng ban đầu)
Để tối ưu hoá thời gian xây dựng, hãy cân nhắc việc mô-đun hoá mã.
Kể từ phiên bản 1.3.3 của trình bổ trợ Performance Monitoring, chúng tôi đã tập trung vào việc cải thiện đáng kể quá trình xử lý bản dựng tăng dần và lưu dữ liệu đầu vào vào bộ nhớ đệm của thư viện. Để nhận được những điểm cải tiến mới nhất về thời gian xây dựng, hãy nhớ sử dụng phiên bản mới nhất của trình bổ trợ (phiên bản 1.4.2).
Xin lưu ý rằng bạn có thể tắt trình bổ trợ Performance Monitoring cho các bản gỡ lỗi cục bộ nếu muốn tránh thời gian xây dựng lâu. Tuy nhiên, bạn không nên sử dụng phương pháp này cho các bản dựng chính thức vì có thể bỏ lỡ các phép đo hiệu suất cho các yêu cầu mạng trong ứng dụng.
Tôi phải làm gì nếu gặp lỗi bản dựng do các thư viện không tương thích với trình bổ trợ Gradle Performance Monitoring?
Performance Monitoring dành cho Android sử dụng khả năng đo lường mã byte để cung cấp một số tính năng có sẵn như theo dõi các yêu cầu mạng HTTP/S. Trong quá trình biên dịch, quy trình này yêu cầu lặp lại qua tất cả các lớp của ứng dụng (bao gồm cả các phần phụ thuộc) để đo lường mã quan trọng trong việc đo lường hiệu suất yêu cầu mạng của ứng dụng.
Nếu bạn gặp lỗi bản dựng như JSR/RET are not supported with
computeFrames option
hoặc các lỗi tương tự sau khi tích hợp với trình bổ trợ Performance Monitoring, thì nguyên nhân có thể là do bạn cũng có một phần phụ thuộc trên một thư viện không tương thích với trình bổ trợ Gradle Performance Monitoring.
Để khắc phục vấn đề này, bạn có thể loại trừ các lớp/thư viện không tương thích khỏi hoạt động đo lường bằng cách làm theo các bước sau:
- Cập nhật lên phiên bản mới nhất của trình bổ trợ Gradle Performance Monitoring (tối thiểu phiên bản 1.4.0).
- Cập nhật phiên bản trình bổ trợ Android cho Gradle lên phiên bản 7.2.0 trở lên.
- Thêm cờ sau vào tệp
build.gradle
của mô-đun (cấp ứng dụng) để loại trừ các lớp/thư viện không tương thích khỏi việc đo lường: Để tìm hiểu thêm về thuộc tínhandroid { // ... androidComponents { onVariants(selector().all(), { instrumentation.excludes.add("example.incompatible.library") }) } }
exclude
của APIInstrumentation
của trình bổ trợ Android cho Gradle, hãy xem phần Instrumentation (Đo lường).
Vui lòng gửi vấn đề trên Github khi bạn gặp lỗi bản dựng do các thư viện không tương thích để chúng cũng có thể được loại trừ khỏi việc đo lường trong trình bổ trợ Performance Monitoring.
Dữ liệu Performance Monitoring của tôi 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 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ẽ 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".
Để tận dụng tính năng xử lý dữ liệu gần như theo thời gian thực, hãy đảm bảo ứng dụng của bạn sử dụng phiên bản SDK tương thích theo 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 hoạt độ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 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 Performance Monitoring 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 Performance Monitoring đượ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 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 Performance Monitoring 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 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 của tôi vẫn 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 Firebase không?
Có! Bất kể phiên bản SDK mà một thực thể ứng dụng sử dụng là gì, 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 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.
Liên hệ với Nhóm hỗ trợ Firebase
Nếu bạn liên hệ với Nhóm hỗ trợ Firebase, hãy luôn cung cấp mã ứng dụng Firebase của bạn. Tìm mã ứng dụng Firebase trong thẻ Ứng dụng của bạn của Cài đặt dự án settings.