今天早上我在查看每月的Sitecore Analytics报告时发现了一个令人不安的异常现象。我们本月的平均“现场时间”平均达到约9分钟。这比前一个月的平均约1-2分钟有所增加。
我的第一反应是“很棒,看起来我们本月做得更好”,但经过进一步调查后,似乎每次访问该网站都记录了20-25分钟的现场统计时间 - 即使是单页访问。
以前有没有人经历过这个?似乎添加了一个SessionEnd处理器会导致Sitecore使每个Session保持活动状态,默认持续时间为20分钟。如果这是真的,那么如何在不影响每次访问的“网站停留时间”统计数据的情况下添加自定义SessionEnd管道处理器?
Sitecore版本:6.4.1 Update 1
更新
不幸的是,每次访问时,网站流量仍然在20分钟以上记录......这是自定义的SessionEnd处理器完全删除。我目前正在调查其他可能的原因。
更新2
我们看到许多Google Analytics警告消息显示在我们的日志中,如下所示:
Analystics: Max size of insert queue reached. Dropped 3826.
我现在相信这在某种程度上是相关的......
更新3
我发现在重新启动Sitecore应用程序后,“网站停留时间”统计信息将恢复正常。从那里开始,现场的平均时间将以每10分钟左右大约1分钟的速度逐渐攀升,直到20分钟左右为止。我相信大约在同一时间我们开始在日志中看到“达到插入队列的最大大小”警告。
我还发现实际的“网站停留时间”图是根据[Session].[Timestamp]
表格中[Session].[LastPageTimestamp]
和[Sessions]
列之间的平均时间跨度计算出来的。这里有趣的是,进入会话表的最新记录似乎有{{1>} 实际时间插入表 。就像INSERT语句使用GETDATE()在每条记录插入数据库时标记它们一样。如果这是真的,那么我认为我找到了罪魁祸首。我相信我手上有性能问题,更糟糕的是,排队的Sessions正在错误地插入数据库。
答案 0 :(得分:2)
不知道这个问题的答案......但我要做的第一件事是用Reflector拆分现有的sessionEnd管道代码,看看它是否正在做一些棘手的事情,你实际上是通过添加另一个处理器来撤销。 / p>
在我的web.config中,唯一的处理器似乎是Sitecore.Pipelines.SessionEndSaveRecentDocuments。