这个项目能做什么
Cairn 是一个 Composer 包,可直接在 Laravel 应用程序中添加 Web 分析功能。安装过程仅需执行 composer require 和 php artisan migrate,随后即可在 /cairn 访问仪表盘。由于跟踪在应用程序内部运行而非通过浏览器标签,因此它可以报告路由名称、Eloquent 模型和已认证用户。
隐私模型:访问者通过加盐哈希进行识别,该哈希每 24 小时由新的随机字节重新生成,且之前的盐值会被销毁。README 明确了其后果:无法统计回访者,无法进行跨日旅程和多触点归因,也不存在跨设备跟踪。作为交换,默认配置不在访问者设备上存储任何内容,不在数据库、日志或备份中保留 IP 地址,且无需 Cookie 同意横幅;即使分析表发生泄露,泄露的也将是计数而非个人信息。有两个默认关闭的可选设置可更改此行为:privacy.track_user_id 将条目归属于登录用户,privacy.durable_identity 用 Cookie 替换旋转哈希。国家报告默认也关闭,它使用通过 cairn:geoip 下载的本地 MaxMind GeoLite2 文件,而非针对每次请求进行第三方查询。
仪表盘与报告:仪表盘采用服务器端渲染的 Blade,无需 JavaScript 即可读取,使用链接进行过滤,并采用服务器计算的内联 SVG 图表,每个图表下方均配有表格。默认提供 18 个组件,另有 3 个可通过一行配置启用。组件是可重新排序、删除或继承的类,包括用于排名表的维度组件。包括仪表盘、API、Pulse 卡片和 CSV 导出在内的所有界面均通过统一的查询层。报告生成器支持按路由等维度分组的访问者、页面浏览量和跳出率等指标,并支持周期对比、排序和限制。衍生指标在显示层级根据存储的组件重新计算而非取平均值,请求未汇总的数据将抛出异常而非扫描原始条目。
运维:要求 PHP 8.2+、Laravel 12 或 13,以及 MySQL 8+、MariaDB 10.6+ 或 PostgreSQL 13+。Redis 为可选,所有基于 Redis 的功能均配有经过相同测试套件验证的数据库驱动。无需 npm、Vite 或 Node 构建步骤。Artisan 命令包括 cairn:rollup、cairn:prune、cairn:work、cairn:partition、cairn:doctor、cairn:geoip、cairn:forget 和 cairn:export。除非已手动调度,否则 Rollup 和 Prune 会自动调度;在没有 cron 的主机上,一小部分请求将承担此工作。仪表盘路由由 viewCairn 门禁保护,在定义之前将拒绝本地环境以外的所有访问。仪表盘驱动支持 blade(默认)、livewire、inertia 和 none;无需安装 Livewire 或 Inertia,指定未安装的驱动将回退至 Blade 仪表盘。可选的 beacon 可测量页面停留时间、滚动深度、屏幕尺寸和 Core Web Vitals。
范围与许可:README 列出了刻意不实现的目标,包括跨日跟踪、存储 IP 地址、漏斗分析、队列分析、热力图、会话回放、A/B 测试、最后一次点击之外的归因以及行为机器人检测。它声明 Cairn 无法告知部署是否符合任何法规。该项目被描述为稳定版本,从 1.0.0 开始遵循语义化版本控制,并采用 MIT 许可证。
评论
0 评分人数达到10人后显示
登录后参与讨论。