开源项目
openobserve/openobserve avatar
openobserve/openobserve

OpenObserve 评测:用 Parquet 和 S3 把可观测性成本降下来的单一二进制方案

用于日志、指标、跟踪、前端监控、管道和 LLM 可观察性的开源可观察性平台。 Datadog、Splunk 和 Elasticsearch 的复杂、简单且高性能的替代方案,存储成本降低 140 倍,并且采用单一二进制部署。

21,798 个 Star1,081 个 ForkTypeScriptAGPL-3.0

秒懂

它是什么?
OpenObserve 号称是 Datadog、Splunk 和 Elasticsearch 的开源替代品,主打 140 倍存储成本削减和单二进制部署。本文基于其 README 与仓库信息,拆解它的存储架构、部署方式、适用场景和真实限制。
适合谁用?
OpenObserve 适合那些已经接受 OpenTelemetry 标准、希望用对象存储替代本地磁盘索引、并且愿意接受 AGPL-3.0 约束的团队。它不适合需要闭源集成、依赖 Elasticsearch 既有查询生态、或者对数据主权有严格合规要求且无法自托管的企业。
能商用吗?
可以,但条件严格。AGPL-3.0 是网络 copyleft 许可证:如果别人通过网络使用你修改过的版本(例如作为托管服务),你必须以同一许可证向他们提供源代码。
还在维护吗?
在维护。仓库最近一次提交在 1 天前。
用什么语言写的?
主要是 TypeScript(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月14日)和我们的分析,不构成法律意见。

开源项目深度解析

它解决的是成本与复杂度这对老问题

可观测性领域有个长期痛点:日志、指标、追踪各用一套系统,存储和查询成本随数据量线性膨胀。Elasticsearch 这类基于倒排索引的方案,在 TB 级日志下需要大量内存和磁盘,集群运维本身也是一笔隐性开支。OpenObserve 的定位很直接:用 Parquet 列式存储加 S3 原生设计,把存储成本砍到 Elasticsearch 的约 1/140,同时把整个平台打包成单个二进制文件。它不是要替代某个单一组件,而是把日志、指标、追踪、RUM 和 LLM 监控全部收进一个平台,用一套 UI 和一套查询语言覆盖所有信号。目标用户很明确:被 Datadog 账单吓到的中小团队,或者觉得 Elasticsearch 集群太重、想换一种存储范式的运维工程师。

存储架构:Parquet 列式存储和对象存储的组合拳

README 反复强调 Parquet columnar storage 和 S3-native design。这意味着数据不是写入本地磁盘的索引,而是以列式格式写入对象存储。列式存储的好处是查询时只需读取涉及的列,而不是整行数据,这对日志分析这种典型的高基数、宽表场景特别有利。S3 原生设计则意味着存储和计算可以分离,数据落在对象存储上,计算节点按需伸缩。这个架构和 Elasticsearch 的本地索引完全不同,后者需要把数据分片到各节点并维护副本。OpenObserve 的做法牺牲了部分写入实时性,换来了存储成本的量级下降。README 没有给出具体的写入延迟或查询延迟数字,所以性能上只能依据架构推理:对低频写入、高频扫描的大数据量场景,列式存储优势明显;对需要亚秒级实时索引的交互式搜索,它可能不是最优解。

部署方式:Docker 一条命令,集群另说

快速开始的路径非常短。README 给出的 Docker 命令是:

docker run -d --name openobserve \ -v $PWD/data:/data \ -p 5080:5080 \ -e ZO_ROOT_USER_EMAIL="root@example.com" \ -e ZO_ROOT_USER_PASSWORD="Complexpass#123" \ public.ecr.aws/zinclabs/openobserve:latest

启动后访问 localhost:5080 用环境变量里的账号登录。单二进制部署意味着没有 ZooKeeper、没有多节点协调,本地测试或小规模生产只要一个进程。但 README 也提到集群部署需要参考 High Availability 部署指南,这说明单二进制只是入门形态,真正承载生产流量时仍然要面对分布式系统的复杂度。环境变量 ZO_ROOT_USER_EMAIL 和 ZO_ROOT_USER_PASSWORD 是初始凭证,这一点设计得比很多默认 admin/admin 的方案安全,但也意味着必须显式设置强密码,否则默认值就是公开的。

信号统一:从日志到 LLM 监控,一个平台全收

OpenObserve 的产品线覆盖了可观测性的全部主流信号。日志支持 SQL 查询和可视化查询构建器;追踪基于 OpenTelemetry,提供瀑布图和火焰图;指标可以用 SQL 或 PromQL 查询,内置 19 种以上的图表类型;RUM 监控 Core Web Vitals 和会话回放;AI 可观测性则跟踪 LLM 调用的成本、token 数和延迟。这种统一平台的价值在于关联分析:一条请求从浏览器到后端再到 LLM 的完整链路,可以在一个界面里追踪,不用在多个系统间切换。但这也带来一个风险:每个模块都做到可用,但未必都做到专业级。比如 RUM 的会话回放,功能上能看,但和专职的前端监控工具相比,细节可能不够深。README 没有给出各模块的成熟度说明,所以对关键信号,建议先用小流量验证。

查询语言:SQL 和 PromQL,避开专有语法

OpenObserve 明确支持用 SQL 查询日志和追踪,用 SQL 或 PromQL 查询指标。这是它和 Datadog 这类有专有查询语法的商业产品的一个重要差异。对团队来说,这意味着新成员不需要学一套新语法,现有 SQL 技能可以直接迁移。PromQL 的支持则让 Prometheus 用户能无缝切换。但这里有个隐含的权衡:SQL 查询日志和追踪,本质上是在列式存储上跑分析型查询,而 Elasticsearch 的查询语言(DSL)是为全文搜索设计的。如果你的查询模式是大量全文检索和模糊匹配,SQL 的 LIKE 操作在 Parquet 上的表现可能不如倒排索引。README 没有讨论这个场景,所以如果你的核心需求是全文搜索,需要自己跑基准测试。

Pipelines 和 AI 助手:降低使用门槛,但引入新的学习成本

Pipelines 模块提供了可视化的数据流编辑,可以在写入时做富化、脱敏、降采样和日志转指标,支持 VRL 函数和条件。这解决了日志清洗的常见需求,而且不需要外部工具(比如 Logstash 或 Fluentd)。但 VRL 本身是 Vector 的领域语言,如果团队不熟悉,需要额外学习。O2 AI Assistant 则把自然语言转成 SQL、VRL 和 PromQL,这对降低上手门槛有帮助,但 AI 生成的查询可能不准确,生产环境仍需人工审核。这两个功能都体现了 OpenObserve 想降低复杂度的意图,但也意味着平台本身在功能上不断膨胀,单二进制的大小和内存占用会随之增加。README 没有给出资源占用数据,这一点在选型时需要自行验证。

许可与维护:AGPL-3.0 的双刃剑

OpenObserve 使用 AGPL-3.0 许可。这意味着如果你修改了代码并对外提供服务,需要开源修改后的版本。对于内部使用,AGPL 通常不构成问题,但如果你计划将其作为商业产品的一部分提供给客户,就需要仔细评估合规风险。README 提到了 Enterprise Edition,说明存在商业版本,但具体功能边界没有在 README 中说明。维护方面,仓库最近有活跃的发布记录,v1.0.0-rc1 在 2026 年 8 月发布,说明项目处于正式版前夕。但 v1.0.0-rc1 也暗示 API 和功能可能还有变动,升级成本在正式版发布前会比较高。建议在采用前,先查看 CHANGELOG 或升级文档,了解从 v0.92.x 到 v1.0.0 的破坏性变更。

替代方案:Elasticsearch 与 Loki 的路线差异

和 OpenObserve 最直接的对比是 Elasticsearch。Elasticsearch 用倒排索引,支持全文搜索和实时写入,但存储成本高、集群运维复杂。OpenObserve 用列式存储加对象存储,成本低但查询模式不同。另一个值得对比的是 Grafana Loki,它同样基于对象存储,但采用索引与日志分离的架构,查询能力比 OpenObserve 弱,但更轻量。Loki 的查询语言是 LogQL,而 OpenObserve 用 SQL,两者有本质区别。如果你的团队已经重度使用 Grafana,Loki 可能更顺滑;如果你需要 SQL 查询和统一信号面板,OpenObserve 更合适。这个对比不是谁优谁劣,而是查询模式和数据规模的匹配问题。

编辑结论

OpenObserve 适合那些已经接受 OpenTelemetry 标准、希望用对象存储替代本地磁盘索引、并且愿意接受 AGPL-3.0 约束的团队。它不适合需要闭源集成、依赖 Elasticsearch 既有查询生态、或者对数据主权有严格合规要求且无法自托管的企业。在采用前,你应当先验证三件事:一是用你自己的日志样本跑一遍 SQL 查询,确认 Parquet 列式存储在典型过滤条件下的延迟是否可接受;二是确认你的 S3 兼容存储(如 MinIO)的吞吐能支撑写入峰值,因为 README 没有给出压力测试数据;三是检查 AGPL 许可对内部工具分发的限制,必要时咨询法务。若这些条件满足,OpenObserve 的单二进制部署和统一信号面板确实能把运维成本压到很低的水平。

官方来源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社区笔记

社区笔记