HTTP/S নেটওয়ার্ক অনুরোধ কর্মক্ষমতা ডেটা সম্পর্কে জানুন (যে কোনো অ্যাপ)


Performance Monitoring আপনার অ্যাপের পর্যবেক্ষণাধীন প্রসেসগুলো সম্পর্কে ডেটা সংগ্রহ করতে ট্রেস ব্যবহার করে। ট্রেস হলো একটি রিপোর্ট, যাতে আপনার অ্যাপের দুটি নির্দিষ্ট সময়ের মধ্যবর্তী সময়ে সংগৃহীত ডেটা থাকে।

সকল ধরণের অ্যাপের জন্য, Performance Monitoring আপনার অ্যাপ দ্বারা জারি করা প্রতিটি নেটওয়ার্ক অনুরোধের জন্য স্বয়ংক্রিয়ভাবে একটি ট্রেস সংগ্রহ করে, যাকে HTTP/S নেটওয়ার্ক অনুরোধ ট্রেস বলা হয়। এই ট্রেসগুলি আপনার অ্যাপ যখন কোনো সার্ভিস এন্ডপয়েন্টে অনুরোধ পাঠায় এবং যখন সেই এন্ডপয়েন্ট থেকে প্রতিক্রিয়া সম্পূর্ণ হয়, তার মধ্যবর্তী সময়ের জন্য মেট্রিক সংগ্রহ করে। আপনার অ্যাপ যে কোনো এন্ডপয়েন্টে অনুরোধ করলে, Performance Monitoring বেশ কিছু মেট্রিক ক্যাপচার করে:

  • প্রতিক্রিয়ার সময় — অনুরোধ করার মুহূর্ত থেকে শুরু করে সম্পূর্ণ প্রতিক্রিয়া পাওয়ার মুহূর্ত পর্যন্ত সময়।

  • রেসপন্স পেলোড সাইজ — অ্যাপ দ্বারা ডাউনলোড করা নেটওয়ার্ক পেলোডের বাইট সাইজ।

  • অনুরোধ পেলোড সাইজ — অ্যাপ দ্বারা আপলোড করা নেটওয়ার্ক পেলোডের বাইট সাইজ।

  • সফলতার হার — মোট প্রতিক্রিয়ার তুলনায় সফল প্রতিক্রিয়ার (প্রতিক্রিয়া কোড ১০০ - ৩৯৯ পরিসরের) শতাংশ।

আপনি পারফরম্যান্স ড্যাশবোর্ডের একেবারে নিচে থাকা ট্রেস টেবিলের ' নেটওয়ার্ক রিকোয়েস্ট ' সাবট্যাবে এই ট্রেসগুলোর ডেটা দেখতে পারেন (এই পৃষ্ঠার পরবর্তী অংশে কনসোল ব্যবহার সম্পর্কে আরও জানুন)।

Performance Monitoring স্বয়ংক্রিয়ভাবে সেইসব নেটওয়ার্ক অনুরোধের মেট্রিক সংগ্রহ করে, যেগুলো নিম্নলিখিত নেটওয়ার্কিং লাইব্রেরিগুলো ব্যবহার করে:

সুইফট

  • ইউআরএলসেশন
  • ইউআরএল সংযোগ

উদ্দেশ্য-সি

  • NSURLSession
  • NSURL সংযোগ

নেটওয়ার্ক অনুরোধ ডেটা একত্রীকরণ কাস্টমাইজ করুন

নেটওয়ার্ক অনুরোধের জন্য বিল্ট-ইন টুলিং এবং ডেটা অ্যাগ্রিগেশন ছাড়াও, Performance Monitoring নিম্নলিখিত অপশনগুলো সমর্থন করে:

  • ম্যানুয়ালি নেটওয়ার্ক রিকোয়েস্ট ট্রেস ইন্সট্রুমেন্ট করুন: ডিফল্ট মনিটরিং আপনার অ্যাপের বেশিরভাগ নেটওয়ার্ক রিকোয়েস্ট অন্তর্ভুক্ত করে। তবে, কিছু রিকোয়েস্ট রিপোর্ট নাও করা হতে পারে অথবা আপনি নেটওয়ার্ক রিকোয়েস্ট করার জন্য একটি ভিন্ন লাইব্রেরি ব্যবহার করতে পারেন। এই ক্ষেত্রে, আপনি Performance Monitoring এপিআই (Performance Monitoring API) ব্যবহার করে কাস্টম নেটওয়ার্ক রিকোয়েস্ট ট্রেস ম্যানুয়ালি ইন্সট্রুমেন্ট করতে পারেন।
  • কাস্টম ইউআরএল প্যাটার্নের অধীনে ডেটা একত্রিত করুন: যদি এমন কিছু নির্দিষ্ট ইউআরএল থাকে যা Firebase তার নিজস্ব স্বয়ংক্রিয় ইউআরএল প্যাটার্ন ম্যাচিংয়ের মাধ্যমে শনাক্ত করতে পারছে না, তাহলে আপনি সময়ের সাথে সাথে একটি নির্দিষ্ট সেট ইউআরএল নিরীক্ষণ করার জন্য কাস্টম ইউআরএল প্যাটার্ন তৈরি করতে পারেন।
  • সফলতার হার গণনা করার পদ্ধতি কাস্টমাইজ করুন: কখনও কখনও নির্দিষ্ট API এন্ডপয়েন্টগুলির জন্য একটি এরর কোড প্রত্যাশিত থাকে অথবা আপনার অ্যাপে তা আগে থেকেই হ্যান্ডেল করা থাকে। এই ক্ষেত্রে, আপনি সফলতার হার কীভাবে গণনা করা হবে তা কনফিগার করতে পারেন এবং আপনার অ্যাপের নেটওয়ার্ক কলগুলির সফলতার হার আরও নির্ভুলভাবে নিরীক্ষণ করতে পারেন।

URL প্যাটার্নের অধীনে ডেটা একত্রীকরণ

Firebase Performance Monitoring স্বয়ংক্রিয়ভাবে একই ধরনের নেটওয়ার্ক অনুরোধের ডেটা একত্রিত করে, যা আপনাকে আপনার নেটওয়ার্ক অনুরোধের পারফরম্যান্সের প্রবণতা বুঝতে সাহায্য করে।

প্রতিটি অনুরোধের জন্য, ফায়ারবেস যাচাই করে দেখে যে নেটওয়ার্ক অনুরোধের URL-টি কোনো URL প্যাটার্নের সাথে মেলে কি না। যদি অনুরোধের URL-টি কোনো URL প্যাটার্নের সাথে মিলে যায়, তাহলে ফায়ারবেস স্বয়ংক্রিয়ভাবে অনুরোধের ডেটা সেই URL প্যাটার্নের অধীনে একত্রিত করে। Firebase কনসোলের পারফরম্যান্স ড্যাশবোর্ডের নেটওয়ার্ক ট্যাবে URL প্যাটার্ন এবং তাদের একত্রিত ডেটা প্রদর্শন করে।

ইউআরএল প্যাটার্ন বলতে কী বোঝায়?

একটি ইউআরএল প্যাটার্নে একটি ডোমেইন এবং একটি প্যাটার্ন থাকে যা একটি ইউআরএল পাথের সাথে মিলতে পারে, যেমন: example.com/*/animals/**

  • URL প্যাটার্নগুলিতে নিম্নলিখিত পাথ সেগমেন্টগুলি থাকতে পারে:

    • সাধারণ টেক্সট — একটি হুবহু স্ট্রিংয়ের সাথে মেলে
    • * — একটিমাত্র পাথ সেগমেন্টের যেকোনো স্ট্রিং-এর সাথে মেলে
    • ** — যেকোনো পাথ সাফিক্সের সাথে মেলে
  • URL প্যাটার্নগুলো নিম্নলিখিত দুইয়ের যেকোনো একটি হতে পারে:

উদাহরণস্বরূপ: নিম্নলিখিত যেকোনো URL অনুরোধ example.com/*/animals/** এই URL প্যাটার্নটির সাথে মিলতে পারে।

  • example.com/singapore/animals
  • example.com/australia/animals/spiders
  • example.com/australia/animals/marsupials/koala.png

একটি URL প্যাটার্নের ডোমেইনের প্রথম অংশ হিসেবে * চিহ্নটিও থাকতে পারে, যেমন: *.example.com/*/fruits/**

ফায়ারবেস প্রতিটি অনুরোধকে শুধুমাত্র একটি ইউআরএল প্যাটার্নের সাথে সংযুক্ত করে। আপনি যদি কোনো কাস্টম ইউআরএল প্যাটার্ন কনফিগার করে থাকেন, তাহলে ফায়ারবেস প্রথমে অনুরোধের ইউআরএলগুলোকে সেই প্যাটার্নগুলোর সাথে মেলানোর চেষ্টা করে। যদি ফায়ারবেস কোনো মিলে যাওয়া কাস্টম ইউআরএল প্যাটার্ন খুঁজে না পায়, তাহলে এটি অনুরোধের ইউআরএলটিকে সবচেয়ে প্রতিনিধিত্বমূলক স্বয়ংক্রিয় ইউআরএল প্যাটার্নের সাথে মেলায়। পরবর্তী বিভাগগুলোতে স্বয়ংক্রিয় এবং কাস্টম ইউআরএল প্যাটার্ন সম্পর্কে আরও জানুন।

স্বয়ংক্রিয় URL প্যাটার্ন

আপনার কোনো কনফিগারেশন ছাড়াই, Performance Monitoring আপনার অ্যাপের রিকোয়েস্টগুলোকে স্বয়ংক্রিয় ইউআরএল প্যাটার্নের সাথে মিলিয়ে সেটির সাম্প্রতিক ব্যবহারের ধরণ তুলে ধরার চেষ্টা করে।

স্বয়ংক্রিয় ইউআরএল প্যাটার্ন ম্যাচিং কীভাবে কাজ করে?

ফায়ারবেস আপনার অ্যাপ থেকে পাঠানো অনুরোধগুলো থেকে প্রাপ্ত সবচেয়ে প্রতিনিধিত্বমূলক স্বয়ংক্রিয় ইউআরএল প্যাটার্নের সাথে প্রতিটি অনুরোধকে মেলায়। তবে মনে রাখবেন, ফায়ারবেস প্রথমে অনুরোধের ইউআরএলগুলোকে যেকোনো কনফিগার করা কাস্টম ইউআরএল প্যাটার্নের সাথে মেলানোর চেষ্টা করে।

আপনার অ্যাপের জন্য সবচেয়ে প্রতিনিধিত্বমূলক স্বয়ংক্রিয় ইউআরএল প্যাটার্নের সাথে অনুরোধগুলো মেলানোর জন্য ফায়ারবেস কীভাবে চেষ্টা করে, তার একটি সাধারণ উদাহরণ নিচে দেওয়া হলো।

  1. আপনার অ্যাপ নিম্নলিখিত URL-গুলিতে অনেক অনুরোধ পাঠায়:

    • example.com/germany/animals/bears
    • example.com/germany/animals/birds
    • example.com/germany/cars

    Firebase যখন example.com/germany/** আপনার অ্যাপের জন্য একটি সাধারণ রিকোয়েস্ট প্যাটার্ন হিসেবে শনাক্ত করে, তখন এটিকে আপনার প্রোজেক্টে স্বয়ংক্রিয়ভাবে একটি URL প্যাটার্ন হিসেবে যুক্ত করে দেয়।

    এই ইউআরএল প্যাটার্নের সাথে মিলে যাওয়া যেকোনো নতুন অনুরোধের ক্ষেত্রে, ফায়ারবেস অনুরোধগুলোর ডেটা example.com/germany/** স্বয়ংক্রিয় ইউআরএল প্যাটার্নের অধীনে একত্রিত করে।

  2. এক সপ্তাহ পর, আপনার অ্যাপের অধিকাংশ অনুরোধ example.com/germany/animals/bears এবং example.com/germany/animals/birds - এই ইউআরএলগুলোতে যাচ্ছে। তাই, Firebase example.com/germany/animals/** -এর একটি অধিক প্রতিনিধিত্বমূলক ইউআরএল প্যাটার্ন তৈরি করে।

    এই নতুন ইউআরএল প্যাটার্নের সাথে মিলে যাওয়া যেকোনো নতুন অনুরোধের ক্ষেত্রে, ফায়ারবেস শুধুমাত্র নতুন ইউআরএল প্যাটার্নের অধীনেই অনুরোধগুলোর ডেটা একত্রিত করে। ফায়ারবেস example.com/germany/cars এ করা অনুরোধগুলোর ডেটা example.com/germany/** অধীনে একত্রিত করা অব্যাহত রাখে।

  3. তবে, পরবর্তী কয়েক সপ্তাহে, example.com/germany/animals/bears এবং example.com/germany/animals/birds এ আপনার অ্যাপের অনুরোধগুলো উল্লেখযোগ্যভাবে কমে যায়। Firebase নির্ধারণ করে যে example.com/germany/animals/** আপনার অ্যাপের সাম্প্রতিক ব্যবহারের আচরণের প্রতিনিধিত্ব করে না, তাই Firebase এই দুটি অনুরোধকে example.com/germany/** এর সাথে পুনরায় মেলানো শুরু করে।

    Firebase example.com/germany/animals/** এর অধীনে আর কোনো অনুরোধের ডেটা একত্রিত করে না, কারণ এটি এখন আর সবচেয়ে প্রতিনিধিত্বমূলক স্বয়ংক্রিয় URL প্যাটার্ন নয়।

যেহেতু স্বয়ংক্রিয় ইউআরএল প্যাটার্ন ম্যাচিং একটি পরিবর্তনশীল প্রক্রিয়া, তাই নিম্নলিখিত বিষয়গুলো সম্পর্কে সচেতন থাকুন:

  • পূর্ববর্তী অনুরোধগুলো থেকে প্রাপ্ত মিল এবং একত্রিত ডেটা নতুন URL প্যাটার্ন দ্বারা প্রভাবিত হয় না। Firebase পূর্ববর্তী অনুরোধের ডেটা পুনরায় একত্রিত করে না।

  • শুধুমাত্র ভবিষ্যতের অনুরোধগুলোই নতুন ইউআরএল প্যাটার্ন দ্বারা প্রভাবিত হয়। ফায়ারবেস প্রতিটি নতুন অনুরোধকে সবচেয়ে প্রতিনিধিত্বমূলক স্বয়ংক্রিয় ইউআরএল প্যাটার্নের সাথে সংযুক্ত করে। তবে মনে রাখবেন, ফায়ারবেস প্রথমে অনুরোধের ইউআরএলগুলোকে যেকোনো কনফিগার করা কাস্টম ইউআরএল প্যাটার্নের সাথে মেলানোর চেষ্টা করে।

স্বয়ংক্রিয় URL প্যাটার্ন এবং তাদের ডেটা দেখুন

Firebase কনসোলের পারফরম্যান্স ড্যাশবোর্ডের একেবারে নিচে থাকা ট্রেসেস টেবিলের নেটওয়ার্ক রিকোয়েস্টস সাবট্যাবে ফায়ারবেস সমস্ত ইউআরএল প্যাটার্ন এবং সেগুলোর সম্মিলিত ডেটা প্রদর্শন করে।

আপনি ‘Uncategorized’ লেবেলযুক্ত ইউআরএল প্যাটার্ন দেখতে পারেন। এগুলো হলো সাধারণ বা ‘বিস্তৃত’ স্বয়ংক্রিয় ইউআরএল প্যাটার্ন, যার অধীনে Firebase সেইসব রিকোয়েস্টের ডেটা একত্রিত করতে পারে যেগুলো কোনো আরও নির্দিষ্ট ইউআরএল প্যাটার্নের সাথে মেলে না।

যখন কোনো ইউআরএল প্যাটার্নের অধীনে সংগৃহীত ডেটার সংরক্ষণের সময়সীমা শেষ হয়ে যায়, তখন ফায়ারবেস সেই ইউআরএল প্যাটার্ন থেকে ডেটা মুছে ফেলে। যদি কোনো স্বয়ংক্রিয় ইউআরএল প্যাটার্নের অধীনে সংগৃহীত সমস্ত ডেটার মেয়াদ শেষ হয়ে যায়, তাহলে Firebase কনসোল থেকে সেই ইউআরএল প্যাটার্নটি মুছে ফেলে।

কাস্টম ইউআরএল প্যাটার্ন

আপনি কাস্টম ইউআরএল প্যাটার্ন তৈরি করতে পারেন এমন নির্দিষ্ট ইউআরএল প্যাটার্ন নিরীক্ষণ করার জন্য, যা ফায়ারবেস তার নিজস্ব স্বয়ংক্রিয় ইউআরএল প্যাটার্ন ম্যাচিংয়ের মাধ্যমে শনাক্ত করতে পারে না। উদাহরণস্বরূপ, আপনি একটি নির্দিষ্ট ইউআরএল-এর সমস্যা সমাধান করতে বা সময়ের সাথে সাথে একটি নির্দিষ্ট সেট ইউআরএল নিরীক্ষণ করতে একটি কাস্টম ইউআরএল প্যাটার্ন ব্যবহার করতে পারেন।

আরও জানতে কাস্টম ইউআরএল প্যাটার্ন তৈরি করুন (Create custom URL patterns) দেখুন।

পারফরম্যান্স ডেটা ট্র্যাক করুন, দেখুন এবং ফিল্টার করুন

রিয়েল-টাইম পারফরম্যান্স ডেটা দেখতে, নিশ্চিত করুন যে আপনার অ্যাপটি রিয়েল-টাইম ডেটা প্রসেসিংয়ের সাথে সামঞ্জস্যপূর্ণ একটি পারফরম্যান্স মনিটরিং SDK সংস্করণ ব্যবহার করছে। রিয়েল-টাইম পারফরম্যান্স ডেটা সম্পর্কে আরও জানুন

আপনার ড্যাশবোর্ডে নির্দিষ্ট মেট্রিকগুলি ট্র্যাক করুন

আপনার মূল মেট্রিকগুলোর প্রবণতা কেমন তা জানতে, সেগুলোকে পারফরম্যান্স ড্যাশবোর্ডের শীর্ষে থাকা মেট্রিক্স বোর্ডে যোগ করুন। সপ্তাহ-ভিত্তিক পরিবর্তন দেখে আপনি দ্রুত অবনতি শনাক্ত করতে পারবেন অথবা আপনার কোডের সাম্প্রতিক পরিবর্তনগুলো পারফরম্যান্স উন্নত করছে কিনা তা যাচাই করতে পারবেন।

মেট্রিক্স বোর্ডের একটি ছবি <span class= ফায়ারবেস পারফরম্যান্স মনিটরিং ড্যাশবোর্ড

আপনার মেট্রিক্স বোর্ডে একটি মেট্রিক যোগ করতে, এই ধাপগুলো অনুসরণ করুন:

  1. Firebase কনসোলে পারফরম্যান্স ড্যাশবোর্ডে যান।
  2. একটি খালি মেট্রিক কার্ডে ক্লিক করুন, তারপর আপনার বোর্ডে যোগ করার জন্য একটি বিদ্যমান মেট্রিক নির্বাচন করুন।
  3. আরও বিকল্পের জন্য, যেমন কোনো মেট্রিক প্রতিস্থাপন বা অপসারণ করতে, ডেটাযুক্ত মেট্রিক কার্ডে ক্লিক করুন।

মেট্রিক্স বোর্ডটি সময়ের সাথে সাথে সংগৃহীত মেট্রিক ডেটা গ্রাফিক্যাল আকারে এবং সংখ্যাসূচক শতাংশ পরিবর্তন হিসেবে প্রদর্শন করে।

ড্যাশবোর্ড ব্যবহার সম্পর্কে আরও জানুন।

চিহ্ন এবং তাদের ডেটা দেখুন

আপনার ট্রেসগুলো দেখতে, Firebase কনসোলের পারফরম্যান্স ড্যাশবোর্ডে যান, ট্রেস টেবিল পর্যন্ত স্ক্রল করুন, তারপর উপযুক্ত সাবট্যাবে ক্লিক করুন। টেবিলটি প্রতিটি ট্রেসের জন্য কিছু শীর্ষ মেট্রিক প্রদর্শন করে, এবং আপনি এমনকি একটি নির্দিষ্ট মেট্রিকের শতাংশ পরিবর্তন অনুসারে তালিকাটি সাজাতেও পারেন।

Performance Monitoring Firebase কনসোলে একটি ট্রাবলশুটিং পেজ প্রদান করে, যা মেট্রিকের পরিবর্তনগুলো তুলে ধরে। এর ফলে আপনার অ্যাপ এবং ব্যবহারকারীদের উপর পারফরম্যান্স সংক্রান্ত সমস্যার প্রভাব দ্রুত সমাধান করা ও কমানো সহজ হয়। সম্ভাব্য পারফরম্যান্স সমস্যা সম্পর্কে জানতে পারলে আপনি এই ট্রাবলশুটিং পেজটি ব্যবহার করতে পারেন, যেমন— নিম্নলিখিত পরিস্থিতিগুলোতে:

  • আপনি ড্যাশবোর্ডে প্রাসঙ্গিক মেট্রিকগুলো নির্বাচন করেন এবং একটি বড় পার্থক্য লক্ষ্য করেন।
  • ট্রেসেস টেবিলে আপনি সবচেয়ে বড় ডেল্টাগুলোকে উপরে দেখানোর জন্য সর্ট করেন, এবং আপনি একটি উল্লেখযোগ্য শতাংশ পরিবর্তন দেখতে পান।
  • আপনি একটি পারফরম্যান্স সমস্যা সম্পর্কে অবহিত করে একটি ইমেল সতর্কতা পেয়েছেন।

আপনি নিম্নলিখিত উপায়ে সমস্যা সমাধান পৃষ্ঠায় প্রবেশ করতে পারেন:

  • মেট্রিক ড্যাশবোর্ডে, 'মেট্রিকের বিবরণ দেখুন' বোতামটিতে ক্লিক করুন।
  • যেকোনো মেট্রিক কার্ডে, নির্বাচন করুন => বিস্তারিত দেখুন । সমস্যা সমাধান পৃষ্ঠাটি আপনার নির্বাচিত মেট্রিক সম্পর্কে তথ্য প্রদর্শন করে।
  • ট্রেস টেবিলে, একটি ট্রেসের নামে অথবা সেই ট্রেসের সাথে যুক্ত সারিতে থাকা যেকোনো মেট্রিক মানে ক্লিক করুন।
  • ইমেল সতর্কবার্তায়, ‘এখনই তদন্ত করুন’ এ ক্লিক করুন।

ট্রেস টেবিলে কোনো ট্রেসের নামে ক্লিক করলে, আপনি আপনার আগ্রহের মেট্রিকগুলো আরও বিস্তারিতভাবে দেখতে পারবেন। ক্লিক করুন অ্যাট্রিবিউট অনুযায়ী ডেটা ফিল্টার করার জন্য ফিল্টার বাটন, উদাহরণস্বরূপ:

একটি ছবি <span class= অ্যাট্রিবিউট দ্বারা ফিল্টার করা ফায়ারবেস পারফরম্যান্স মনিটরিং ডেটা
  • পূর্ববর্তী রিলিজ বা আপনার সর্বশেষ রিলিজের ডেটা দেখতে অ্যাপ সংস্করণ অনুযায়ী ফিল্টার করুন।
  • পুরোনো ডিভাইসগুলো আপনার অ্যাপটি কীভাবে পরিচালনা করে তা জানতে ডিভাইস অনুযায়ী ফিল্টার করুন।
  • আপনার ডেটাবেসের অবস্থান কোনো নির্দিষ্ট অঞ্চলকে প্রভাবিত করছে না তা নিশ্চিত করতে দেশ অনুযায়ী ফিল্টার করুন।

আপনার ট্রেসগুলির ডেটা দেখার বিষয়ে আরও জানুন।

পরবর্তী পদক্ষেপ

  • ব্যবহারকারীর সেশনের বিস্তারিত রিপোর্ট দেখুন, যেখানে আপনি একই সেশনে সংগৃহীত অন্যান্য ট্রেসের টাইমলাইন প্রেক্ষাপটে একটি নির্দিষ্ট ট্রেস দেখতে পারবেন।