Agent 与数据运维

用在排障和日常操作上的几个真实场景

Posted by shichaofaan on January 14, 2026

最近团队里开始把 Agent 接进数据开发和运维流程。不是替代值班,而是把一些重复、可检索、规则清晰的活先丢给它。下面几个场景都是已经跑过的,附带边界:哪些能交给 Agent,哪些必须人拍板。

以前的流程:电话响 → 打开 WebUI → 看 Lag、Checkpoint、BackPressure → 翻最近发布记录。熟练的人 10 分钟能定位大方向,生疏的人容易在页面之间打转。

现在告警回调会带上 Job 名、消费组、最近 30 分钟指标摘要。Agent 侧固定执行一套检查脚本(只读):

1. 拉 Kafka consumer group lag(按分区)
2. 拉 Flink REST:job status、checkpoint 最近几次时长/大小
3. 拉关键算子 busy / backPressured 时间
4. 查该 Job 近 24h 发布单与配置变更
5. 输出:可疑方向 + 已执行的只读命令结果 + 建议的下一步

一次具体例子:
晚上 flink_order_wide 延迟告警。Agent 回报:Lag 集中在 3 个分区;Source 背压高;维表 Join 算子 busy 打满;对应维表服务 P99 从 15ms 升到 300ms+。结论倾向「外部维表变慢」,建议先看维表,而不是加 Flink 并行度。

值班同学按这个方向查,五分钟确认是维表扩容滚动导致。Agent 没有改任何配置,只是把第一轮排查缩短了。

约定很重要:Agent 默认只读。改并行度、停作业、重置位点必须人工确认。

场景二:从报错日志生成「可能原因」而不是直接改代码

CDC 作业报 binlog checksum mismatch 这类低频错误时,很多人第一反应是重启。我们把历史故障复盘(含 binlog 损坏那次)做成内部文档,Agent 检索后会优先提示:

- 检查主从复制是否卡在同一 binlog position
- 不要连续自动重启撞坏位点
- 联系 DBA 校验 binlog,评估切文件 + 窗口补数

有一次新同学值班,Agent 把「先别 reset offset」写进建议,避免了一次潜在丢数。这类价值不在「会写 Flink SQL」,而在把已有事故经验叫到事发现场。

场景三:批任务参数与倾斜排查辅助

Spark 批作业某天跑到 90% 卡住。把 Stage 的 task 时长分布、shuffle read 大小贴给 Agent(或由采集器自动附上),让它按清单提问:

- 是否存在少数 task 的 shuffle read 远高于中位数?
- join/groupBy 的 key 是否可能是 null、默认值、热点商家?
- 当前有没有 AQE、salting、两阶段聚合?

它给出的是排查路径,不是玄学调参。我们实际用它生成过一段「按 key 抽样统计频率」的 Spark SQL,跑完确认是 shop_id=0 占了 18% 的数据。后面人工做了盐值和过滤默认值,任务从 4 小时降到 70 分钟。

注意:生成的 SQL / 配置都要进代码评审,不能作业上直接替你提交。

场景四:日常「说明书式」操作

比如新环境起一条 Kafka → Flink → Paimon 链路,步骤固定但容易漏:

  • topic 分区数、副本、保留时间
  • 消费组命名规范
  • checkpoint 目录与权限
  • Paimon 主键与 bucket
  • 监控指标挂载

把这些写成可执行检查单,Agent 按环境变量生成「待确认清单 + 配置草稿」。人负责改业务字段和上线。比从零抄旧任务少漏项。

不适合交给 Agent 的事

结合踩过的坑,这几类先排除:

  1. 生产位点重置、删 topic、丢 savepoint
    不可逆操作,必须人工 + 双人复核。
  2. 对账口径拍板
    财务口径、是否允许近似去重,属于业务决策。
  3. 无观测数据时的瞎猜
    没有 Lag、没有日志、没有发布记录,只让它「感觉是什么问题」,容易带偏。
  4. 直接改线上配置
    可以出变更草案,执行走原有发布系统。

落地时比较管用的做法

  1. 工具化先于对话
    把查 Lag、查 Checkpoint 做成稳定 CLI / API,Agent 调工具,而不是让它凭记忆编端口。
  2. 输出要带证据
    要求回复附命令结果摘要,避免空泛「可能是网络抖动」。
  3. 和现有 Oncall 流程接在一起
    告警 → Agent 初检 → 人确认 → 变更单,而不是另起一套聊天群。
  4. 把复盘写进知识库
    Agent 强依赖文档质量;事故复盘不写清楚,它就帮不上第二次。

小结

Agent 在数据运维里,现阶段最稳的定位是:只读排查助手 + 检查单生成器 + 历史事故检索。
它能缩短「从告警到找到正确方向」的时间,但不能替你承担丢数和误重置的责任。

若团队要试点,建议先做一件事:选一个 Flink 延迟告警,接上只读指标工具,强制人工确认才允许变更。跑两周看误报和漏判,再决定扩到 Spark 批任务或 CDC 故障。