Apache OzHera 介绍与架构概览

Apache OzHera 介绍与架构概览:小米捐献的云原生 APM 应用观测平台(孵化中),以应用为中心整合指标监控、链路追踪、日志与告警,宣称 1 分钟发现、5 分钟定位;覆盖版本现状、仓库模块与部署依赖清单,信息核实于 2026-10-15,本文不含部署实操。

Apache OzHeraOzHeraApacheAPM云原生2026/10/15

Apache OzHera 介绍与架构概览

目标:介绍 Apache OzHera(Incubating)——由小米捐献、正在 Apache 软件基金会孵化器孵化的云原生 APM 应用观测平台,帮助读者在动手部署之前建立对项目定位、架构模块、版本现状与部署依赖的整体认知。 覆盖范围:项目定位与孵化状态、最新 release 现状、仓库模块组成、部署依赖清单、语言构成与社区活跃度。 信息核实边界:官方孵化信息、官网、GitHub 仓库与 GitHub API、官方部署文档均于 2026-10-15 在 Ubuntu 22.04 环境核实抓取;本文为纯调研文档,未包含任何部署实操,部署细节以官方文档为准。

一、信息来源与核实边界

  • 核实日期:2026-10-15;核实环境:Ubuntu 22.04(x86_64),经网络抓取官方公开信息。
  • 信息来源清单:
来源地址说明
官网https://ozhera.apache.org项目定位、能力宣称、孵化声明
GitHub 官方仓库https://github.com/apache/ozheraREADME、模块目录、活跃度
GitHub APIreleases/latest、顶层目录 contents、仓库元数据、languages版本、模块、语言构成的机器可读数据
官方部署文档master 分支 readme/deploy/ozhera-deploy-document.md部署方式与依赖组件清单
  • 核实说明与勘误:
    • projects.apache.org 的 OzHera 项目页为 JS 动态渲染页,直接抓取仅有加载器、无静态数据,项目事实以官网与 GitHub 官方仓库为准;
    • GitHub 仓库名为 apache/ozhera(master 分支);apache/incubator-ozhera 实测返回 404,检索资料时请认准前者;
    • 实测边界:本文只做调研核实,未在任何环境执行部署,原因见第四章第三节。

二、定位与孵化状态

2.1 项目定位(官方原文)

GitHub 仓库 README(2026-10-15 抓取):

"Apache OzHera(Incubating): Application Observable Platform in the Cloud Native Era"

"Apache OzHera(Incubating) is an Application Observable Platform in the Cloud Native Era. Centered around applications, it integrates metrics monitoring, link tracing, logging, and alerts."

官网首页(https://ozhera.apache.org ):

"Apache OzHera(Incubating) is an Application Performance Monitoring (APM) platform designed for the cloud-native era. It revolves around applications and integrates capabilities such as metric monitoring, distributed tracing, logging, and alerting. ... enable businesses to detect and locate issues within 1 minute and 5 minutes, respectively, when problems occur."

"It has undergone numerous stress tests at Xiaomi, handling over 1 PB of raw data daily."

拆解这段定位,得到五个关键词:

  • 云原生 APM / 应用观测平台:官方同时使用 APM(Application Performance Monitoring)与 Application Observable Platform 两种表述,本质一致——面向云原生时代的应用性能监控与观测;
  • 以应用为中心:四类可观测能力不是并列的独立工具,而是围绕"应用"这一核心对象整合;
  • 告警-指标-链路-日志打通:基于 traceId 串联四类数据,形成从发现问题到定位根因的排查闭环;
  • 效率宣称:官方宣称问题发生时「1 分钟发现(detect)、5 分钟定位(locate)」;
  • 大规模验证:官网明确其在小米内部经历大量压测,日均处理超过 1 PB 原始数据("undergone numerous stress tests at Xiaomi, handling over 1 PB of raw data daily")。

四类能力与排查闭环的关系可概括为:

能力在闭环中的角色
告警第一环:发现问题(宣称 1 分钟内)
指标监控判断问题影响面与趋势
分布式链路追踪顺 traceId 找到慢/错调用路径(宣称 5 分钟内定位)
日志在定位到的调用点查看细节、确认根因

2.2 孵化状态(必须知晓)

  • OzHera 目前仍在 Apache 孵化器孵化中(Incubating):README 标题与官网项目名称均带 "(Incubating)" 后缀;
  • 官网页脚原文:"Apache OzHera (Incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator."
  • 孵化期项目的常规注意事项适用于本项目:发布物带 -incubating 后缀并随附 DISCLAIMER;架构、API 与部署形态可能随版本迭代调整;评估选型时应把这些因素纳入考量。

2.3 版本现状(GitHub Releases 实测)

GitHub API releases/latest 实测输出(2026-10-15):

{"tag_name": "v2.2.6-incubating", "name": "v2.2.6-incubating", "published_at": "2026-06-17T08:12:28Z"}

Releases 页版本列表(完整):

版本说明
v2.2.6-incubating最新版,发布于 2026-06-17;官方说明为"focuses on release compliance fixes, dependency cleanup, documentation updates, and stability improvements"(聚焦发布合规修复、依赖清理、文档更新与稳定性改进)
v2.2.5-incubating首个带 -incubating 后缀的版本
OzHera-2.2.1 / OzHera-2.2.0此前版本号格式(OzHera-x.y.z,无后缀)
OzHera-2.1.2 / OzHera-2.1.1 / OzHera-2.1.0 / OzHera-2.0.0 / OzHera-0.1.0历史版本

要点:

  • 最新 release 为 v2.2.6-incubating(2026-06-17),官方发布物下载地址:https://downloads.apache.org/incubator/ozhera/2.2.6-incubating/
  • 从 v2.2.5 起版本号改用 -incubating 后缀——版本迭代已到 2.x,说明项目代码成熟度不低,但进入 Apache 孵化发布流程相对较晚;
  • 跟踪版本请以主仓 Releases 页与 downloads.apache.org 发布目录为准。

三、架构与模块组成

3.1 仓库模块清单(以仓库实际目录为准)

GitHub API 仓库顶层目录实测(2026-10-15),按职责整理主要模块如下:

模块目录职责
ozhera-operatorK8s operator 部署器(平台的部署入口,详见第四章)
ozhera-app应用管理
ozhera-log日志
ozhera-metrics-all指标
ozhera-monitor监控
ozhera-prometheus-agentPrometheus 采集 agent
ozhera-tspandatatrace span 数据
trace-etl链路 ETL(含 trace-etl-es / trace-etl-manager 两个子模块)
ozhera-webhook告警 webhook
ozhera-intelligenceAI 能力
ozhera-demo-client / ozhera-demo-server接入示例(demo 应用)

勘误提示:部分二手资料出现的 "hera-admin / hera-agent / hera-prometheus / hera-web / datax" 等命名与仓库实际不符——仓库中没有 hera-* 前缀模块,实际为 ozhera-* 与 trace-etl 的模块划分。本文以仓库目录为准。

仓库同时带有标准 ASF 项目文件:LICENSE、NOTICE、DISCLAIMER(孵化项目必备)、CONTRIBUTING.md(含中文版)、README_CN.md 等。

3.2 官网宣称的集成对象

官网给出的生态集成对象:OpenTelemetry、Grafana、Prometheus、Elasticsearch、CAdvisor;链路数据遵循 OpenTracing 标准。这组集成对象与第四章的部署依赖清单相互印证:指标侧围绕 Prometheus 生态(Prometheus + Grafana + Alertmanager),存储侧用 Elasticsearch,采集侧有 prometheus-agent 与 OpenTelemetry 接入。

3.3 语言构成与社区活跃度(GitHub API 实测)

仓库元数据实测输出(2026-10-15):

{"full_name": "apache/ozhera", "stargazers_count": 124, "forks_count": 46,
 "language": "Java", "license": "Apache License 2.0", "archived": false,
 "pushed_at": "2026-10-12T06:37:16Z", "created_at": "2023-09-08T09:43:53Z",
 "default_branch": "master"}

语言构成实测(主仓 languages 接口,按字节数归纳):

  • 主体是 Java:约 6,527,222 字节(约 653 万字节);
  • FreeMarker 模板次之:约 1,132,011 字节(约 113 万字节);
  • 其余为少量构建脚本与页面文件(Shell、HTML 等),占比极低。

解读(写作口径从严):

  • 技能储备按「Java 技术栈为主」准备,配合模板与脚本的基础阅读能力即可;
  • 主仓语言统计中未体现 Go——「Java/Go」的常见说法未获主仓统计支持(不排除子模块或构建期产物的可能),稳妥表述为「Java 为主」;
  • License:Apache-2.0;仓库未被归档(archived: false);
  • 规模与活跃度:124 stars / 46 forks;仓库创建于 2023-09-08;最近一次 push 为 2026-10-12(核实日前 3 天),项目处于活跃维护状态。

四、部署要求与依赖清单(以官方文档为准)

4.1 部署方式:K8s operator(CRD)一键编排

官方部署文档(master 分支 readme/deploy/ozhera-deploy-document.md)原文要点:

"The purpose of the Apache OzHera(Incubating) operator is to launch an OzHera platform in a specified namespace in the k8s cluster."

"Apache OzHera(Incubating) is an enterprise-level observability platform with a very high complexity during deployment."

部署主线为 kubectl 三连:

  1. kubectl apply -f ozhera_operator_auth.yaml(operator 授权);
  2. 应用 CRD yaml;
  3. 部署 operator。

operator 服务端口为 7001,需经 LoadBalancer 或 NodePort 暴露;之后在其 Web 页面(ozhera-op-nginx 服务)逐项配置各依赖组件。官方文档未标注具体 K8s 版本号,仅要求使用者具备 PV/PVC/Service/Pod/Deployment/DaemonSet 等 Kubernetes 基础知识。

4.2 依赖组件清单

部署文档逐节列出的依赖组件如下(各组件均支持「operator 自动创建」或「外接已有实例」二选一):

组件用途 / 备注(文档原文要点)
MySQL存 ozhera 元数据;自动建需主机目录 /opt/ozhera_pv/ozhera_mysql;建表 SQL 位于 operator 源码 resources/ozhera_init/mysql/sql
Elasticsearchlog/trace 存储;需创建索引模板(ESIndexConst)
RocketMQtrace/log 数据管道;operator 自动创建所需 topics
Redis部署文档单列 "OzHera-redis" 章节
Nacos集群内配置与注册中心;外接自备时需 Nacos 1.x
Prometheus指标存储;自动建需主机目录 /home/work/prometheus_ozhera_namespace_pv
Alertmanager告警;PV 目录 /home/work/alertmanager_ozhera_namespace_pv
Grafana看板;PV 目录 /home/work/grafana_ozhera_namespace_pv
Node-exporter主机指标采集,默认 hostPort 9101
cAdvisor运行实例资源指标采集,默认 hostPort 5195
trace-etl-es以 StatefulSet 形态部署;需 /home/work/rocksdb 目录;副本数需与 RocketMQ trace 队列数匹配
trace-etl-managertrace ETL 管理

要点提示:

  • 指标存储侧官方文档只写 Prometheus(配合 prometheus-agent、Grafana、Alertmanager),文档中未见 VictoriaMetrics 字样;
  • 依赖面较宽:MySQL / Elasticsearch / RocketMQ / Redis / Nacos / Prometheus / Alertmanager / Grafana / Node-exporter / cAdvisor 等,其中 Nacos 明确要求 1.x;
  • 官网 Quick Start 入口:https://ozhera.apache.org/en/guide/quick-start.html

4.3 本文实测边界声明

⚠️ 诚实边界:截至成稿(2026-10-15),本文仅完成官方信息的调研核实(定位、版本、模块、部署依赖、活跃度),未在任何环境执行 OzHera 的部署实操。官方部署文档自述其「部署复杂度非常高」(very high complexity during deployment):依赖组件多、需要 Ready 的 K8s 环境与多处主机 PV 目录;在未满足这些前提的环境下得出的「实测」结论不可靠。部署环节的步骤细节、资源配额与排障请以官方部署文档与 Quick Start 为准,本文不做转述性「实测」结论。

如需继续部署实操,推荐路径:阅读官网 Quick Start → 准备具备 PV/PVC 等基础能力的 K8s 环境 → 按 4.1 节 kubectl 三连部署 operator → 在 operator Web 页面逐项配置 4.2 节的依赖组件 → 参考 ozhera-demo-client / ozhera-demo-server 示例接入应用。

五、适用场景与局限

适用场景:

  • 云原生(Kubernetes)环境下,需要以应用为中心的一站式可观测平台(指标 + 链路 + 日志 + 告警)的团队;
  • 希望基于 traceId 打通「告警 → 指标 → 链路 → 日志」排查链路、压缩平均故障定位时间(官方宣称 1 分钟发现、5 分钟定位)的业务;
  • 数据规模较大、关注平台吞吐上限的组织——官网给出小米内部日均 1PB+ 原始数据的压测背景,可作为量级参考;
  • 已有 Prometheus / Grafana / Elasticsearch / RocketMQ 等周边组件、希望复用既有设施的团队(4.2 节清单支持外接模式)。

局限与注意事项:

  • 仍在孵化中:尚未获得 ASF 完全背书,发布物带 -incubating 后缀,API 与部署形态可能随版本迭代调整;
  • 部署复杂度高:官方自述部署复杂度非常高,依赖清单长,且含有版本约束组件(Nacos 需 1.x)、主机目录 PV 与 StatefulSet 等要求,适合具备 Kubernetes 运维能力的团队;
  • 社区规模尚小:124 stars / 46 forks(2026-10-15 实测),社区资料与第三方教程有限,遇到问题主要依赖官方文档与仓库 issue;
  • Java 技术栈为主:平台自身以 Java 实现(另有 FreeMarker 模板等),接入与二次开发的技能储备按 Java 生态准备;
  • 本文未覆盖部署实测,实际资源消耗与运维成本需以官方文档与自行验证为准。

六、常见问题

Q1:GitHub 上搜 incubator-ozhera 打不开? 正常——该仓库不存在(实测返回 404)。正确仓库是 apache/ozhera(master 分支)。

Q2:projects.apache.org 的 OzHera 页面为什么抓不到内容? 该页面为 JS 动态渲染,直接抓取只有加载器、无静态数据。项目信息以官网 https://ozhera.apache.org 与 GitHub 仓库为准。

Q3:OzHera 是什么定位?和通用可观测平台有什么差别? 官方定位是「云原生时代的 APM / 应用观测平台」,特点是以应用为中心整合指标监控、分布式链路追踪、日志与告警,并用 traceId 打通四类数据形成排查闭环,而非四套独立工具的拼装。

Q4:指标存储用 Prometheus 还是 VictoriaMetrics? 官方部署文档只写 Prometheus(配合 prometheus-agent、Grafana、Alertmanager),文档中未见 VictoriaMetrics 字样。

Q5:Nacos 有什么版本要求? 外接自备 Nacos 时,官方部署文档明确要求 Nacos 1.x。

Q6:最新版本从哪里下载? v2.2.6-incubating 的官方发布物在 https://downloads.apache.org/incubator/ozhera/2.2.6-incubating/ ,版本信息以 GitHub Releases 页为准。

Q7:项目还活跃吗? 活跃。仓库最近一次 push 为 2026-10-12(核实日前 3 天),最新 release 发布于 2026-06-17。

Q8:本文为什么不包含部署实操? 官方部署文档自述部署复杂度非常高,依赖组件多、对 K8s 环境要求重;在未满足官方前提的环境下得出的「实测」结论不可靠,故本文明确以调研为边界,部署请遵循官方文档与 Quick Start。

参考链接