【发布时间】:2015-09-03 18:52:05
【问题描述】:
我有一个分布式监控系统,它收集监控数据并将其收集到后端存储中,例如 CPU 利用率、数据库性能指标、网络性能。其他应用程序需要使用这些数据,例如实时计算(用于资源调度程序)、用于系统监控(用于使用监控仪表板的系统管理员)、用于历史分析(用于操作和分析程序以对未来容量规划的资源使用模式进行建模)和业务系统活动分析)。
数据集大小约为 9 个月的数据存储中的 12 亿个条目。 (全部采用类似 OpenTSDB 的格式)
之前我使用 Elasticsearch 集群作为后端数据存储解决方案,并决定寻找更好的解决方案。
我正在查看 Couchbase 或 VoltDB 集群,但仍处于调查阶段,因此需要有类似经验的这里的一些输入。
主要问题如下:
哪种后端存储解决方案适合我的场景? (Couchbase 还是 VoltDB)?
我必须重写我的数据聚合器代码(在 golang 中)。 Couchbase 提供了一个很好的 golang SDK 客户端,但 VoltDB 的 go 驱动程序仅处于社区级别,功能有限。那么在golang中有没有更好的与voltdb通信的实现呢?
对此有何建议或最佳实践?
【问题讨论】:
-
您能否提供更多关于数据消耗频率的信息? Couchbase 绝对可以跟上这种情况下的写入。对于读取,这将取决于数据建模以及您需要的 3 种访问数据方式中的哪一种以及您需要从该数据库中获得哪些性能特征。
-
谢谢柯克。从目标节点和在其上运行的服务收集数据的时间间隔约为 30 秒(分钟)到 5 分钟(最大)。我们的监控代理的监控间隔在运行期间是可配置的。
-
我们利用 OpenTSDB 的数据模型并将一些我们自己的具体指标附加到其中。 (假设一个定制的 OpenTSDB 模型)。 Couchbase 的 View 功能绝对是吸引我的地方,因此我可以根据收集的数据创建不同的视图并以不同的方式分析它们。我所关心的是采用 Couchbase 集群作为监控系统后端是否正确。你知道任何真正以这种方式发生的沙发库用例吗?谢谢。
-
科技领域没有“正确”的方式。无论如何,是的,肯定有人用 Couchbase 做这样的事情。我查看了 OpenTSDB 模型,它不是 JSON,但这应该很容易放入 JSON 以进入 Couchbase 并使用视图。使用 Couchbase 视图要记住的一件事是它们最终是一致的,并且更像是地图缩减视图。集群的大小将是至关重要的。根据查询的性质,甚至可能值得看看新的 Couchbase 4.0 查询功能。另外,请阅读此内容。 bit.ly/1Hx3a74
标签: monitoring couchbase analysis voltdb