প্রকল্প সম্পর্কে

Counterscale হলো একটি ওপেন-সোর্স ওয়েব অ্যানালিটিক্স ট্র্যাকার এবং ড্যাশবোর্ড যা ব্যবহারকারীরা Cloudflare-এ সেলফ-হোস্ট করতে পারেন। এটি MIT লাইসেন্সের অধীনে প্রকাশিত এবং এটি এমনভাবে ডিজাইন করা হয়েছে যাতে ডেপ্লয় এবং রক্ষণাবেক্ষণ সহজ হয়; এর README-তে উল্লেখ করা হয়েছে যে উচ্চ ট্রাফিক লেভেলেও এটি পরিচালনা করতে খরচ প্রায় শূন্য হবে। এটি মূলত Cloudflare Workers এবং Workers Analytics Engine দ্বারা পরিচালিত। ২০২৫ সালের ফেব্রুয়ারি পর্যন্ত, Workers Analytics Engine-এর সর্বোচ্চ রিটেনশন ৯০ দিন, তাই ড্যাশবোর্ডটি শুধুমাত্র গত ৯০ দিনের রেকর্ড করা ডেটা দেখাতে পারে। Counterscale Apache Arrow ফাইল ব্যবহার করে একটি R2 bucket-এ ডেটার দীর্ঘমেয়াদী স্টোরেজ প্রদান করে। এই দীর্ঘমেয়াদী স্টোরেজ ডিফল্টভাবে সক্রিয় থাকে এবং CLI-এর মাধ্যমে এটি নিষ্ক্রিয় করা যেতে পারে। ইনস্টলেশনের জন্য macOS বা Linux, Node v20 বা তার উপরের সংস্করণ এবং একটি সক্রিয় Cloudflare অ্যাকাউন্ট প্রয়োজন। ডেপ্লয়মেন্টের আগে, ব্যবহারকারীদের একটি Cloudflare Workers সাবডোমেন, অ্যাকাউন্টে Analytics Engine beta সক্রিয় করা এবং অন্তত Account.Account Analytics পারমিশনসহ একটি Cloudflare API টোকেন প্রয়োজন। ডেপ্লয়মেন্ট শুরু হয় npx wrangler login এবং তারপরে npx @counterscale/cli@latest install কমান্ডের মাধ্যমে। ইনস্টলারটি API টোকেনের জন্য অনুরোধ করে এবং ড্যাশবোর্ডটি পাসওয়ার্ড দিয়ে সুরক্ষিত করতে হবে কি না তা জিজ্ঞাসা করে। পাবলিক ডেপ্লয়মেন্টের জন্য 'হ্যাঁ' নির্বাচন করার পরামর্শ দেওয়া হয়; 'না' নির্বাচন করলে ড্যাশবোর্ডটি সবার জন্য উন্মুক্ত থাকে। ইনস্টলেশনের পর, সার্ভার অ্যাপ্লিকেশনটি একটি workers.dev সাবডোমেনে ডেপ্লয় করা হয়। ওয়েবসাইটের ট্রাফিক রেকর্ড করার জন্য Counterscale বেশ কয়েকটি ইন্টিগ্রেশন পদ্ধতি অফার করে। স্ক্রিপ্ট লোডার ডেপ্লয় করা URL-এ tracker.js উপলব্ধ করে। ব্যবহারকারীরা counterscale-script আইডি, একটি data-site-id অ্যাট্রিবিউট এবং tracker.js সোর্সসহ একটি স্ক্রিপ্ট ট্যাগ যোগ করতে পারেন। ট্র্যাকারটি একটি npm প্যাকেজ @counterscale/tracker হিসেবেও প্রকাশিত হয়েছে। এটি একটি সাইট আইডি এবং রিপোর্টার URL দিয়ে ইনিশিয়ালাইজ করা যেতে পারে। ক্লায়েন্ট মডিউলটি init, isInitialized, getInitializedClient, trackPageview এবং cleanup-এর মতো মেথড প্রদান করে। একটি আলাদা সার্ভার মডিউল, @counterscale/tracker/server, ব্যাকএন্ড অ্যানালিটিক্স ট্র্যাকিং সমর্থন করে। এটি XMLHttpRequest-এর পরিবর্তে fetch API ব্যবহার করে, এতে DOM-নির্ভর কোনো ফিচার নেই, এর জন্য স্পষ্ট URL এবং হোস্টনেম প্যারামিটার প্রয়োজন এবং এটি 'fire-and-forget' পদ্ধতিতে কাজ করে যাতে ট্র্যাকিং এরর কোনো এক্সেপশন থ্রো না করে। Counterscale-এ কিছু অ্যাডভান্সড অপশন রয়েছে। autoTrackPageviews-কে false সেট করে অটোমেটিক পেজভিউ ট্র্যাকিং নিষ্ক্রিয় করা যেতে পারে, যার পরে ম্যানুয়ালি trackPageview কল করা যায়। ডেপ্লয়মেন্ট URL-টিকে একটি কাস্টম ডোমেনের পেছনে রাখা সম্ভব। CLI ইনস্টলেশন, অথেন্টিকেশন এবং স্টোরেজ ম্যানেজমেন্টের জন্য কমান্ড প্রদান করে। install কমান্ডটি ওয়ার্কারের নাম এবং অ্যানালিটিক্স ডেটাসেট কাস্টমাইজ করার জন্য অ্যাডভান্সড মোড এবং ভার্বোজ লগিং সমর্থন করে। অথেন্টিকেশন সাব-কমান্ডগুলোর মধ্যে রয়েছে enable, disable এবং roll। স্টোরেজ সাব-কমান্ডগুলোর মধ্যে রয়েছে enable এবং disable। আপগ্রেড করার অর্থ সাধারণত CLI ইনস্টলারটি পুনরায় চালানো; মেজর ভার্সনগুলোর ক্ষেত্রে রিলিজ নোটে বর্ণিত অতিরিক্ত ধাপ থাকতে পারে। লোকাল ডেভেলপমেন্টের জন্য Counterscale-এর মাত্র একটি ডেটাবেস রয়েছে: Cloudflare Analytics Engine ডেটাসেট, যা Cloudflare-এর API ব্যবহার করে HTTP-এর মাধ্যমে যোগাযোগ করে। কোনো লোকাল টেস্ট ডেটাবেস নেই, তাই লোকাল রাইটগুলো no-op হিসেবে গণ্য হয় এবং রিডগুলো প্রোডাকশন Analytics Engine ডেটাসেট থেকে আসে। অন্যান্য অ্যানালিটিক্স টুলের মতো, Cloudflare Analytics Engine স্কেলে উচ্চ-ভলিউম ইনজেশন এবং কুয়েরি সাশ্রয়ী করতে স্যাম্পলিং ব্যবহার করে।