Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 我们如何优化mongo日志以进行分析_Mongodb_Logging_Analytics - Fatal编程技术网

Mongodb 我们如何优化mongo日志以进行分析

Mongodb 我们如何优化mongo日志以进行分析,mongodb,logging,analytics,Mongodb,Logging,Analytics,我们使用mongo在我们的网站上记录活动,但现在我们的流量已经增长,我们正在努力获取我们想要的报告。我们暂停了。每个用户会话都有自己的记录,其中包括以下属性- { channel: 'adwords', device: { type: 'mobile' }, abTestArms: [ test1_arm2, test3_arm4 ], userEventCounters: { clickOnRedButton: 3, adjust

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

{
  channel: 'adwords',
  device: {
    type: 'mobile'
  },
  abTestArms: [
    test1_arm2,
    test3_arm4
  ],
  userEventCounters: {
    clickOnRedButton: 3,
    adjustPriceSlider: 4,
    clickOnBlueButton: 2,
    useSearchBox: 4
  }
}
我们运行了大量的AB测试,希望找到不同版本如何影响用户活动。所以我们可以运行如下查询-

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

db.sessions.count({频道:'bing',设备:'tablet',abTestArms:'test1\u arm1'})

我们以前使用聚合管道,但它们开始超时,所以现在我们正在一点一点地构建结果,但即使这样,我们也遇到了超时

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

{channel:1, device:1, abTestArms:1, userEventCounters:1}
{channel:1, device:1, abTestArms:1, 'userEventCounters.hoverOverAd':1}
我们唯一没有尝试过的就是创建很多复合索引,比如

{channel:1, device:1, abTestArms:1, userEventCounters:1}
{channel:1, device:1, abTestArms:1, 'userEventCounters.hoverOverAd':1}
问题是,我们跟踪的用户事件很多,我们不希望有40多个这样的复合索引。此外,我们还必须在跟踪新事件时创建新索引

我们目前在数据库中保持大约300万个会话,而更大数量的查询通常在10万个。这并不是一件不寻常的事情,理想情况下,我希望能够在飞行中完成这项工作(就像我们过去在流量较小时所做的那样)。我错过了什么