Khắc phục sự cố và câu hỏi thường gặp về tính năng Giám sát hiệu suất


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 các tính năng và công cụ của Performance Monitoring.

Các bước 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 thường được khuyến nghị cho mọi người trước khi tiến hành khắc phục sự cố thêm.

1. Kiểm tra thông báo nhật ký cho các sự kiện hiệu suất

Kiểm tra thông báo nhật ký để đảm bảo rằng SDK Performance Monitoring đang ghi lại các sự kiện hiệu suất.

  1. Bật tính năng ghi nhật ký gỡ lỗi cho Performance Monitoring tại thời điểm tạo bản dựng bằng cách thêm một phần tử <meta-data> vào tệp AndroidManifest.xml của ứng dụng, như sau:

    <application>
        <meta-data
          android:name="firebase_performance_logcat_enabled"
          android:value="true" />
    </application>
  2. Kiểm tra nhật ký thông báo để xem có thông báo lỗi nào không.

  3. Performance Monitoring gắn thẻ FirebasePerformance cho các thông báo nhật ký. Bằng cách 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
  4. Kiểm tra các loại nhật ký sau đây để biết Performance Monitoring có đang ghi lại các sự kiện hiệu suất hay không:

    • Logging trace metric: TRACE_NAME, FIREBASE_PERFORMANCE_CONSOLE_URL
    • Logging network request trace: URL
  5. Nhấp vào URL để xem dữ liệu của bạn trong bảng điều khiển của 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 của Firebase

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 gặp sự cố ngừng hoạt động đã biết.

Bắt đầu sử dụng Performance Monitoring

Nếu bạn đang 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 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.

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 về sự kiện (chẳng hạn như lượt tương tác với ứng dụng) từ ứng dụng của bạn. Thông thường, trong vòng 10 phút kể từ khi bạn khởi động ứng dụng, bảng điều khiển 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 thấy 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 bạn đã thêm phiên bản SDK mới nhất vào ứng dụng của mình hơn 10 phút nhưng vẫn không thấy thay đổi nào, hãy kiểm tra thông báo nhật ký để đảm bảo rằng Performance Monitoring đang ghi lại 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 sự cố thông báo phát hiện SDK bị trì hoãn.

  1. Đảm bảo rằng bạn đang sử dụng Performance Monitoring Android SDK 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.

  2. 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:

    1. Tạo sự kiện bằng cách chuyển đổi ứng dụng của bạn 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 giữa các màn hình và/hoặc kích hoạt các yêu cầu mạng.
  3. Đảm bảo rằng bạn đã thêm tệp cấu hình Firebase (google-services.json) một cách chính xác vào ứng dụng và bạn chưa sửa đổi tệp này. Cụ thể, hãy kiểm tra những điều 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 mô-đun (cấp ứng dụng) của ứng dụng.

    • Mã nhận dạng ứng dụng Firebase trên Android (mobilesdk_app_id) có trong tệp cấu hình là chính xác cho ứng dụng của bạn. Tìm Mã nhận dạng ứng dụng Firebase trong thẻ Ứng dụng của bạn trong phần Cà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ử làm như sau:

    1. Xoá tệp cấu hình hiện có trong ứng dụng của bạn.

    2. Hãy làm theo hướng dẫn này để tải một tệp cấu hình mới xuống và thêm tệp đó vào ứng dụng Android của bạn.

  4. Nếu SDK đang ghi lại sự kiện và mọi thứ dường 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 10 phút), hãy liên hệ với Nhóm hỗ trợ Firebase.

  1. Kiểm tra chế độ thiết lập của trình bổ trợ Gradle Performance Monitoring như sau:

    1. Đảm bảo rằng bạn đã thêm đúng plugin. Cụ thể, hãy kiểm tra những điều sau:

      • Bạn đã thêm trình bổ trợ (apply plugin: 'com.google.firebase.firebase-perf') vào tệp build.gradle mô-đun (cấp ứng dụng).
      • Bạn đã thêm phần phụ thuộc đường dẫn lớp cho trình bổ trợ (classpath 'com.google.firebase:perf-plugin:1.4.2') vào tệp build.gradle cấp dự án.

    2. Đảm bảo rằng plugin không bị vô hiệu hoá thông qua một trong các cờ sau:

      • instrumentationEnabled trong tệp build.gradle của mô-đun (cấp ứng dụng)
      • firebasePerformanceInstrumentationEnabled trong tệp gradle.properties của bạn

  2. 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
  3. Đảm bảo rằng Performance Monitoring không bị tắt trong thời gian chạy.

  4. 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 của mình, hãy liên hệ với Nhóm hỗ trợ Firebase.

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 về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 và bạn vẫn không thấy dữ liệu, hãy kiểm tra Trang tổng quan trạng thái của Firebase để xem có sự cố ngừng hoạt động nào đã biết hay không. Nếu không có sự cố ngừng hoạt động, hãy liên hệ với Nhóm hỗ trợ của 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 của mình, 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 các tính năng và công cụ Performance Monitoring.

Nếu bạn không thấy thông báo nhật ký cho các sự kiện hiệu suất, hãy thử các bước khắc phục sự cố sau:

  1. Kiểm tra chế độ thiết lập của trình bổ trợ Gradle Performance Monitoring như sau:

    1. Đảm bảo rằng bạn đã thêm đúng plugin. Cụ thể, hãy kiểm tra những điều sau:

      • Bạn đã thêm trình bổ trợ (apply plugin: 'com.google.firebase.firebase-perf') vào tệp build.gradle mô-đun (cấp ứng dụng).
      • Bạn đã thêm phần phụ thuộc đường dẫn lớp cho trình bổ trợ (classpath 'com.google.firebase:perf-plugin:1.4.2') vào tệp build.gradle cấp dự án.

    2. Đảm bảo rằng plugin không bị vô hiệu hoá thông qua một trong các cờ sau:

      • instrumentationEnabled trong tệp build.gradle của mô-đun (cấp ứng dụng)
      • firebasePerformanceInstrumentationEnabled trong tệp gradle.properties của bạn

  2. 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
  3. Đảm bảo rằng Performance Monitoring không bị tắt trong thời gian chạy.

  4. 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 của mình, hãy liên hệ với Nhóm hỗ trợ Firebase.

Nếu bạn bị thiếu dữ liệu cho các 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:

  1. Đảm bảo rằng bạn đang sử dụng phiên bản mới nhất của Android SDK (v21.0.5). Dấu vết kết xuất màn hình chỉ có trong phiên bản 15.2.0 trở lên.

  2. Đả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.

  3. Đảm bảo rằng 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 ở nền trước và ứng dụng ở 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 đã ngừng hoạt động và thường không được dùng trong ứng dụng của bạn.

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 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:

  1. Nếu bạn đo lường các 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 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ự gạch dưới ở đầu (_) và độ dài tối đa là 32 ký tự.
    • Bạn phải bắt đầu và dừng tất cả các dấu vết. 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.

  2. Nếu bạn đo lường các 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ợ Performance Monitoring Gradle:

    1. Đảm bảo rằng bạn đã thêm đúng plugin. Cụ thể, hãy kiểm tra những điều sau:

      • Bạn đã thêm trình bổ trợ (apply plugin: 'com.google.firebase.firebase-perf') vào tệp build.gradle mô-đun (cấp ứng dụng).
      • Bạn đã thêm phần phụ thuộc đường dẫn lớp cho trình bổ trợ (classpath 'com.google.firebase:perf-plugin:1.4.2') vào tệp build.gradle cấp dự án.

    2. Đảm bảo rằng plugin không bị vô hiệu hoá thông qua một trong các cờ sau:

      • instrumentationEnabled trong tệp build.gradle của mô-đun (cấp ứng dụng)
      • firebasePerformanceInstrumentationEnabled trong tệp gradle.properties của bạn

  3. Kiểm tra thông điệp nhật ký để đảm bảo Performance Monitoring đang ghi nhật ký các dấu vết mã tuỳ chỉnh dự kiến.

  4. Nếu Performance Monitoring đang ghi lại 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.

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:

  1. Đối với các ứng dụng Android, trình bổ trợ Performance Monitoring Gradle cho phép đ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:

    1. Đảm bảo rằng bạn đã thêm đúng plugin. Cụ thể, hãy kiểm tra những điều sau:

      • Bạn đã thêm trình bổ trợ (apply plugin: 'com.google.firebase.firebase-perf') vào tệp build.gradle mô-đun (cấp ứng dụng).
      • Bạn đã thêm phần phụ thuộc đường dẫn lớp cho trình bổ trợ (classpath 'com.google.firebase:perf-plugin:1.4.2') vào tệp build.gradle cấp dự án.

    2. Đảm bảo rằng plugin không bị vô hiệu hoá thông qua một trong các cờ sau:

      • instrumentationEnabled trong tệp build.gradle của mô-đun (cấp ứng dụng)
      • firebasePerformanceInstrumentationEnabled trong tệp gradle.properties của bạn

  2. Kiểm tra xem thư viện mạng có không tương thích hay không. Performance Monitoring tự động thu thập các chỉ số cho những 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.

  3. Hãy lưu ý những điều sau:

    • Tuỳ thuộc vào hành vi của mã và các thư viện mạng mà mã của bạn sử dụng, Performance Monitoring có thể chỉ báo cáo về những 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 vẫn đang mở có thể không được báo cáo.

    • Performance Monitoring không tương thích với DexGuard và Jack.

      • DexGuard vô hiệu hoá tính năng giám sát các yêu cầu mạng HTTP/S.
      • Jack đã ngừng hoạt động 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.

Tìm hiểu thêm về cách Performance Monitoring tổng hợp dữ liệu yêu cầu mạng theo các mẫu URL.

Bạn cũng có thể thử mẫu URL tuỳ chỉnh!

Câu hỏi thường gặp

Chúng tôi đã thay thế Các vấn đề hàng đầu bằng Thông báo gần đây để tiếp nối việc ra mắt gần đây tính năng thông báo. 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á. 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 phần 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ị.

Để 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.

Performance Monitoring hỗ trợ cảnh báo cho những 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 chỉ số hiệu suất, chúng tôi đã xoá khả năng định cấu hình ngưỡng cho vấn đề.

Chúng tôi đã thay thế trang Chi tiết và trang Chỉ số bằng một giao diện người dùng (UI) tập trung, được thiết kế lại hoàn toàn để 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 tương tự như chức năng mà phần Chi tiết và Chỉ số 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 cho một dấu vết cụ thể.

Performance Monitoring thu thập dữ liệu hiệu suất từ thiết bị người dùng của ứ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 liên quan đến hiệu suất, thì Performance Monitoring có thể giới hạn việc thu thập dữ liệu đối với 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 được 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 lựa 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 đột ngột hàng loạt dấu vết, chúng tôi giới hạn số lượng dấu vết mã và yêu cầu mạng được gửi từ một thiết bị thành 300 sự kiện sau mỗi 10 phút. Phương pháp này bảo vệ thiết bị khỏi các hoạt độ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ị duy nhất làm sai lệch các 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ế các dấu vết mã và 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ốc độ lấy mẫu động được tìm nạp trên các thiết bị (bằng cách sử dụng Firebase Remote Config) để xác định xem một thiết bị ngẫu nhiên có nên ghi lại 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ỷ lệ 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 ở dưới mức giới hạn.

    Những dự án đã bật tính năng tích hợp BigQuery sẽ nhận được giới hạn cao hơn về 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 các ứ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 tính hiệu quả của các chỉ số, nhưng có thể gây ra những thay đổi nhỏ về mẫu, bao gồm cả những thay đổi sau:

    • 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 liên kết chặt chẽ trong mã có thể có số lượng mẫu khác nhau.

Chúng tôi đã thay thế thẻ Vấn đề bằng tính năng Cảnh báo. Tính năng này sẽ tự động thông báo cho bạn khi ngưỡng bạn đặt bị vượt quá. Bạn không còn 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 một 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.

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 ở một nơi. Trong quá trình thiết kế lại, chúng tôi đã xoá các trang Trên thiết bị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ẻ Trên thiết bị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 các dấu vết của bạn trong các thẻ phụ sau đây của bảng dấu vết:

  • Dấu vết yêu cầu mạng (cả dấu vết có sẵn và dấu vết tuỳ chỉnh) – thẻ phụ Yêu cầu mạng
  • Dấu vết mã tuỳ chỉnh – Thẻ phụ 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 ở nền sau – thẻ phụ Dấu vết tuỳ chỉnh
  • Dấu vết kết xuất màn hình – thẻ phụ Kết xuất 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 dấu vết và cách 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+ | Android | Web).

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ì có ít khung hình được kết xuất hơn mỗi giây. 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 sẽ bị treo. Tuy nhiên, nếu tốc độ làm mới của thiết bị cao hơn 60Hz, 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 được báo cáo hơn. Đây là một hạn chế hiện tại trong SDK Performance Monitoring.

Để 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 SDK Android Performance Monitoring 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.

Mỗi dấu vết của mảnh và hoạt động đều dựa trên tên lớp của dấu vết đó như được xác định trong ứng dụng của bạn. Mỗi dấu vết màn hình đều 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 bài viết 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) .

Performance Monitoring tiến hành lấy mẫu sự kiện trên tất cả các sự kiện được thu thập trên một thiết bị. Cách tiếp cận này cho phép chúng tôi thu thập số lượng 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ố hiệu suất.

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 chậm và bị treo vượt quá ngưỡng mà bạn đặt.

Performance Monitoring cho Android sử dụng tính năng đo lường mã byte để cung cấp một số tính năng có sẵn như giám sát 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 mã có vai trò quan trọng trong việc đo lường hiệu suất yêu cầu mạng của ứng dụng.

Sau đây là một số yếu tố chính góp phần làm tăng thời gian tạo bản 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 của bạn
  • 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 phân chia mã của bạn thành các mô-đun.

Bắt đầu 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 gia tăng và lưu trữ các đầu vào của thư viện vào bộ nhớ đệm. Để nhận được những điểm cải tiến mới nhất về thời gian tạo bản dựng, hãy nhớ sử dụng phiên bản mới nhất của trình bổ trợ (v1.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 tạo bản dựng quá lâu. Tuy nhiên, bạn không nên dùng phương pháp này cho các bản dựng phát hành, vì phương pháp này có thể dẫn đến việc bỏ lỡ các phép đo hiệu suất cho các yêu cầu mạng trong ứng dụng của bạn.

Performance Monitoring cho Android sử dụng tính năng đo lường mã byte để cung cấp một số tính năng có sẵn như giám sát 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 mã có vai trò 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ì có thể là do bạn cũng có một phần phụ thuộc vào một thư viện không tương thích với trình bổ trợ Performance Monitoring Gradle.

Để 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 quá trình đo lường bằng cách làm theo các bước sau:

  1. Cập nhật lên phiên bản mới nhất của trình bổ trợ Performance Monitoring Gradle (tối thiểu là v1.4.0).
  2. Cập nhật trình bổ trợ Android cho Gradle lên phiên bản 7.2.0 trở lên.
  3. Thêm cờ sau vào tệp build.gradle (cấp ứng dụng) của mô-đun để loại trừ các lớp/thư viện không tương thích khỏi quá trình đo lường:
    android {
      // ...
      androidComponents {
        onVariants(selector().all(), {
            instrumentation.excludes.add("example.incompatible.library")
        })
      }
    }
    Để tìm hiểu thêm về thuộc tính exclude của API Instrumentation trong trình bổ trợ Android cho Gradle, hãy xem phần Đ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 để các thư viện đó cũng có thể bị loại trừ khỏi quá trình đo lường trong trình bổ trợ Performance Monitoring.

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 trong khoảng thời gian từ 12:00 đến 24:00 (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

Firebase Performance Monitoring xử lý dữ liệu hiệu suất đã thu thập khi dữ liệu được gửi đến, nhờ đó, dữ liệu được hiển thị 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òng vài phút sau khi được thu thập, do đó có thuật ngữ "gần như theo thời gian thực".

Để tận dụng khả năng xử lý dữ liệu gần 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 với thời gian thực.

Để tận dụng khả năng xử lý dữ liệu gần 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, nhưng mọi phiên bản được liệt kê ở trên sẽ cho phép Performance Monitoring xử lý dữ liệu của bạn gần như 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, nhưng mọi phiên bản được liệt kê ở trên 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 ứ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ị chậm trễ khoảng 36 giờ kể từ thời điểm thu thập.

Có! Bất kể phiên bản SDK mà một phiên bản ứ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 (cách đây chưa đến khoảng 36 giờ), thì dữ liệu hiển thị là của những người dùng phiên bản ứng dụng đang 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 của tất cả các phiên bản ứng dụng.

Liên hệ với nhóm hỗ trợ của 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. Tìm mã ứng dụng Firebase trong thẻ Ứng dụng của bạn trong phần Cài đặt dự án.