内容提要
本文介绍了作者在博客系统中使用的统计系统方案,包括使用splitbee、Cloudflare和Google Search Console的经历,以及最终选择umami和GoatCounter的原因。作者详细介绍了在Zeabur平台上部署GoatCounter的步骤,并总结了搭建博客统计系统的过程。
延伸解读
统计工具选型:从功能到维护成本的权衡
作者尝试了多种统计方案:splitbee 免费但有限制,Cloudflare 数据不精确,Google Search Console 侧重 SEO,umami 功能强但依赖多个平台。最终选择 GoatCounter,因其轻量、易部署。这反映了个人项目选型时,除了功能,维护成本和数据控制同样重要。
GoatCounter 的轻量架构与部署优势
GoatCounter 采用 Go 单二进制文件和 SQLite 数据库,无需外部依赖,部署简单。在 Zeabur 上通过 Docker 镜像部署,配置存储卷持久化数据,并绑定自定义域名即可使用。这种架构降低了维护复杂度,适合资源有限的个人项目。
数据持久化与备份的注意事项
在 Zeabur 部署时,需将容器内 /data 目录挂载到存储卷,否则容器重启会导致数据丢失。作者通过暂停服务并创建备份来验证数据持久化,但指出 Zeabur 界面缺乏直观的存储卷管理。这提醒用户部署后应确认数据持久化机制。
集成与本地调试的细节
在博客中集成 GoatCounter 只需添加一段脚本到 head 部分。但需注意,GoatCounter 会忽略来自 localhost 的请求,因此本地调试时看不到统计数据,必须部署后才能验证。这有助于避免开发过程中的困惑。
Q&A
为什么作者放弃了splitbee作为统计工具?
作者放弃splitbee是因为数据保留时间限制和流量超过5000 PV后需要升级的问题。
GoatCounter与其他统计工具相比有什么优势?
GoatCounter轻量且易于部署,使用单二进制文件和sqlite数据库,功能完备且没有多余的按钮。
在Zeabur平台上如何部署GoatCounter?
在Zeabur上部署GoatCounter需要创建项目、配置镜像、设置域名并确保数据持久化。
使用GoatCounter需要注意哪些配置?
需要在博客中添加统计组件的代码,并确保数据持久化配置正确,以避免数据丢失。
作者在使用Cloudflare和Google Search Console时遇到了什么问题?
作者发现Cloudflare的数据不够精确,且Google Search Console只能提供整体数据,无法精确到单篇文章。
GoatCounter的数据库使用什么?
GoatCounter使用sqlite数据库,数据存储在容器内的/data目录中。