Criteo使用Cassandra存储后端实现Graphite的规模化

栏目: 数据库 · 发布时间: 6年前

看新闻很累?看技术新闻更累?试试 下载InfoQ手机客户端 ,每天上下班路上听新闻,有趣还有料!

Criteo 公司SRE团队的一位成员在上个月召开的FOSDEM大会上做了 一个演讲 ,介绍了他们如何使用Cassandra作为存储后端实现Graphite产品的规模化安装。为实现容错和弹性扩展,Criteo工程团队编写了一个称为“ BigGraphite ”的Graphite用户化插件,替代了Cassandra默认使用的WhisperDB。

Criteo需要解决容错和弹性扩展问题,这是已被分布式数据库解决的问题。Criteo团队决定使用Graphite的插件架构,编写支持使用Cassandra为存储后端的定制插件。该插件作为“ BigGraphite ”项目开源。项目在设计中考虑了支持多种后端,但是目前只提供对Cassandra的支持。

Whisper是Graphite推出的默认数据库,它采用固定大小的文件存储数据。文件的大小固定,因为Graphite在存储数据时指定了一个预先配置的保留期限,通常更旧的数据以更低的采集频率存储。Criteo的度量采集横跨 具有超过两万台服务器的六个数据中心 ,每秒写入80万个数据点。团队维护了两千多个仪表盘,以及一千多种报警,每隔五分钟做一次度量评估。Graphite的默认配置(包括存储后端)并不能满足这样配置的需求。据报告介绍,除了“ 每种度量对应一个文件 ”模型存在大量浪费的问题之外,Graphite的 集群 并非十分稳健,也不是“真正可弹性扩展的”。此外,Whisper中操作数据模型所用的命令行 工具 运行速度慢,性能脆弱。

Criteo使用Cassandra存储后端实现Graphite的规模化

图片来源: 演讲中使用的幻灯片

在BigGraphite架构中,有一个Carbon中继,它将来自于数据中心的事件发送给写入Cassandra的Carbon缓存过程。Carbon中继也实现复制功能,并通过将数据推送给多个Carbon缓存过程实现分片功能,度量数据由Carbon缓存过程写入到磁盘。转移到BigGraphite架构还包括改为使用Graphite Web UI。

演讲中还介绍了Cassandra的时序模式,但是并未详细介绍如何存储或查询给定度量的标签。 Cassandra表 中的每行数据都包括度量名称和开始时间戳,并以此作为主键,列键使用与开始时间戳的偏移量。Graphite根据数据所处的保留阶段存储度量数据,例如,为期七天并且每分钟采集一次的数据、为期六个月并且每天采集一次的数据,诸如此类。更早期的度量数据使用聚合函数计算,这反映在Criteo团队对Cassandra表的设计中。对于一个给定的度量,实现有多个表,其中每个表用于一个给定的保留阶段,即对于一个给定的时期,应存储何种采集频率的数据点。

除了Cassandra之外,团队还测评了多种时序数据存储,包括 OpenTSDBCyaniteKairosDB 和InfluxDB。Criteo团队并未采用OpenTSDB,因为OpenTSDB采用HBase为后端,但是团队已经为其它用途使用了HBase集群,难以在该集群之外再建立一个HBase集群。其它选项在完成测评时尚未具备部分所需的特性,因此同样未得到采用。

当前Criteo的Cassandra集群运行有20个节点。团队正致力于引入Prometheus,并构建各个系统间的 联系纽带

查看英文原文: Scaling Graphite at Criteo Using a Cassandra Backend


以上所述就是小编给大家介绍的《Criteo使用Cassandra存储后端实现Graphite的规模化》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

HTTP Essentials

HTTP Essentials

Stephen A. Thomas、Stephen Thomas / Wiley / 2001-03-08 / USD 34.99

The first complete reference guide to the essential Web protocol As applications and services converge and Web technologies not only assume HTTP but require developers to manipulate it, it is be......一起来看看 《HTTP Essentials》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

SHA 加密
SHA 加密

SHA 加密工具