跳到主要内容

管理后台使用说明:数据流功能

本文面向实施维护人员,说明如何在 ONES 管理后台查看数据流状态、定位链路问题,并按需使用重建功能。

管理后台打开方式请参考:打开管理后台

1. 功能说明

数据流 页面用于查看业务数据从上游数据库、消息链路到下游服务的处理状态。

当前页面主要关注:

  • Index:搜索索引链路。
  • Report:报表数据链路。
  • Audit log:审计日志链路。

页面可以帮助实施维护人员判断:

  • 数据流是否正常。
  • 哪条链路需要关注。
  • 问题更可能出现在上游、消费服务还是下游写入。
  • 是否需要执行数据流重建。

注意:

  • 数据流页面用于观察和辅助排查,不会自动修复问题。
  • Rebuild 会消耗系统资源,生产环境应在业务低峰或维护窗口操作。
  • 如果上游 MySQL、Kafka Connect 或监控采集本身异常,应先处理上游问题,再考虑重建。

2. 使用前准备

使用数据流功能前,需要确认 MySQL 状态服务已打开。

config/private.yaml 中配置:

mysqlStatusServerEnable: 'true'

配置后执行:

./ones-ai-k8s.sh
make setup-ones

验证方式:

kubectl -n ones get deploy mysql-status-server-deployment
kubectl -n ones get endpoints mysql-status-server-service
kubectl -n ones-installer exec deploy/installer-api -- curl http://mysql-status-server-service.ones/status

正常情况下:

  • mysql-status-server-deployment1/1
  • mysql-status-server-service 有 endpoints。
  • /status 返回 healthy: true

如果没有打开 mysqlStatusServerEnable,数据流页面可能显示 Observation failed,因为管理后台无法确认 MySQL 上游状态。

3. 登录和入口

浏览器访问:

http://<管理后台访问地址>/ones-admin/

登录成功后,左侧菜单点击 数据流

如果需要使用英文界面查看或截图,可以访问:

http://<管理后台访问地址>/ones-admin/?locale=en-US#/dataflows

页面示例:

Data flows list

示例中 ReportNormal。如果 Index 显示 Rebuilding,通常表示后台重建任务仍在推进观察版本,不等同于链路异常。Audit log 显示 Not enabled 时,说明操作日志业务未启用或组织级状态未打开。

4. 查看数据流列表

进入 数据流 页面后,先看列表。

重点查看:

  • Data flow:数据流名称,例如 Index、Report、Audit log。
  • Current status:当前状态。
  • Downstream diagnosis:页面给出的诊断结论。
  • Recent signal:最近观察到的信号或异常原因。
  • Action:查看详情或执行重建。

常见状态说明:

  • Normal:当前观察结果正常。
  • Delay:存在延迟,需要关注消费积压或写入速度。
  • Error:链路存在明确异常,需要排查。
  • Observation failed:管理后台没有拿到完整观察数据,通常要先检查监控采集、MySQL 或 Kafka Connect。
  • Not enabled:该功能未启用,例如现场没有开启审计日志。

建议处理顺序:

  1. 先看是否有 ErrorObservation failed
  2. 再看是否有 Delay
  3. 对异常链路点击 View details 查看详情。
  4. 不要直接把重建当作第一步,先确认上游服务和监控采集是否正常。

5. 查看详情定位问题

在列表中点击对应数据流的 View details

详情页会展示:

  • 当前诊断结论。
  • 推荐处理动作。
  • 数据路径中的关键节点。
  • 每个节点的状态和指标。
  • 延迟趋势。
  • 历史重建任务。

Report 健康详情示例:

Report detail

排查时建议按页面顺序看:

  1. 先看顶部诊断结论,例如 Upstream error
  2. 再看 Current recommendation,按推荐动作检查对应服务。
  3. Data path 中逐个查看 MySQL、Kafka Connect、消费服务等节点。
  4. 如果某个节点显示异常,优先排查该节点。
  5. 如果页面显示 Observation failed,优先确认 mysqlStatusServerEnable 已打开,并检查 MySQL 状态服务和监控数据是否正常。

6. 查看延迟趋势和历史任务

在详情页继续向下查看 Lag trendHistorical tasks

Report metrics and history

Lag trend 用于观察消费积压趋势:

  • 当前值持续升高:说明下游消费可能跟不上。
  • 当前值逐步下降:说明积压正在恢复。
  • 曲线没有数据:可能是该指标未采集到,或当前链路没有对应指标。

Historical tasks 用于查看历史重建记录:

  • Start time:任务开始时间。
  • Result:执行结果。
  • Triggered by:触发人。
  • Rebuild scope:本次重建范围。
  • Total duration:总耗时。
  • Action:查看任务详情。

如果历史任务为空,说明当前环境还没有执行过该数据流的重建任务。

7. 使用重建功能

在数据流列表中,如果某条数据流支持重建,页面会显示 Rebuild

点击 Rebuild 后,会打开重建抽屉:

Rebuild drawer

操作步骤:

  1. 确认要重建的数据流是否正确。
  2. 选择本次需要重建的表或表分组。
  3. 确认业务低峰或维护窗口。
  4. 点击 Confirm start 开始重建。
  5. 返回详情页,在历史任务或当前任务中查看进度。

注意:

  • 不要在业务高峰期随意重建。
  • 不要短时间内重复触发同一条数据流的重建。
  • 如果上游服务仍然异常,重建可能无法解决问题。
  • 如果不确定要选哪些表,建议先联系产品支持或研发确认范围。
  • 执行重建前,建议记录当前异常现象、数据流状态和操作时间,便于后续追踪。

7.1 实际执行示例:Index 重建

本次在当前测试环境实际执行了一次 Index 数据流重建,验证流程如下。

执行范围:

  • 数据流:Index
  • 选择表:project.team
  • 必选表:project.resource
  • 任务 ID:rb_index_1782198274310225509
  • 接口结果:status = success
  • 页面结果:Result = Done
  • 开始时间:2026-06-23 15:04:34

选择范围时,页面会显示已选分组和已选表数量。本次示例中只选择 project.team,同时保留 Others 中不可取消的 project.resource

Rebuild selected tables

点击 Confirm start 后,页面会进入重建任务页。实施维护人员重点看:

  • Task ID:确认当前查看的是刚触发的任务。
  • Rebuild scope:确认重建范围是否正确。
  • Target version / Current observed version:观察版本推进。
  • Table-level progress:观察表级进度。

Rebuild running

任务完成后,返回数据流详情页,滚动到 Historical tasks。当 Result 显示 Done,且 Rebuild scope 是本次选择的表,说明任务已经完成。

Rebuild done in history

注意:

  • Others 分组如果显示为不可取消,说明它是必选表,执行时必须保留。
  • 重建过程中不要重复点击 Start rebuild,同一条数据流同一时间只允许一个重建任务。
  • 页面短时间内可能仍显示运行时观测信息,最终是否完成以历史任务 Result = Done 或任务接口 status = success 为准。
  • 如果结果为 Failed,点击 View details 查看失败信息和日志,再结合相关服务日志继续排查。

8. 异常处理建议

数据流异常不要直接重建,先按页面诊断定位异常位置。

建议处理顺序:

  1. 先看列表页状态:Observation failedErrorDelayNot enabledRebuilding
  2. 点击 View details,查看顶部诊断和 Current recommendation
  3. Data path 中找到异常节点,例如 MySQL、Kafka Connect、下游消费服务或写入侧。
  4. 先恢复异常节点,再观察数据流状态是否恢复。
  5. 只有在上游和下游服务都正常,但数据仍需要补齐时,再考虑执行 Rebuild

常见处理方式:

  • Observation failed:优先确认 mysqlStatusServerEnable: 'true' 已生效,mysql-status-server-service 有 endpoints,并且 installer-api 容器内可以访问 /status。然后检查 Kafka Connect、监控采集和 installer-api 日志。
  • Error:进入详情页看异常节点。如果 MySQL 或 Kafka Connect 异常,先恢复共同来源链路;如果下游消费服务异常,检查对应 deployment、pod 日志和消费组状态。
  • Delay:重点看消费积压是否持续升高。持续升高时检查消费者实例、资源压力、Kafka lag 和写入目标服务。
  • Rebuilding:表示有重建任务正在执行或观察版本还在推进。不要重复触发重建,进入 View rebuild 查看当前任务。
  • Audit logNot enabled:如果现场不需要操作日志,这是正常状态;如果需要操作日志,进入 ONES 系统 - 配置中心,搜索并开启 enableAuditLog,再确认组织级操作日志状态已打开。开启后检查 binlog-event-syncaudit-log-sync 和 ClickHouse 中 audit_log 相关表是否正常。

排查时建议记录:

  • 数据流名称。
  • 当前状态和诊断文案。
  • 异常节点。
  • 最近观察时间。
  • 是否刚执行过重建。
  • 相关服务日志或监控截图。

9. 常见问题

页面显示 Observation failed

常见原因:

  • mysqlStatusServerEnable 没有打开,导致管理后台无法访问 mysql-status-server-service
  • MySQL 监控数据没有采集到。
  • Kafka Connect 状态无法确认。
  • 下游消费服务指标无法查询。
  • installer-api 或监控查询链路异常。

建议先确认 mysqlStatusServerEnable: 'true' 已配置并执行过 make setup-ones,再检查监控功能和对应服务状态,最后判断是否需要重建。

Audit log 显示 Not enabled

通常表示当前环境没有开启操作日志/审计日志功能,或组织级操作日志状态未打开。如果现场不使用操作日志,这是正常状态。

如果现场需要使用操作日志:

  1. 进入 ONES 系统 - 配置中心
  2. 搜索并开启 enableAuditLog
  3. 确认组织级操作日志状态已打开。
  4. 检查 binlog-event-syncaudit-log-sync 是否正常运行。
  5. 回到管理后台数据流页面,确认 Audit log 不再是 Not enabled

点击 View details 后仍看不出原因

可以先记录:

  • 数据流名称。
  • 当前状态。
  • 页面顶部诊断结论。
  • Data path 中异常的节点。
  • 最近观察时间。

然后结合服务日志、监控页面和巡检结果继续排查。

重建按钮看不到

可能原因:

  • 当前数据流不支持重建。
  • 当前账号没有操作权限。
  • 数据流处于不允许触发重建的状态。

以页面实际显示为准。

重建后数据仍异常

常见原因:

  • 上游数据源仍异常。
  • 消费服务仍有错误。
  • 监控采集仍然失败。
  • 重建范围不完整。

建议回到详情页重新查看诊断结论和数据路径,不要连续重复重建。