写点什么

Datadog 发布统一的基于 Rust 的实时度量指标引擎 Monocle

作者:Leela Kumili

  • 2025-09-28
    北京
  • 本文字数:1217 字

    阅读完需:约 4 分钟

大小:622.10K时长:03:32
Datadog发布统一的基于Rust的实时度量指标引擎Monocle

Datadog 推出了Monocle,这是一个用Rust编写的、新型的实时时间序列存储引擎。该系统统一了公司的度量指标存储基础设施,提供了更高的数据摄入吞吐量和更低的查询延迟,同时降低了运维复杂性。Monocle 取代了他们的历代存储后端,解决了随时间积累的并发挑战和扩展性限制。

 

Datadog 存储基础设施的早期设计将责任分散在多个系统之间。度量指标数据被写入实时数据库(Real-Time Database,RTDB),它存储了<timeseries_id, timestamp, value>元组,而索引数据库则维护标识符和标签。存储路由器将指标定向到 RTDB 节点,查询在 RTDB 和索引节点之间展开。每个节点都包含用于摄入、存储、快照、查询和限流的子系统,所有这些都通过共享的控制平面进行协调。


实时度量指标存储架构的高层概述(来源:Datadog工程博客

 

RTDB 的这种架构经历了几次迭代。第一代依赖于Cassandra实现高写入吞吐,但是查询灵活性有限。随后是基于Redis的设计,这提高了响应性,但遇到了持久性和单线程执行的问题。MDBM是一个内存映射的键-值存储,提供了更好的操作系统缓存使用,但遇到了可扩展性的瓶颈。随后,基于 Go 的 B+树引擎采用了每个核心一个线程(thread-per-core)的模型,增加了并发性,但也增加了复杂性。后来,RocksDB 提供了持久性,并通过DDSketch支持分布式指标,不过在扩展方面仍然存在挑战。

 

Monocle 将这些先前的方法整合到了一个统一的基于Rust的引擎中。它采用了每个核心一个分片,每个分片一个工作者(shard-per-core,worker-per-shard)的模型,每个存储工作者管理自己的日志结构化合并树(LSM 树)实例,以摄入数据、提供查询服务和执行后台任务,如压缩。设计采用了早期的分片存储:通过其时间序列键标识每个数据单元,它们被分配到一个分片上,确保 CPU 核心之间的负载分布均匀。正如 Datadog 工程师所指出的,“这种每个核心一个分片,异步工作器模型是 RTDB 的基础。”设计消除了写入路径上的锁和原子操作,减少了争用,而 Rust 的内存保证了安全性和并发性。


Monocle 的内部组件来源:Datadog工程博客)

 

该引擎将数据摄取、存储与查询处理整合于单一系统中。写入操作通过内存表缓冲,并采用受 LSM 树启发的压缩机制实现持久化。基数树缓冲区加速聚合操作,统一缓存则降低查询延迟。数据按时间分段存储,每段采用最近最少使用(LRU)策略,在保留最相关查询的同时驱逐过期查询,确保系统在高负载下仍保持数据新鲜度与响应能力。

 

Datadog 报告的性能基准测试显示了显著的收益。Monocle 实现了数据摄入吞吐量的 60 倍增加,高峰时查询延迟的 5 倍减少,与早期系统相比成本效率提高了一倍。这些改进归因于每个核心一个分片的并发模型、Rust 的效率以及在写入和查询路径上的优化。

 

Datadog 的工程师指出,Rust 重写和模块化设计的另一项关键优势在于:为 Monocle 开发的组件现正被复用到 Datadog 的其他系统中,这既提升了可维护性,又增强了平台范围的一致性。

 

原文链接:

Datadog Launches Monocle, a Unified Rust-Powered Real-Time Metrics Engine

2025-09-28 10:304752

评论

发布
暂无评论

商业计划书制作(2):商业计划书的完成阶段

老壳有点爽

创业 财富自由 商业计划书

最初芯片国产化是怎么来的?

老壳有点爽

芯片 集成电路 国产化 替代

魅力非凡的半导体电路行业

老壳有点爽

芯片 集成电路 IC 芯片营销

sed语言学习技巧(1)

老壳有点爽

vim 编程语言 sed 脚本语言

物理实现(Physical Implementation)

老壳有点爽

芯片 集成电路 IC 物理设计 PI

模拟电路设计工程师发展九段

老壳有点爽

集成电路 IC 芯片设计 模拟电路

Verilog 的debug技巧(1)

老壳有点爽

芯片 集成电路 IC Verilog 电路

集成电路工艺基础介绍

老壳有点爽

芯片 集成电路 IC 工艺 制程

芯片行业的主要生意模式

老壳有点爽

芯片 集成电路 IC

数字后端工程师发展六阶段

老壳有点爽

芯片 集成电路 IC 数字电路工程师

IC设计流程及工具

老壳有点爽

芯片 集成电路 IC IC设计流程及工具

商业计划书制作(1):商业计划书的信息需求

老壳有点爽

创业 商业计划书 信息需求

MySQL备份与恢复场景示例

Simon

MySQL

2020深圳站-GIAC全球互联网架构大会PPT分享

九叔(高翔龙)

架构 分布式系统 服务治理 大型网站演变 全链路压测

世界集成电路发展概况

老壳有点爽

芯片 集成电路 IC 芯片营销

sed 语言学习技巧(2)

老壳有点爽

vim sed 脚本语言

看门狗 | 分布式锁架构设计方案-02

九叔(高翔龙)

redis 分布式锁 Jedis RedLock

数字电路后端设计流程

老壳有点爽

设计 flow 集成电路 IC

中国大陆芯片行业发展概况

老壳有点爽

芯片 集成电路 IC

Python 核心技术与实践 input&output

Bonaparte

芯片行业基本生态:设计生产封装的行业分工

老壳有点爽

芯片 集成电路 IC

Linux指令简述&vim引入(1)

老壳有点爽

vim Linux 脚本

Vim小技巧(2)

老壳有点爽

vim Linux 脚本语言

PySpark RDD 基础运算和操作总结

是老郭啊

spark pyspark RDD

看门狗 | 分布式锁架构设计方案-01

九叔(高翔龙)

redis 分布式锁 RedLock WatchDog

区块链之物流产业上链解决痛点

CECBC

区块链 供应链

成都信息工程大学的区块链工程成全国首个区块链工程本科专业

CECBC

区块链技术 区块链工程

半导体行业个人理解

老壳有点爽

芯片 半导体 集成电路 IC

MySQL DDL详情揭露

Simon

MySQL

强势入局,区块链专利将成为银行下一个战场?

CECBC

区块链 金融 银行

集成电路设计概括

老壳有点爽

芯片 集成电路 IC

Datadog发布统一的基于Rust的实时度量指标引擎Monocle_后端_InfoQ精选文章