logging - 在 Plone 中计算页面浏览量的最佳方法

标签 logging plone zope web-analytics

我正在处理一个需要非常复杂地使用页面 View 的案例。

每个内容对象都会有页面 View ,并且应该可以轻松访问它,以便我们可以执行与其相关的各种操作(按目录结果排序、显示、计算流行度...)。最接近的等效项是 YouTube 视频的 View 。

我正在考虑一些可能的方法来实现这一点:

  1. 使用注释存储和索引器创建portal_catalog索引和元数据。

  2. 仅使用索引器(要么使用 volatile 属性,要么根据先前的索引更新索引),这样我们就不必将经常更改的数据写入两次。页面 View 仅存储在对象大脑中。

  3. 使用关系数据库。那么我们怎样才能让它与portal_catalog一起工作呢?

  4. 在 Plone 之前使用包装层进行分析并通过某些 API 获取所需的数据。这牺牲了灵 active ,但有助于减少 Plone 端的大量工作(写入事件订阅者、检查 session 、cookie ...),并且性能应该更好?

您对此有何想法/经验?

最佳答案

我们在客户项目(大型私有(private)内部网)中使用了外部日志分析器。架构:

  • js 库添加了一个“网络 bug”,即一个带有附加查询参数的空 gif,从专用的 nginx 服务器加载。
  • 日志处理器拾取 nginx 日志,轮换它们,并将这些行解析到数据库中,同时计算访问量和附加元数据。数据库中的条目包括内容的 UID 以及其他有趣的角度。
  • 该网站对同一数据库具有只读访问权限,以进行统计查询。

页面计数就变得很简单,只需在数据库中查询正确的 UID 即可。排名并没有那么难;查询统计信息,然后使用 UID 将目录数据附加到结果集。

我们现在面临的最大问题是缺乏数据仓库专业知识(将数据库中的各个访问行转换为有效的聚合),我们正在考虑重新调整此设置以使用 Piwik作为统计引擎。

在这种特殊情况下,我们无法使用 Google Analytics,但如果您没有这样的限制,我当然建议您查看 collective.googleanalytics看看是否可以使其适合您的用例。

关于logging - 在 Plone 中计算页面浏览量的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7732532/

相关文章:

plone - 某些 Zope 3 资源是否从 URL 中获取参数?

logging - Log4j2 文件已创建但未写入日志

workflow - 在 Plone 中创建新对象时是否会触发工作流程状态更改?

logging - 如何让 SAS 同时登录外部位置和 SAS Enterprise Guide

python - 来自 zope 模式的循环导入引用

plone - buildout 可以创建内容作为 Plone 安装的一部分吗?

plone - pylinting zopeish 文件 : F0401: 11, 0:无法导入 'zope.interface'

python - 无法在 VirtualBox 共享文件夹上安装 Plone,因为 Python 安装失败

javascript - rails : How can I log on which site my javascript is embedded?

logging - 如何让 Tomcat 服务器打印有关重写 Valve 的调试消息?