这个项目能做什么
ActiveAnalytics是一个可直接嵌入Ruby on Rails应用的Rails引擎,用于提供简单的第一方流量分析工具。其设计目标为隐私保护:它不收集Cookie、不发送JavaScript、不依赖任何第三方服务,因此也不会被广告拦截器或隐私扩展程序拦截。
仪表盘报告内容
- 来源:将流量带入应用的页面和域名。
- 页面浏览量:哪些页面被访问最多。
- 上下页:与某一页面相关联的入口页和出口页。
- 浏览器统计:哪些浏览器和版本访问了该站点。
README强调,该工具不会泄露任何关于个别访客的信息。
安装方法
在Gemfile中添加gem,运行bundle,安装并执行引擎迁移,然后在config/routes.rb中将引擎挂载到指定端点:
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配置自定义基础控制器。
流量采集
文档中记录了两种方式。同步方式在ApplicationController的after_action回调中调用ActiveAnalytics.record_request(request),设置最简单,但每次请求都会写入数据库。异步方式调用ActiveAnalytics.queue_request(request),将数据推入Redis,因此每次请求不会产生数据库写操作;队列中的数据随后通过从cron任务或后台作业调用ActiveAnalytics.flush_queue来持久化。README建议定期刷新,并在每天23:59进行最后一次刷新,以避免每日数据被计入第二天。Redis可通过ActiveAnalytics.redis_url或自定义的ActiveAnalytics.redis连接进行配置。
示例推荐仅记录HTML响应、过滤到规范域名,并使用bot检测gem跳过爬虫。敏感URL(如密码重置页面)可通过skip_after_action排除。
认证
由于各应用的认证方案各不相同,引擎不做假设。README展示了通过monkey patch在ActiveAnalytics::ApplicationController上添加before_action,对非管理员抛出路由错误,并从config.after_initialize中加载以避免开发环境中的重复加载。如果使用Devise,可以在routes.rb中使用authenticate块包裹挂载点。
许可和出处
ActiveAnalytics以MIT许可证开源发布,由Base Secrète开发,该公司还开发了RoRvsWild Ruby on Rails监控工具。
评论
0 评分人数达到10人后显示
登录后参与讨论。