ফায়ারবেস পারফরম্যান্স মনিটরিং অক্ষম করুন


আপনার ব্যবহারকারীদের Firebase Performance Monitoring ব্যবহার করা থেকে অপ্ট-ইন বা অপ্ট-আউট করতে দিতে, আপনি আপনার অ্যাপ কনফিগার করতে চাইতে পারেন যাতে আপনি Performance Monitoring সক্ষম এবং অক্ষম করতে পারেন। আপনি অ্যাপ ডেভেলপমেন্ট এবং পরীক্ষার সময় এই ক্ষমতাটি উপযোগী বলে মনে করতে পারেন।

নিম্নলিখিত বিবেচনা করার জন্য কিছু বিকল্প আছে:

  • আপনি আপনার অ্যাপ তৈরি করার সময় Performance Monitoring SDK অক্ষম করতে পারেন, রানটাইমে এটি পুনরায় সক্ষম করার বিকল্প সহ।

  • আপনি Performance Monitoring SDK সক্ষম করে আপনার অ্যাপ তৈরি করতে পারেন তবে Firebase Remote Config ব্যবহার করে রানটাইমে এটি নিষ্ক্রিয় করার বিকল্প রয়েছে।

  • আপনি Performance Monitoring SDK সম্পূর্ণরূপে নিষ্ক্রিয় করতে পারেন, রানটাইমে এটি সক্ষম করার কোনো বিকল্প নেই৷

আপনার অ্যাপ তৈরির প্রক্রিয়া চলাকালীন Performance Monitoring অক্ষম করুন

একটি পরিস্থিতি যেখানে আপনার অ্যাপ তৈরির প্রক্রিয়া চলাকালীন Performance Monitoring অক্ষম করা কার্যকর হতে পারে তা হল অ্যাপ ডেভেলপমেন্ট এবং পরীক্ষার সময় আপনার অ্যাপের প্রাক-রিলিজ সংস্করণ থেকে কর্মক্ষমতা ডেটা প্রতিবেদন করা এড়ানো।

Performance Monitoring নিষ্ক্রিয় বা নিষ্ক্রিয় করতে, আপনি আপনার Apple অ্যাপের জন্য সম্পত্তি তালিকা ফাইলে ( Info.plist ) দুটি কীগুলির মধ্যে একটি যোগ করতে পারেন:

  • Performance Monitoring অক্ষম করতে, কিন্তু রানটাইমে আপনার অ্যাপকে এটি সক্ষম করার অনুমতি দিন, আপনার অ্যাপের Info.plist ফাইলে firebase_performance_collection_enabled সেট false

  • Performance Monitoring সম্পূর্ণরূপে নিষ্ক্রিয় করতে, রানটাইমে এটি সক্ষম করার true বিকল্প ছাড়াই, আপনার অ্যাপের Info.plist ফাইলে firebase_performance_collection_deactivated সেট করুন।

Remote Config ব্যবহার করে রানটাইমে আপনার অ্যাপ অক্ষম করুন

Firebase Remote Config আপনাকে আপনার অ্যাপের আচরণ এবং চেহারাতে পরিবর্তন করতে দেয়, তাই এটি আপনাকে আপনার অ্যাপের নিয়োজিত দৃষ্টান্তগুলিতে Performance Monitoring অক্ষম করার একটি আদর্শ উপায় প্রদান করে।

পরের বার যখন আপনার Apple অ্যাপ শুরু হবে তখন Performance Monitoring ডেটা সংগ্রহ অক্ষম করতে, নীচে দেখানো উদাহরণ কোডটি ব্যবহার করুন। অ্যাপল অ্যাপে Remote Config ব্যবহার করার বিষয়ে আরও তথ্যের জন্য, অ্যাপল প্ল্যাটফর্মে Firebase Remote Config ব্যবহার করুন দেখুন।

  1. আপনার Podfile Remote Config ব্যবহার করা হয়েছে তা নিশ্চিত করুন:

    pod 'Firebase/RemoteConfig'
    
  2. আপনার অ্যাপের AppDelegate ফাইলের শীর্ষে নিম্নলিখিত যোগ করুন:

    সুইফট

    দ্রষ্টব্য: এই ফায়ারবেস পণ্যটি macOS, Mac ক্যাটালিস্ট, watchOS লক্ষ্যে উপলব্ধ নয়।
    import FirebaseRemoteConfig
    

    উদ্দেশ্য-C

    দ্রষ্টব্য: এই ফায়ারবেস পণ্যটি macOS, Mac ক্যাটালিস্ট, watchOS লক্ষ্যে উপলব্ধ নয়।
    @import FirebaseRemoteConfig;
    
  3. আপনার AppDelegate ফাইলে, অ্যাপ্লিকেশনের launchOptions স্টেটমেন্টে নিম্নলিখিত কোড যোগ করুন application:didFinishLaunchingWithOptions: উদাহরণ পদ্ধতি:

    সুইফট

    দ্রষ্টব্য: এই পণ্যটি macOS, Mac Catalyst, watchOS লক্ষ্যে উপলব্ধ নয়।
    remoteConfig = RemoteConfig.remoteConfig()
    // You can change the "false" below to "true" to permit more fetches when validating
    // your app, but you should change it back to "false" or remove this statement before
    // distributing your app in production.
    let remoteConfigSettings = RemoteConfigSettings(developerModeEnabled: false)
    remoteConfig.configSettings = remoteConfigSettings!
    // Load in-app defaults from a plist file that sets perf_disable to false until
    // you update values in the Firebase console.
    remoteConfig.setDefaultsFromPlistFileName("RemoteConfigDefaults")
    // Important! This needs to be applied before FirebaseApp.configure()
    if !remoteConfig["perf_disable"].boolValue {
        // The following line disables all automatic (out-of-the-box) monitoring
        Performance.sharedInstance().isInstrumentationEnabled = false
        // The following line disables all custom monitoring
        Performance.sharedInstance().isDataCollectionEnabled = false
    }
    else {
        Performance.sharedInstance().isInstrumentationEnabled = true
        Performance.sharedInstance().isDataCollectionEnabled = true
    }
    // Use Firebase library to configure APIs
    FirebaseApp.configure()
    

    উদ্দেশ্য-C

    দ্রষ্টব্য: এই ফায়ারবেস পণ্যটি macOS, Mac ক্যাটালিস্ট, watchOS লক্ষ্যে উপলব্ধ নয়।
    self.remoteConfig = [FIRRemoteConfig remoteConfig];
    // You can change the NO below to YES to permit more fetches when validating
    // your app, but you should change it back to NO or remove this statement before
    // distributing your app in production.
    FIRRemoteConfigSettings *remoteConfigSettings =
        [[FIRRemoteConfigSettings alloc] initWithDeveloperModeEnabled:NO];
    self.remoteConfig.configSettings = remoteConfigSettings;
    // Load in-app defaults from a plist file that sets perf_disable to false until
    // you update values in the Firebase console.
    [self.remoteConfig setDefaultsFromPlistFileName:@"RemoteConfigDefaults"];
    // Important! This needs to be applied before [FIRApp configure]
    if (!self.remoteConfig[@"perf_disable"].numberValue.boolValue) {
        // The following line disables all automatic (out-of-the-box) monitoring
        [FIRPerformance sharedInstance].instrumentationEnabled = NO;
        // The following line disables all custom monitoring
        [FIRPerformance sharedInstance].dataCollectionEnabled = NO;
    }
    else {
        [FIRPerformance sharedInstance].instrumentationEnabled = YES;
        [FIRPerformance sharedInstance].dataCollectionEnabled = YES;
    }
    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  4. ViewController.m , বা আপনার অ্যাপ দ্বারা ব্যবহৃত অন্য বাস্তবায়ন ফাইলে, Remote Config মান আনতে এবং সক্রিয় করতে নিম্নলিখিত কোডটি যোগ করুন:

    সুইফট

    দ্রষ্টব্য: এই ফায়ারবেস পণ্যটি macOS, Mac ক্যাটালিস্ট, watchOS লক্ষ্যে উপলব্ধ নয়।
    //RemoteConfig fetch and activation in your app, shortly after startup
    remoteConfig.fetch(withExpirationDuration: TimeInterval(30.0)) { (status, error) -> Void in
      if status == .success {
        print("Config fetched!")
        self.remoteConfig.activateFetched()
      } else {
        print("Config not fetched")
        print("Error \(error!.localizedDescription)")
      }
    }
    

    উদ্দেশ্য-C

    দ্রষ্টব্য: এই ফায়ারবেস পণ্যটি macOS, Mac ক্যাটালিস্ট, watchOS লক্ষ্যে উপলব্ধ নয়।
    //RemoteConfig fetch and activation in your app, shortly after startup
    [self.remoteConfig fetchWithExpirationDuration:30.0 completionHandler:^(FIRRemoteConfigFetchStatus status, NSError *error) {
      if (status == FIRRemoteConfigFetchStatusSuccess) {
        NSLog(@"Config fetched!");
        [self.remoteConfig activateFetched];
      } else {
        NSLog(@"Config not fetched");
        NSLog(@"Error %@", error.localizedDescription);
      }
    }];
    
  5. Firebase কনসোলে Performance Monitoring অক্ষম করতে, আপনার অ্যাপের প্রোজেক্টে একটি perf_disable প্যারামিটার তৈরি করুন, তারপর সেটির মান true এ সেট করুন।

    আপনি যদি perf_disable- এর মান false তে সেট করেন, Performance Monitoring সক্রিয় থাকে।

স্বয়ংক্রিয় বা কাস্টম ডেটা সংগ্রহ আলাদাভাবে অক্ষম করুন

আপনি উপরে দেখানো কোডে এবং Firebase কনসোলে কিছু পরিবর্তন করতে পারেন যাতে আপনি কাস্টম মনিটরিং থেকে আলাদাভাবে সমস্ত স্বয়ংক্রিয় (বক্সের বাইরে) মনিটরিং অক্ষম করতে পারেন।

  1. অ্যাপ্লিকেশনের launchOptions স্টেটমেন্টে নিম্নলিখিত কোড যোগ করুন application:didFinishLaunchingWithOptions: instance method (একই উদাহরণ পদ্ধতির জন্য উপরে যা দেখানো হয়েছে তার পরিবর্তে):

    সুইফট

    দ্রষ্টব্য: এই ফায়ারবেস পণ্যটি macOS, Mac ক্যাটালিস্ট, watchOS লক্ষ্যে উপলব্ধ নয়।
    remoteConfig = FIRRemoteConfig.remoteConfig()
    let remoteConfigSettings = FIRRemoteConfigSettings(developerModeEnabled: true)
    remoteConfig.configSettings = remoteConfigSettings!
    // Important! This needs to be applied before FirebaseApp.configure()
    if remoteConfig["perf_disable_auto"].boolValue {
        // The following line disables all automatic (out-of-the-box) monitoring
        Performance.sharedInstance().isInstrumentationEnabled = false
    }
    else {
        Performance.sharedInstance().isInstrumentationEnabled = true
    }
    if remoteConfig["perf_disable_manual"].boolValue {
        // The following line disables all custom monitoring
        Performance.sharedInstance().isDataCollectionEnabled = false
    }
    else {
        Performance.sharedInstance().isDataCollectionEnabled = true
    }
    // Use Firebase library to configure APIs
    FirebaseApp.configure()
    

    উদ্দেশ্য-C

    দ্রষ্টব্য: এই ফায়ারবেস পণ্যটি macOS, Mac ক্যাটালিস্ট, watchOS লক্ষ্যে উপলব্ধ নয়।
    self.remoteConfig = [FIRRemoteConfig remoteConfig];
    FIRRemoteConfigSettings *remoteConfigSettings =
        [[FIRRemoteConfigSettings alloc] initWithDeveloperModeEnabled:YES];
    self.remoteConfig.configSettings = remoteConfigSettings;
    // Important! This needs to be applied before [FirebaseApp configure]
    if (self.remoteConfig[@"perf_disable_auto"].numberValue.boolValue) {
        // The following line disables all automatic (out-of-the-box) monitoring
        [FIRPerformance sharedInstance].instrumentationEnabled = NO;
    }
    else {
        [FIRPerformance sharedInstance].instrumentationEnabled = YES;
    }
    if (self.remoteConfig[@"perf_disable_manual"].numberValue.boolValue) {
        // The following line disables all custom monitoring
        [FIRPerformance sharedInstance].dataCollectionEnabled = NO;
    }
    else {
        [FIRPerformance sharedInstance].dataCollectionEnabled = YES;
    }
    // Use Firebase library to configure APIs
    [FirebaseApp configure];
    
  2. Firebase কনসোলে নিম্নলিখিতটি সম্পূর্ণ করুন:

    • সমস্ত স্বয়ংক্রিয় (আউট-অফ-দ্য-বক্স) নিরীক্ষণ অক্ষম করতে, আপনার অ্যাপের প্রকল্পে একটি perf_disable_auto প্যারামিটার তৈরি করুন, তারপরে এর মান true সেট করুন।
    • সমস্ত কাস্টম মনিটরিং অক্ষম করতে, আপনার অ্যাপের প্রকল্পে একটি perf_disable_manual প্যারামিটার তৈরি করুন, তারপর তার মান true এ সেট করুন।