Cloudflare এর হাতেখড়ি (পর্ব ১৩) – Analytics ও Monitoring

Cloudflare Analytics ও Monitoring

এতদিন আমরা সাইট বানানো, দ্রুত করা, আর সুরক্ষিত রাখা শিখেছি। কিন্তু এসব সত্যিই কাজ করছে কিনা তা বোঝার একটাই উপায় — দেখা। এই পর্বে শিখব Cloudflare-এর বিল্ট-ইন Analytics, Workers-এর লগ কীভাবে পড়তে হয়, আর কোন মেট্রিকগুলো আসলে গুরুত্বপূর্ণ।

Web Analytics — কুকি-বিহীন, প্রাইভেসি-ফ্রেন্ডলি

Cloudflare-এর Web Analytics Google Analytics-এর মতোই ভিজিটর ট্র্যাক করে, কিন্তু কোনো কুকি বা ক্লায়েন্ট-সাইড স্টোরেজ ছাড়াই — তাই ফ্রি, প্রাইভেসি-ফ্রেন্ডলি, আর কোনো কুকি কনসেন্ট ব্যানার লাগে না।

  1. Cloudflare Dashboard-এ Analytics & Logs → Web Analytics-এ যান
  2. Add a site চাপুন
  3. একটা ছোট JS স্নিপেট পাওয়া যাবে
  4. যদি সাইট আগে থেকেই Cloudflare-এ থাকে (Pages বা DNS দিয়ে), Cloudflare স্বয়ংক্রিয়ভাবে ইনজেক্ট করে দিতে পারে — কোনো কোড বসাতেই লাগে না
<!-- ম্যানুয়ালি বসাতে হলে, HTML-এর </body>-এর ঠিক আগে -->
<script defer src="https://static.cloudflareinsights.com/beacon.min.js"
  data-cf-beacon='{"token": "আপনার-টোকেন-এখানে"}'></script>

Web Analytics-এ কী দেখা যায়

  • Page views ও Visits — কতজন এলো, কোন পেজ সবচেয়ে বেশি দেখা হলো
  • Core Web Vitals — পেজ কতটা দ্রুত লোড হচ্ছে, ব্যবহারকারীর অভিজ্ঞতা কেমন (লোড টাইম, ইন্টারঅ্যাকটিভিটি)
  • Referrers — ভিজিটর কোথা থেকে এলো (Google, সরাসরি, সোশ্যাল মিডিয়া)
  • Countries ও Devices — কোন দেশ থেকে, কোন ডিভাইস থেকে ভিজিট হচ্ছে

Workers Analytics — API-র নিজস্ব পরিসংখ্যান

প্রতিটা Worker-এর নিজস্ব একটা Analytics ট্যাব আছে — Workers & Pages → নিজের Worker → Metrics। এখানে দেখা যায় —

  • Requests — মোট কতগুলো রিকোয়েস্ট এসেছে
  • Errors — কতগুলো রিকোয়েস্ট এরর দিয়েছে (৫xx স্ট্যাটাস)
  • CPU time — প্রতিটা রিকোয়েস্টে কতটা প্রসেসিং সময় লেগেছে (Cloudflare-এর ফ্রি কোটা এখানেই মাপা হয়)

Real-time Logs — লাইভ দেখা

ডিবাগিং-এর সবচেয়ে কাজের টুল — wrangler tail দিয়ে লাইভ Worker-এর console.log আউটপুট আর রিকোয়েস্ট টার্মিনালে সরাসরি দেখা যায়, ঠিক লোকাল ডেভেলপমেন্টের মতোই।

wrangler tail

# এখন থেকে লাইভ প্রোডাকশন Worker-এ যত রিকোয়েস্ট আসবে,
# সব এখানে রিয়েল-টাইমে দেখা যাবে

Worker কোডে console.log রাখলে সেটাও এখানে দেখা যায় — Firebase এর হাতেখড়ি পর্ব ১০-এর console.error("Firebase error code:", error.code)-এর মতোই প্যাটার্ন, শুধু এখানে লাইভ প্রোডাকশনে।

export default {
  async fetch(request, env, ctx) {
    console.log("রিকোয়েস্ট এলো:", request.url);

    try {
      const res = await fetch("https://my-first-app-default-rtdb.firebasedatabase.app/books.json");
      const books = await res.json();
      console.log("বই পাওয়া গেলো:", Object.keys(books || {}).length);
      return new Response(JSON.stringify(books));
    } catch (error) {
      console.error("এরর হয়েছে:", error.message);
      return new Response("সমস্যা হয়েছে", { status: 500 });
    }
  },
};

কোন মেট্রিক গুরুত্বপূর্ণ, কেন

মেট্রিক কী বোঝায় কেন গুরুত্বপূর্ণ
Error rate মোট রিকোয়েস্টের কত% এরর হঠাৎ বেড়ে গেলে কোনো ডিপ্লয় বা আপস্ট্রিম সমস্যা বোঝায়
CPU time প্রতি রিকোয়েস্টে প্রসেসিং সময় ফ্রি কোটার সীমা বুঝতে, অদক্ষ কোড চিহ্নিত করতে
Cache hit ratio কত% রিকোয়েস্ট ক্যাশ থেকে সার্ভ হলো পর্ব ১১-এর ক্যাশিং কৌশল আসলে কাজ করছে কিনা যাচাই
Core Web Vitals ইউজারের বাস্তব লোড অভিজ্ঞতা SEO ও ইউজার ধরে রাখার সাথে সরাসরি সম্পর্কিত

Alerting — সমস্যা হলে জানানো

প্রতিদিন Dashboard চেক করার বদলে, নির্দিষ্ট পরিস্থিতিতে ইমেইল/নোটিফিকেশন সেট করা যায়।

  1. Notifications-এ যান (Dashboard-এর একদম ওপরে ঘণ্টা আইকনে)
  2. Add চেপে একটা alert টাইপ বেছে নিন — যেমন Workers-এর error rate একটা নির্দিষ্ট সীমা পার হলে
  3. ইমেইল বা Webhook দিয়ে নোটিফিকেশন পাঠানোর মাধ্যম ঠিক করুন

Firebase এর হাতেখড়ি পর্ব ১২-এর Budget alert-এর মতোই ধারণা — সমস্যা নিজে থেকে খুঁজে বের করার বদলে, সমস্যা হলে সিস্টেমই জানিয়ে দেবে।

ইন্টারেক্টিভ — লাইভ Log স্ট্রিম সিমুলেশন

নিচে দেখো wrangler tail-এ লাইভ রিকোয়েস্ট আসলে কেমন দেখতে হয় — "রিকোয়েস্ট সিমুলেট করো" চেপে দেখো।

ভালো অভ্যাস

  • প্রোডাকশনে অতিরিক্ত console.log রাখবেন না — CPU time বাড়ায়, শুধু গুরুত্বপূর্ণ ইভেন্ট (এরর, বড় সিদ্ধান্ত) লগ করুন
  • Error rate-এ Alert সেট করুন — সমস্যা নিজে খুঁজে বের করার চেয়ে সিস্টেম নিজেই জানিয়ে দেওয়া নির্ভরযোগ্য
  • নিয়মিত Analytics দেখার অভ্যাস করুন — সপ্তাহে একবার হলেও, যাতে ধীরে ধীরে খারাপ হওয়া কোনো ট্রেন্ড নজরে আসে

নিজে চেষ্টা করো

Exercise:

  1. নিজের Pages সাইটে Web Analytics চালু করো, কিছুক্ষণ পর ডেটা আসা শুরু করলে দেখো।
  2. wrangler tail চালিয়ে নিজের Worker-এ একটা রিকোয়েস্ট পাঠাও, লাইভ লগ দেখো।
  3. Worker কোডে কিছু console.log যোগ করো, দেখো tail-এ সেগুলো কীভাবে দেখা যায়।
  4. একটা error-rate alert সেট করার চেষ্টা করো, বুঝে নাও কোন কন্ডিশনে এটা ট্রিগার হবে।

পরের পর্বে যা থাকছে

সিরিজের শেষ পর্বে আমরা সব একসাথে জুড়ে একটা পূর্ণাঙ্গ প্রজেক্ট বানাব — Pages, Workers, R2, Firebase একসাথে ব্যবহার করে একটা মিনি অ্যাপ, শুরু থেকে শেষ পর্যন্ত ডেপ্লয় করে।

একটি মন্তব্য পোস্ট করুন

নবীনতর পূর্বতন

যোগাযোগ ফর্ম