প্রকল্প সম্পর্কে
ActiveAnalytics একটি Rails engine যা সরাসরি Ruby on Rails অ্যাপ্লিকেশনে mount করা যায় এবং সাধারণ প্রথম-পক্ষের ট্রাফিক অ্যানালিটিক্স প্রদান করে। এর নকশার লক্ষ্য হলো গোপনীয়তা: এটি কোনো কুকিজ সংগ্রহ করে না, কোনো জাভাস্ক্রিপ্ট পাঠায় না, কোনো তৃতীয়-পক্ষের সেবার ও নির্ভরশীল নয়।
ড্যাশবোর্ডে যেসব তথ্য দেখা যায়
- সোর্স: যে পেজ ও ডোমেইন থেকে অ্যাপ্লিকেশনে ট্রাফিক আসে।
- পেজ ভিউ: কোন পেজগুলো সবচেয়ে বেশি দেখা হয়।
- নেক্সট/প্রিভিয়াস পেজ: নির্দিষ্ট পেজের সাথে সংশ্লিষ্ট এন্ট্রি ও এক্সিট পেজ।
- ব্রাউজার পরিসংখ্যান: কোন ব্রাউজার ও সংস্করণ ব্যবহারকারীরা সাইটে ভিজিট করে।
README-তে জোর দেওয়া হয়েছে যে এই টুল কোনো ব্যক্তিগত ভিজিটর সম্পর্কে তথ্য প্রকাশ করে না।
ইনস্টলেশন
Gemfile-তে gem যোগ করুন, bundle চালান, ইনস্টল ও মাইগ্রেশন রান করুন, তারপর config/routes.rb-তে mounts করুন:
gem 'active_analytics'
bundle
rails active_analytics:install:migrations
rails db:migrate
# config/routes.rb
mount ActiveAnalytics::Engine, at: "analytics"
ডিফল্টভাবে ড্যাশবোর্ড ActionController::Base এক্সটেন্ড করে। একটি কাস্টম বেস কন্ট্রোলার ইনিশিয়ালাইজারে ActiveAnalytics.base_controller_class ব্যবহার করে কনফিগার করা যেতে পারে।
ট্রাফিক সংগ্রহ
দুটি পদ্ধতি আনুষ্ঠানিকভাবে বর্ণিত আছে। সিঙ্ক্রোনাস অপশন ActiveAnalytics.record_request(request) কল করে, সাধারণত ApplicationController-এ after_action callback থেকে; সেটআপে সবচেয়ে সহজ তবে প্রতিটি অনুরোধে ডাটাবেসে লেখে। অ্যাসিঙ্ক্রোনাস অপশন ActiveAnalytics.queue_request(request) কল করে, ডাটা Redis-এ ঠেসে রাখে তাই প্রতিটি অনুরোধে ডাটাবেস লেখা হয় না; queued ডাটা পরে ActiveAnalytics.flush_queue কল করে স্থায়ী করা হয় cron টাস্ক বা ব্যাকগ্রাউন্ড জব থেকে। README নিয়মিত flush করার পরামর্শ দেয় এবং দিনের শেষে 23:59-তে শেষ flush করতে বলে যাতে দৈনিক সংখ্যা পরের দিনে স্থানান্তরিত না হয়। Redis ActiveAnalytics.redis_url অথবা একটি কাস্টম ActiveAnalytics.redis সংযোগ দিয়ে কনফিগার করা যেতে পারে।
উদাহরণগুলো শুধুমাত্র HTML রেসপন্স রেকর্ড করতে, ক্যানোনিক্যাল ডোমেইনে ফিল্টার করতে, এবং bot-detection gem ব্যবহার করে crawler ছাড়তে বলে। পাসওয়ার্ড-রিসেট পেজের মতো সংবেদনশীল URL-গুলো skip_after_action দিয়ে বাদ দেওয়া যেতে পারে।
অথেন্টিকেশন
প্রতিটি অ্যাপ্লিকেশনের অথেন্টিকেশন ভিন্ন হওয়ায় engine কোনো স্কিম ধরে নেয় না। README ActiveAnalytics::ApplicationController-কে monkey patch করে before_action দেখায় যা非-admin-এর জন্য routing error ফেলে, যা config.after_initialize থেকে required হয় যাতে ডেভেলপমেন্টে রিলোড না হয়। Devise ব্যবহার করলে mount-কে routes.rb-তে authenticate ব্লক দিয়ে ঘেরা যায়।
লাইসেন্স ও উৎপত্তি
ActiveAnalytics MIT License অধীনে ওপেন সোর্স হিসেবে প্রকাশিত এবং Base Secrète তৈরি করেছে, যা RoRvsWild Rails মনিটরিং টুলও উন্নয়ন করে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.