今天早上我在查看我们每月的 Sitecore Analytics 报告时发现了一个令人不安的异常情况。我们本月的平均“现场停留时间”平均约为 9 分钟。这比上个月的平均约 1-2 分钟有所增加。

我的第一 react 是“太好了,看来我们这个月做得更好了”,但经过进一步调查,似乎每次访问该网站都记录了 20-25 分钟的“现场停留时间”统计数据——即使对于单页访问。

有谁之前经历过这个吗?看起来好像添加 SessionEnd 处理器会导致 Sitecore 在默认的 20 分钟持续时间内保持每个 session 处于事件状态。如果这是真的,如何在不影响每次访问的“现场时间”统计数据的情况下添加自定义 SessionEnd 管道处理器?

Sitecore 版本:6.4.1 更新 1

更新

不幸的是,每次访问的站点流量仍然记录在 20 分钟以上……这是完全删除自定义 SessionEnd 处理器的情况。我目前正在调查其他可能的原因。

更新 2

我们在我们的日志中看到许多 Analytics 警告消息,如下所示:

Analystics: Max size of insert queue reached. Dropped 3826.

我现在相信这在某种程度上是相关的......

更新 3

我发现在重新启动 Sitecore 应用程序后,“现场时间”统计数据会恢复正常。从那里开始,现场的平均时间将以每 10 分钟左右大约 1 分钟的速度逐渐攀升,直到大约 20 分钟趋于平稳。我相信大约在同一时间,我们开始在日志中看到“已达到插入队列的最大大小”警告。

我还发现实际的“现场时间”数字是根据 [Session].[Timestamp] 表中 [Session].[LastPageTimestamp][Sessions] 列之间的平均时间跨度计算的。有趣的是,进入 Session 表的最新记录似乎具有 实际插入表 [LastPageTimestamp] 。就好像 INSERT 语句使用 GETDATE() 在每条记录插入数据库时​​标记它们。如果这是真的,那么我想我找到了罪魁祸首。我相信我有一个性能问题,更糟糕的是,排队的 session 被错误地插入到数据库中。

最佳答案

不知道这个问题的答案......但我要做的第一件事是用 Reflector 拆开现有的 sessionEnd 管道代码,看看它是否正在做一些棘手的事情,你实际上是通过添加另一个处理器来撤消。

在我的 web.config 中,唯一的处理器似乎是 Sitecore.Pipelines.SessionEndSaveRecentDocuments。

关于analytics - 添加 SessionEnd 管道处理器会影响 Sitecore Analytics?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7324364/

10-16 22:17