OpenTSDB 和 Graphite 有什么区别?

OpenTSDB 和 Graphite 有什么区别?

据我所知,主要区别如下:

  1. OpenTSDB不会随着时间的推移而损坏数据,不同于石墨其中数据库的大小是预先确定的。
  2. OpenTSDB 可以按秒存储指标,而 Graphite 则以分钟为间隔(我不确定,Graphite 文档显示了每分钟存储指标的保留策略,但我不知道这是否是我们可以使用的最小时间单位)

我想做出明智的决定,决定使用哪种工具来存储指标,我是否错过了这两个系统的其他差异?它们的性能/可扩展性如何?

附加问题:还有其他时间序列系统我应该看看吗?

答案1

免责声明:我写的OpenTSDB

我想说的是石墨似乎是卓越的绘图功能.它提供更多图形类型和功能。 部署复杂性使用 Graphite 可能也会低一些,因为它不是一个分布式系统,因此移动部件较少。

OpenTSDB另一方面,它能够存储大量细粒度的数据点。但代价是部署HBase,说实话,这没什么大不了的。如果你想得到精确到秒的实时数据每秒有>>10k 个新数据点,那么 OpenTSDB 将非常适合您。

关于我们的一些信息当前的StumbleUpon 的规模(这些数字通常每 2-3 个月翻一番):

  • 每天超过 10 亿个新数据点(平均每秒 12k 个)。
  • 存储了数千亿个数据点。
  • 消耗的磁盘空间少于 2TB(HDFS 进行 3 次复制之前)。
  • 读取查询通常每秒能够检索、处理和绘制超过 500k 个数据点。

答案2

用户界面

石墨有一些极好的制图工具可用。默认的 Web 界面很丑陋(尽管功能齐全),但您拥有大量出色的制图和仪表板选项。

举几个例子:

grafana 仪表板示例

图形浏览器仪表板示例

cubism.js 图表示例

这里或者这里找到更多。

OpenTSDB另一方面仍处于 gnuplot 阶段: OpenTSDB 网页界面

设置

实际上,Graphite 的设置比 HBase + OpenTSDB 更麻烦。OpenTSDB 有全面的文档和几个简单的步骤。这些是安装 Graphite 的命令,如果从源代码构建,事情会变得更加棘手。

演出

OpenTSDB 不会随着时间的推移而损害数据,而 Graphite 则不同,因为 Graphite 的数据库大小是预先确定的。

没错。此外,Graphite 使用与 RRD 类似的文件格式,实际上这意味着单个数据点将占用与完整时间序列一样多的磁盘空间,因为这个空间是预先分配的。这也意味着绘制一个空的时间间隔将花费与那里有数据一样多的时间(另一种存储引擎,谷神星,正在进行中但我还没有尝试过)。

正如 Tsuna 所说,OpenTSDB 将允许您存储更多数据点,从而充分利用 Hadoop 的 HDFS 的强大功能。另一方面,Graphite 的架构是AOSA 章节中有详细介绍,是一个更加临时的解决方案。

OpenTSDB 可以按秒存储指标,而 graphite 则以分钟为间隔。

不,两者都可以记录到第二个。

相关内容