我正在使用MongoDB强大的上限集合+ tailable游标在我的系统中的不同进程之间传递消息。对于不同类型的消息,我有许多这样的集合,以不同的速率和大小编写文档。每个集合,写入率可能会有很大差异,但应该很容易从过去/正在进行的操作中获得文档大小和速率的典型/保守上限。
此外,我有一个定期工作(每小时一次)查询消息并存档它们。重要的是所有消息都要归档,即在作业有机会归档之前不得删除它们。 (存档的消息将写入文件。)
我想做的是某种尺寸/费率监控,这样可以计算出邮件大小和费率的上限,我可以据此确定我的上限收藏的大小。
我打算设置一些监控工具,运行它一段时间来收集信息,然后对其进行分析,并确定我的上限集合的大小。当然,目标是保持它们足够小,以便不占用太多内存,但又大到可以使丢弃的消息不可能。
这是我认为可以提供帮助的信息:
查找此信息的最佳方法是什么,是否还有其他相关的统计信息?
关于如何将其与Graphite / Carbon集成的提示也很棒!
答案 0 :(得分:1)
设置StatsD-Graphite堆栈并首先向其发送指标。
您要发送的信息可以通过任何可以通过UDP发送消息的语言发送。
所有常用语言都有语言绑定 - PHP,Python,Ruby,C ++,Java等。所以这应该不是问题。
从技术角度来看,您可以专注于您想要衡量的其他事项。
答案 1 :(得分:0)
未能找到开箱即用的解决方案,并且在此处没有得到答案,这就是我最终要做的事情
我最终建立了一个过程:
然后我让它跑了一个星期,并检查它的状态。通过这种方式,我设法在本周获得了非常好的活动图片。
对于1.,我使用projection来保持它尽可能轻量级,只检索ID,并从中提取时间戳。
3.收集的数据用于确定集合是否受到大小限制或文档数量限制的约束。