OpenTSDB 和 Graphite 有什么区别?

ved*_*ang 28 monitoring metrics graphite opentsdb

据我所知,以下是主要区别:

  1. 与预先确定数据库大小的Graphite不同,OpenTSDB不会随着时间的推移损坏数据。
  2. OpenTSDB 可以每秒存储指标,而不是具有分钟间隔的 Graphite(我不确定这一点,Graphite 文档显示了每分钟存储指标的保留策略,但我不知道这是否是我们的最小时间单位可以一起玩)

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

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

小智 48

免责声明:我写了OpenTSDB

我想说Graphite的最大优势似乎是卓越的绘图能力。它提供了更多的图形类型和功能。 Graphite 的部署复杂性也可能稍低一些,因为它不是分布式系统,因此移动部件较少。

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

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

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

  • Graphite 的间隔是可配置的。我通常使用 10 秒的监控周期。图表真的很可爱。否则,我认为 tsuna 的回答是正确的 (3认同)

小智 20

用户界面

Graphite有一些出色的绘图工具可用。默认的 Web 界面很丑陋(虽然功能强大),但是您拥有大量出色的图形和仪表板选项。

几个例子:

  • Grafana仪表板,带有动态(可缩放)图形

grafana 仪表板示例

图形资源管理器仪表板示例

cubism.js 图表示例

这里这里找到更多。

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

设置

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

演出

与预先确定数据库大小的 Graphite 不同,OpenTSDB 不会随着时间的推移损坏数据。

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

正如 tsuna 所说,OpenTSDB 将让你存储更多的数据点,利用 Hadoop 的 HDFS 的力量。另一方面,Graphite 的架构在 AOSA 章节中详细介绍,它是一种更临时的解决方案。

OpenTSDB 可以每秒存储指标,而不是具有分钟间隔的石墨。

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

  • 请注意,Grafana 还支持 OpenTSDB,并且还有其他吸引人的 OpenTSDB 前端,例如 [metrilyx](https://github.com/Ticketmaster/metrilyx-2.0)。 (4认同)