我们如何优化我们的mongo日志记录以进行分析

时间:2017-05-31 12:25:13

标签: mongodb logging analytics

我们使用mongo在我们的网站上记录活动,但是现在我们的流量已经增长,我们正在努力提取我们想要的报告。我们达到了超时。每个用户会话都有自己的记录,其中包括以下属性 -

query_data = (name,)

我们运行了大量的AB测试,并希望了解不同版本如何影响用户活动。所以我们可能会运行像

这样的查询
query_data

{ channel: 'adwords', device: { type: 'mobile' }, abTestArms: [ test1_arm2, test3_arm4 ], userEventCounters: { clickOnRedButton: 3, adjustPriceSlider: 4, clickOnBlueButton: 2, useSearchBox: 4 } }

我们曾经使用聚合管道,但是他们开始超时,所以现在我们正在逐步建立结果,但即使这样,我们也会遇到超时。

我们尝试了各种不同的索引,例如

等复合索引
db.sessions.count({channel:'bing',device:'tablet',abTestArms:'test1_arm1','userEventCounters.useSearchBox':{$exists:true}})

我们唯一没有尝试的是创建许多复合索引,如

db.sessions.count({channel:'bing',device:'tablet',abTestArms:'test1_arm1'})

这个问题是我们跟踪的用户事件很多,我们不希望像这样的40多个复合索引。此外,每当我们跟踪新事件时,我们都必须创建新索引。

我们目前在我们的数据库中保留大约3个会话,而更大的计数查询通常在100k。这可能不是一件不寻常的事情,理想情况下我希望能够动态地完成这些工作(就像我们以前在交通水平很小的时候那样)。我错过了什么?

0 个答案:

没有答案