Tắt tính năng Giám sát hiệu suất Firebase


Trong quá trình phát triển và kiểm thử ứng dụng, có thể bạn sẽ thấy việc tắt Performance Monitoring.

Ví dụ: bằng cách tắt Performance Monitoring trong quy trình tạo ứng dụng, bạn có thể:

  • Tắt một số chức năng nhất định của Performance Monitoring (chẳng hạn như các chức năng do trình bổ trợ Gradle Performance Monitoring cung cấp) trong bản gỡ lỗi, nhưng bật lại các chức năng đó cho bản phát hành.

  • Tắt Performance Monitoring khi tạo bản dựng ứng dụng, nhưng cho phép ứng dụng bật lại tính năng đó trong thời gian chạy.

  • Tắt Performance Monitoring khi tạo ứng dụng và không cho phép ứng dụng của bạn hãy bật lại trong thời gian chạy.

Bạn cũng có thể tạo ứng dụng khi bật Performance Monitoring, nhưng sử dụng Firebase Remote Config để cung cấp cho bạn linh hoạt để tắt (và bật lại) Performance Monitoring trong ứng dụng phát hành chính thức. Bằng tùy chọn này, thậm chí bạn có thể định cấu hình ứng dụng của mình để cho phép người dùng chọn tham gia hoặc không tham gia đang sử dụng Performance Monitoring.

Tắt Performance Monitoring trong quá trình tạo ứng dụng

Bạn có thể tắt Performance Monitoring trong quá trình xây dựng bằng cách tắt trình bổ trợ Performance Monitoring cho Gradle và/hoặc bằng tắt thư viện Android Performance Monitoring.

Trong quá trình phát triển và gỡ lỗi, việc tắt trình bổ trợ sẽ hữu ích vì do trình bổ trợ đo lường có thể góp phần làm tăng thời gian xây dựng. Tuy nhiên, bạn có thể cân nhắc việc giữ nguyên bật thư viện để bạn vẫn có thể xem dữ liệu hiệu suất bắt đầu ứng dụng, dấu vết trong nền trước và ứng dụng trong nền cũng như bất kỳ dấu vết mã tuỳ chỉnh trong ứng dụng của bạn.

Tắt trình bổ trợ Performance Monitoring cho Gradle

Bạn có thể tắt trình bổ trợ Performance Monitoring bằng cách thêm cờ instrumentationEnabled bằng các tuỳ chọn sau:

  • Thuộc tính tiện ích — tắt trình bổ trợ cho một biến thể bản dựng cụ thể tại thời điểm biên dịch

  • Project Properties – tắt trình bổ trợ cho tất cả biến thể bản dựng tại thời điểm biên dịch

Tắt trình bổ trợ thông qua cờ Thuộc tính tiện ích

Bằng cách sử dụng cờ Thuộc tính tiện ích, bạn có thể tắt trình bổ trợ Performance Monitoring cho một biến thể bản dựng cụ thể tại thời điểm biên dịch.

  1. Trong tệp Gradle cấp gốc (cấp dự án) (<project>/build.gradle.kts hoặc <project>/build.gradle), hãy đảm bảo Phần phụ thuộc của Trình bổ trợ Android cho Gradle được chỉ định là phiên bản 3.4.0 trở lên.

    Đối với các phiên bản trước đó của Trình bổ trợ Android cho Gradle, bạn vẫn có thể tắt trình bổ trợ Performance Monitoring cho một biến thể bản dựng cụ thể, nhưng thời gian xây dựng đóng góp cho biến thể đó sẽ không bị loại bỏ hoàn toàn.

  2. Thêm cờ sau vào tệp Gradle mô-đun (cấp ứng dụng) của bạn (thường là <project>/<app-module>/build.gradle.kts hoặc <project>/<app-module>/build.gradle), sau đó đặt thành false để tắt trình bổ trợ Performance Monitoring.

    Kotlin

    import com.google.firebase.perf.plugin.FirebasePerfExtension
    
    // ...
    
    android {
      // ...
      buildTypes {
        getByName("debug") {
          configure<FirebasePerfExtension> {
            // Set this flag to 'false' to disable @AddTrace annotation processing and
            // automatic monitoring of HTTP/S network requests
            // for a specific build variant at compile time.
            setInstrumentationEnabled(false)
          }
        }
      }
    }

    Groovy

    android {
      // ...
      buildTypes {
        debug {
          FirebasePerformance {
            // Set this flag to 'false' to disable @AddTrace annotation processing and
            // automatic monitoring of HTTP/S network requests
            // for a specific build variant at compile time.
            instrumentationEnabled false
          }
        }
      }
    }

Tắt trình bổ trợ thông qua cờ Thuộc tính dự án

Bằng cách sử dụng cờ Project Properties (Thuộc tính dự án), bạn có thể tắt trình bổ trợ Performance Monitoring cho tất cả biến thể bản dựng tại thời điểm biên dịch.

Thêm cờ sau vào tệp gradle.properties rồi thiết lập thành false để tắt trình bổ trợ Performance Monitoring.

// ...

// Set this flag to 'false' to disable @AddTrace annotation processing and
// automatic monitoring of HTTP/S network requests
// for all build variants at compile time.
firebasePerformanceInstrumentationEnabled=false

Tắt thư viện Android Performance Monitoring

Nếu tắt thư viện Performance Monitoring tại thời điểm biên dịch, bạn có thể chọn cho phép ứng dụng bật thư viện này trong thời gian chạy hay không.

Tắt thư viện tại thời điểm biên dịch, nhưng cho phép ứng dụng bật thư viện đó trong thời gian chạy

Thêm phần tử <meta-data> sau vào AndroidManifest.xml của ứng dụng tệp:

  <application>
    <meta-data
      android:name="firebase_performance_collection_enabled"
      android:value="false" />
  </application>

Tắt thư viện tại thời điểm biên dịch, nhưng không cho phép ứng dụng bật thư viện này trong thời gian chạy

Thêm phần tử <meta-data> sau vào AndroidManifest.xml của ứng dụng tệp:

  <application>
    <meta-data
      android:name="firebase_performance_collection_deactivated"
      android:value="true" />
  </application>

Tắt ứng dụng của bạn trong thời gian chạy bằng Remote Config

Firebase Remote Config cho phép bạn thay đổi hành vi và giao diện của ứng dụng, vì vậy, đây là cách lý tưởng để bạn có thể tắt Performance Monitoring trong đã triển khai các phiên bản của ứng dụng.

Để tắt tính năng thu thập dữ liệu Performance Monitoring vào lần tiếp theo ứng dụng Android khởi động, hãy sử dụng mã ví dụ như bên dưới. Để biết thêm thông tin về cách sử dụng Remote Config trong ứng dụng Android, hãy xem phần Sử dụng Firebase Remote Config trên Android.

  1. Đảm bảo rằng Remote Config nằm trong mục dependencies của tệp Gradle mô-đun (cấp ứng dụng) (thường là <project>/<app-module>/build.gradle.kts hoặc <project>/<app-module>/build.gradle):

    Kotlin+KTX

      implementation("com.google.firebase:firebase-config-ktx:22.0.0")
    

    Java

      implementation("com.google.firebase:firebase-config:22.0.0")
    
  2. Thiết lập Remote Config và tắt Performance Monitoring nếu perf_disable là đặt thành true:

    Kotlin+KTX

    // Setup remote config
    val config = Firebase.remoteConfig
    
    // You can uncomment the following two statements to permit more fetches when
    // validating your app, but you should comment out or delete these lines before
    // distributing your app in production.
    // val configSettings = remoteConfigSettings {
    //     minimumFetchIntervalInSeconds = 3600
    // }
    // config.setConfigSettingsAsync(configSettings)
    // Load in-app defaults from an XML file that sets perf_disable to false until you update
    // values in the Firebase Console
    
    // Observe the remote config parameter "perf_disable" and disable Performance Monitoring if true
    config.setDefaultsAsync(R.xml.remote_config_defaults)
        .addOnCompleteListener { task ->
            if (task.isSuccessful) {
                Firebase.performance.isPerformanceCollectionEnabled = !config.getBoolean("perf_disable")
            } else {
                // An error occurred while setting default parameters
            }
        }

    Java

    // Setup remote config
    final FirebaseRemoteConfig config = FirebaseRemoteConfig.getInstance();
    
    // You can uncomment the following two statements to permit more fetches when
    // validating your app, but you should comment out or delete these lines before
    // distributing your app in production.
    // FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
    //       .setMinimumFetchIntervalInSeconds(3600)
    //       .build();
    // config.setConfigSettingsAsync(configSettings);
    // Load in-app defaults from an XML file that sets perf_disable to false until you update
    // values in the Firebase Console
    
    //Observe the remote config parameter "perf_disable" and disable Performance Monitoring if true
    config.setDefaultsAsync(R.xml.remote_config_defaults)
            .addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    if (task.isSuccessful()) {
                        if (config.getBoolean("perf_disable")) {
                            FirebasePerformance.getInstance().setPerformanceCollectionEnabled(false);
                        } else {
                            FirebasePerformance.getInstance().setPerformanceCollectionEnabled(true);
                        }
                    } else {
                        // An error occurred while setting default parameters
                    }
                }
            });
  3. Thêm mã sau vào MainActivity.java để tìm nạp và kích hoạt Giá trị Remote Config:

    Kotlin+KTX

    // Remote Config fetches and activates parameter values from the service
    val config = Firebase.remoteConfig
    config.fetch(3600)
        .continueWithTask { task ->
            if (!task.isSuccessful) {
                task.exception?.let {
                    throw it
                }
            }
            config.activate()
        }
        .addOnCompleteListener(this) { task ->
            if (task.isSuccessful) {
                // Parameter values successfully activated
                // ...
            } else {
                // Handle errors
            }
        }

    Java

    //Remote Config fetches and activates parameter values from the service
    final FirebaseRemoteConfig config = FirebaseRemoteConfig.getInstance();
    config.fetch(3600)
            .continueWithTask(new Continuation<Void, Task<Boolean>>() {
                @Override
                public Task<Boolean> then(@NonNull Task<Void> task) throws Exception {
                    if (!task.isSuccessful()) {
                        throw task.getException();
                    }
                    return config.activate();
                }
            })
            .addOnCompleteListener(new OnCompleteListener<Boolean>() {
                @Override
                public void onComplete(@NonNull Task<Boolean> task) {
                    if (task.isSuccessful()) {
                        // Parameter values successfully activated
                        // ...
                    } else {
                        // Handle errors
                    }
                }
            });
  4. Để tắt Performance Monitoring trong bảng điều khiển Firebase, hãy tạo một perf_disable trong dự án của ứng dụng, sau đó đặt giá trị của tham số đó thành true.

    Thay đổi này sẽ thực hiện lệnh gọi đến SDK Performance Monitoring "không có hoạt động nào" các cuộc gọi (NOOP), giúp loại bỏ mọi ảnh hưởng đáng kể đến hiệu suất của ứng dụng nhờ sử dụng SDK Performance Monitoring trong ứng dụng của bạn.

    Nếu bạn đặt giá trị perf_disable thành false, thì Performance Monitoring sẽ được giữ lại bật.