写点什么

特斯拉如何基于 ClickHouse 构建千万亿级别的可观测性平台

ClickHouse

  • 2025-08-07
    北京
  • 本文字数:2909 字

    阅读完需:约 10 分钟

大小:1.38M时长:08:01
特斯拉如何基于 ClickHouse 构建千万亿级别的可观测性平台

地球上没有几家公司能像特斯拉这样运行在如此大规模上。从庞大的超级工厂,到关键的能源系统,再到全球联网的车辆网络,要让这些组件协调运作,就需要实时掌握系统各处的运行状态。


“特斯拉可不是小型企业,”高级职员软件工程师 Alon Tal 说道,“我们会生成大量的指标数据,这些数据用于长期分析、预测和异常检测等用途。”



当需要构建新一代可观测性系统时,Alon 和团队考察了一系列常见方案。尽管像 Prometheus 这样的工具在理论上很出色,但根本无法满足特斯拉的规模需求。“它不能横向扩展,纵向扩展也有限,”他解释说,“而且作为单机系统,它的高可用性也无法保障。一旦宕机,所有指标数据都会丢失——这是绝对不能接受的。”


他们需要的是一个更快、更稳、更具可扩展性的系统:能每秒摄入数千万行数据、支持多年数据保留、在高负载下依然保持响应的系统。因此,他们选择了 ClickHouse,并构建出 Comet——一个具备 Prometheus 式简洁体验,同时具备 ClickHouse 等级性能与可靠性的特斯拉级可观测平台。


本文将深入解析特斯拉如何构建 Comet、为何选择 ClickHouse 作为核心,以及如何通过一场万万亿行级的负载测试,验证其超越常规系统的扩展能力。


可观看 Alon 在 ClickHouse 首届 2025 Open House 用户大会上的演讲。

00:00 / 00:00
    1.0x
    • 3.0x
    • 2.5x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.75x
    • 0.5x
    网页全屏
    全屏
    00:00


    一系列不可妥协的要求


    从一开始,团队就明确了目标要求。首先必须具备可扩展性。对特斯拉来说,这意味着系统必须能实时处理海量数据,并确保在数据持续增长的前提下依然能稳健运行。


    高可用性同样关键。“在特斯拉,指标数据的丢失可能造成现实世界的物理后果,”Alon 指出。在这种背景下,系统必须近乎“牢不可破”。


    数据保留能力也很重要。团队希望能回溯数月甚至数年的历史,以识别趋势和预警问题。持久性则是基础:一旦接受某项指标,无论是否重启都必须永久保留。而响应速度也容不得妥协。“在排障时,没有人能接受卡顿的仪表盘。”


    灵活性也是关键需求。他们希望能提出复杂问题、运行自定义分析,支持各种内部使用场景。“我们不希望受限于某种简单的领域特定语言,而是能对数据自由发问。”


    最后一点,整个系统必须兼容 PromQL——这是特斯拉用于指标分析的核心查询语言。“我们的工程师对它熟悉,也喜欢用它,”Alon 说。他们还积累了大量基于 PromQL 的仪表盘和告警规则。“没人愿意重写这些内容。”

    选择 ClickHouse 的理由


    起初,团队自然地想到 PromQL 背后的参考实现:Prometheus。这款系统广泛使用且易于部署。但结合特斯拉的规模和需求,它并不可行。“于是我们决定自己打造平台。”


    首个也是最基础的决策是:数据应该存在哪。团队评估了多个选项,最终因性能与灵活性选定 ClickHouse。


    “在我们看来,数据存在 ClickHouse 中,比存在任何其他系统都更优,”Alon 说,“它让你可以灵活切分和钻取数据,并在可接受的响应时间内获取答案。”


    “ClickHouse 满足了我们所有要求,”他补充道,“无论是可用性、速度还是持久性,应有尽有。”它还带来了一些意想不到的优势,比如支持可执行用户自定义函数(UDF)[https://clickhouse.com/docs/sql-reference/functions/udf]。这点尤其重要,“因为有些逻辑难以直接用 SQL 表达,而 UDF 给我们提供了关键的兜底机制。”


    最终,选择变得毫无悬念。ClickHouse 提供了大规模所需的性能,也让团队有信心构建一个既强大又熟悉的平台。“没有其他系统能与 ClickHouse 相比。”Alon 说。

    探秘 Comet 的架构设计


    以 ClickHouse 为基础,团队设计出一个能满足特斯拉需求的架构系统,产出即为 Comet——一个专为指标打造的平台,包含两条主数据通路:一条用于海量数据的摄取,另一条用于实时转译并执行 PromQL 查询。


    在数据摄取方面,特斯拉基础设施中的 OpenTelemetry 采集器将指标推送到兼容 Kafka 的队列中。然后,一套由团队自主开发的 ETL 流程会将数据从 OTLP 格式转为结构化行记录,进行批处理后写入 ClickHouse。该架构便于横向扩展,且即使数据激增也能维持性能稳定。“它是非常具备可扩展性的摄取管线。”Alon 说道。


    Comet 的摄取管线通过 Kafka 和 OTLP 将指标批量写入 ClickHouse。



    但真正的核心在于转译器。这个引擎可实时将 PromQL 查询转译为 ClickHouse SQL,这正是 Comet 的“魔法”所在。工程师无需学习新语言,就能继续使用熟悉的 PromQL,同时享受 ClickHouse 带来的查询性能与灵活度。


    Comet 将 PromQL 转译为 ClickHouse SQL,并与 Grafana 与现有告警工具无缝兼容。


    查询执行完成后,Comet 会将响应结果格式化为与 Prometheus API “字节级一致”的格式。这意味着所有现有的仪表盘、告警与运维工具都能继续照常使用,无需改写任何内容或配置额外连接器。“没人会意识到这并非标准的 Prometheus 环境。”Alon 说。


    为保证结果一致性,团队还开发了专用测试套件,会对同一 PromQL 查询在 Prometheus 与 Comet 上分别运行并比对结果,确保完全一致。告警系统同样支持所有原有规则与集成,迁移过程无需额外改造。


    大规模验证系统能力

    最终测试结果:总计摄取数据超过一千万亿行——“整个过程中没有一丝故障,没有任何问题。内存占用稳定,CPU 使用平稳。这一切让人惊叹。”


    如今,Comet 系统正以每秒数千万行的速率持续摄入数据。“而且它还没有达到上限,”Alon 表示,目前还有多个内部团队正在逐步接入。


    在时序数据领域,特斯拉所处的规模几乎没有系统能应对。每个时序代表一组相关指标样本流,特斯拉迄今已积累了数百亿个时序。每个时序又包含大量数据点,导致总体数据行数呈指数级上升。“这本身就是大多数系统难以承受的高基数挑战,”Alon 表示,“尤其是其他系统通常对 high-cardinality 时序非常敏感。”


    目前,Comet 存储着数十万亿个样本。团队对其扩展性信心十足,甚至进行了极限验证:将数据摄取推至每秒十亿行,并连续运行 11 天。最终系统共摄入超过一千万亿行数据——“运行过程中没有任何故障,内存平稳、CPU 平稳,整个过程简直美得令人窒息。”


    了解 ClickHouse 如何支撑大规模可观测性场景,访问 ClickStack[https://clickhouse.com/use-cases/observability]。


    一条 count 查询显示 Comet 成功摄取超过一千万亿行数据,且“没有任何故障”。


    特斯拉与 ClickHouse 的下一步


    随着 Comet 在超大规模场景下稳定运行,特斯拉也在拓展更多使用场景,比如分布式追踪。基于同一套转译器机制,他们加入了对 TraceQL 的支持,让工程师查询追踪数据也能像查询指标一样轻松。


    团队还在探索将 Comet 开源的可能性。“如果我们能做到,所有人都可以亲自试试这个系统。”Alon 表示。


    Comet 是特斯拉持续创新的一个缩影。它基于 ClickHouse 构建,使用 PromQL 访问,覆盖从超级工厂到数百万联网汽车的各个系统,为工程师提供实时洞察与可观测能力,以应对特斯拉级别的挑战。


    “我要感谢每一位 ClickHouse 的贡献者,”Alon 在 Open House 上说,“你们打造的产品非常出色,是我能完成这个项目的根本保障。”


    征稿启示


    面向社区长期正文,文章内容包括但不限于关于 ClickHouse 的技术研究、项目实践和创新做法等。建议行文风格干货输出 &图文并茂。质量合格的文章将会发布在本公众号,优秀者也有机会推荐到 ClickHouse 官网。请将文章稿件的 WORD 版本发邮件至:Tracy.Wang@clickhouse.com。




    2025-08-07 14:471

    评论

    发布
    暂无评论

    全局视角看技术-Java多线程演进史

    京东科技开发者

    阿里Java面试手册-Java面试题总结(附答案)——互联网大厂都在问的Java面试题,而你从没看过!

    程序员高级码农

    Java 面试 架构师 Java’ Java 面试题 春招‘

    掌握行业全球新闻,实现产业研究/内容聚合分发/情报采集

    八爪鱼采集器︱RPA机器人

    爬虫 采集

    人机识别到底难在哪?

    芯盾时代

    身份安全

    采集医药行业数据,赋能企业创新与决策

    八爪鱼采集器︱RPA机器人

    爬虫 采集

    盘点15款国内外社交聆听工具

    八爪鱼采集器︱RPA机器人

    爬虫 采集

    近期,除了“纯血鸿蒙公测”,校园开发者还有这件事要知道!

    YG科技

    HPE Aruba Networking连续七年蝉联Gartner SD-WAN魔力象限领导者

    科技热闻

    如何对 GitLab 老旧版本进行升级?

    极狐GitLab

    gitlab 安全漏洞

    见证 RTE 的新篇章丨 RTE 年度场景 Showcase 暨第四届 RTE 创新大赛开幕

    声网

    Caffeine学习笔记

    京东科技开发者

    为什么说“全面绩效”是企业管理的必选项?

    ToB行业头条

    政务公告数据的应用与八爪鱼的实践

    八爪鱼采集器︱RPA机器人

    爬虫 采集

    全面洞察商业情报,助力企业破解增长难题

    八爪鱼采集器︱RPA机器人

    爬虫 采集

    产品负责人对干系人说‘不’的6条准则

    ShineScrum

    【质量视角】可观测性背景下的质量保障思路

    京东科技开发者

    第三届OpenHarmony技术大会应用生态实践分论坛成功举办

    科技热闻

    第三届OpenHarmony技术大会硬件生态分论坛圆满举办

    科技热闻

    行业融媒体平台建设与八爪鱼

    八爪鱼采集器︱RPA机器人

    爬虫 采集

    八爪鱼采集在国央企产业大脑的应用:以智慧水务大脑为例

    八爪鱼采集器︱RPA机器人

    爬虫 采集

    Excelize 开源基础库 2.9.0 版本正式发布

    xuri

    golang 开源 办公自动化 Excelize 办公软件

    阿里架构师:天天高并发,这个时代达不到百万以上的并发量都不叫高并发!!!

    程序员高级码农

    多线程 架构师 Java高并发 Java’ 高并发‘’

    Java程序员真的还有未来吗?如何备战2025春招Java面试?并狂拿大厂offer?(java高级岗)

    程序员高级码农

    Java 面试 架构师 Java’ 面试‘ Java 面试题

    分布式电商项目:天猫 Java 亿级高并发架构设计笔记

    程序员高级码农

    数据库 高并发 电商 分布式, 消息列队

    GitLab 安全漏洞CVE-2024-9164、CVE-2024-8970 等的修复方案

    极狐GitLab

    gitlab 安全漏洞 CVE CVE 漏洞

    采集新闻数据,助力产业研究/内容聚合分发/行业研究/舆情监控

    八爪鱼采集器︱RPA机器人

    爬虫 采集

    CAE和CAD的区别

    智造软件

    计算机 CAE cad 仿真技术 辅助设计

    特斯拉如何基于 ClickHouse 构建千万亿级别的可观测性平台_DataOps_InfoQ精选文章