إيقاف مراقبة أداء Firebase


أثناء تطوير التطبيقات واختبارها، قد يكون من المفيد إيقاف Performance Monitoring.

على سبيل المثال، من خلال إيقاف Performance Monitoring أثناء عملية إنشاء التطبيق، يمكنك إجراء ما يلي:

  • أوقِف وظائف معيّنة في Performance Monitoring (مثل تلك التي يوفّرها Performance Monitoring Gradle plugin) في إصدارات تصحيح الأخطاء، ولكن أعِد تفعيل الوظائف في إصدار الإصدار.

  • أوقِف Performance Monitoring عند إنشاء تطبيقك، ولكن اسمح لتطبيقك بإعادة تفعيله أثناء التشغيل.

  • أوقِف Performance Monitoring عند إنشاء تطبيقك، ولا تسمح لتطبيقك مجددًا بإعادة تفعيله في وقت التشغيل.

يمكنك أيضًا إنشاء تطبيقك مع تفعيل Performance Monitoring، ولكن استخدِم Firebase Remote Config لمنحك مرونة لإيقاف (وإعادة تفعيل) Performance Monitoring في تطبيقك العلني. وباستخدام هذا الخيار، يمكنك أيضًا ضبط تطبيقك للسماح للمستخدمين بالموافقة على استخدام Performance Monitoring أو إيقافه.

أوقِف Performance Monitoring أثناء عملية إنشاء تطبيقك.

يمكنك إيقاف Performance Monitoring أثناء عملية التصميم من خلال إيقاف المكوّن الإضافي Performance Monitoring Gradle و/أو إيقاف مكتبة Performance Monitoring Android.

أثناء التطوير وتصحيح الأخطاء، يكون إيقاف المكوّن الإضافي مفيدًا لأنّه يمكن أن تساهم عملية المراقبة التي يجريها المكوّن الإضافي في زيادة وقت الإنشاء. ومع ذلك، يمكنك إبقاء المكتبة مفعّلة حتى يظل بإمكانك عرض بيانات الأداء من عمليات تتبُّع بدء تشغيل التطبيق والتطبيق في المقدّمة والتطبيق في الخلفية بالإضافة إلى أي عمليات تتبُّع للرمز المخصّص في تطبيقك.

إيقاف المكوّن الإضافي Performance Monitoring Gradle

يمكنك إيقاف المكوّن الإضافي Performance Monitoring عن طريق إضافة علامة instrumentationEnabled باستخدام الخيارات التالية:

  • سمة الإضافة: لإيقاف المكوّن الإضافي لنوع إصدار محدّد في وقت الترجمة

  • خاصية المشروع: يؤدي هذا الخيار إلى إيقاف المكوّن الإضافي في جميع صيغ الإنشاء في وقت الترجمة.

إيقاف المكوّن الإضافي من خلال علامة خاصّة بموقع الإضافة

باستخدام علامة خاصية الإضافات، يمكنك إيقاف مكوّن Performance Monitoring الإضافي لإصدار محدّد في وقت الترجمة.

  1. في ملف Gradleعلى مستوى الجذر (على مستوى المشروع) (<project>/build.gradle.kts أو <project>/build.gradle)، تأكَّد من تحديد الاعتمادية على المكوّن الإضافي لنظام Gradle المتوافق مع Android على أنّها الإصدار 3.4.0 أو إصدار أحدث.

    بالنسبة إلى الإصدارات الأقدم من المكوّن الإضافي لنظام Gradle المتوافق مع Android، سيظل بإمكانك إيقاف المكوّن الإضافي Performance Monitoring لإصدار محدّد من التصميم، ولكن لن يتمّ إيقاف مساهمة وقت التصميم لهذا الإصدار تمامًا.

  2. أضِف العلامة التالية إلى ملف Gradle الخاص بالوحدة (على مستوى التطبيق) (عادةً <project>/<app-module>/build.gradle.kts أو <project>/<app-module>/build.gradle)، ثم اضبطها على false لإيقاف المكوّن الإضافي 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
          }
        }
      }
    }
    

إيقاف المكوّن الإضافي من خلال علامة موقع المشروع

باستخدام علامة خاصية المشروع، يمكنك إيقاف المكوّن الإضافي Performance Monitoring ل جميع صيغ الإصدار في وقت الترجمة.

أضِف العلامة التالية إلى ملف gradle.properties، ثم اضبطها على false لتعطيل المكوّن الإضافي 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

إيقاف مكتبة Performance Monitoring Android

في حال إيقاف مكتبة Performance Monitoring أثناء وقت الترجمة، يمكنك اختيار ما إذا كان يجب السماح لتطبيقك بتفعيل المكتبة أثناء وقت التشغيل.

أوقِف المكتبة أثناء وقت الترجمة، ولكن اسمح لتطبيقك بتفعيلها أثناء وقت التشغيل.

أضِف عنصر <meta-data> التالي إلى ملف AndroidManifest.xml في تطبيقك:

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

أوقِف المكتبة أثناء مرحلة الترجمة، ولكن لا تسمح لتطبيقك بتفعيلها أثناء التشغيل.

أضِف عنصر <meta-data> التالي إلى ملف AndroidManifest.xml في تطبيقك:

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

إيقاف تطبيقك أثناء التشغيل باستخدام Remote Config

تتيح لك أداة Firebase Remote Config إجراء تغييرات على سلوك تطبيقك ومظهره، لذا فهي توفّر طريقة مثالية لإيقاف Performance Monitoring في مثيلات تطبيقك التي تم نشرها.

لإيقاف جمع بيانات Performance Monitoring في المرة التالية التي يبدأ فيها تطبيق Android ، استخدِم نموذج الرمز البرمجي الموضَّح أدناه. لمزيد من المعلومات حول استخدام Remote Config في تطبيق Android، يُرجى الاطّلاع على استخدام Firebase Remote Config على Android.

  1. تأكَّد من أنّ Remote Config متوفّر في قسم dependencies منملف Gradle الخاص بملف الوحدة (على مستوى التطبيق) (عادةً <project>/<app-module>/build.gradle.kts أو <project>/<app-module>/build.gradle):

    Kotlin+KTX

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

    Java

      implementation("com.google.firebase:firebase-config:22.0.1")
    
  2. اضبط Remote Config وأوقِف Performance Monitoring إذا كان perf_disable مضبوطًا على 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. أضِف الرمز التالي إلى MainActivity.java لاسترداد قيم 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. لإيقاف Performance Monitoring في وحدة تحكّم Firebase، أنشئ مَعلمة perf_disable في مشروع تطبيقك، ثم اضبط قيمتها على true.

    سيؤدي هذا التغيير إلى إجراء طلبات "عدم إجراء أي عملية" (NOOP) في حزمة تطوير البرامج (SDK) لنظام التشغيل Performance Monitoring، ما سيؤدي إلى إزالة أي تأثيرات كبيرة على أداء التطبيق الناتجة عن استخدام حزمة تطوير البرامج (SDK) لنظام التشغيل Performance Monitoring في تطبيقك.

    في حال ضبط قيمة perf_disable على false، يظل الخيار Performance Monitoring مفعّلاً.