技术博客

阅读约 8 分钟

SkyWalking 如何平滑过渡到 DataBuff

生产全是 SkyWalking Agent,能不能先试 DataBuff 别一把切换?用 databuff-proxy 在原 OAP 宿主机占住 :11800 双写,业务零重启,对照满意后管理页关 SW 写入。

七月那篇《SkyWalking 也能 AI 智能化了》发完,后台最高频的留言是:

「我们生产全是 SkyWalking Agent,能不能先试 DataBuff,别一把切换?」

可以,而且值得试。SkyWalking 把链路采上来这件事本来就很成熟;DataBuff 做的是在同一份 Segment 数据上,补上 AI 问数、多专家诊断、服务流 / 调用分析这些值班里天天会用的能力。

最省心的路径:业务完全不用动,只动平台侧。
  • 业务侧 — Agent jar 不换、collector.backend_service 不改、Pod 不滚动重启,继续连原来的 oap-host:11800
  • 平台侧 — 在原 SkyWalking OAP 宿主机部署 databuff-proxy,让它占住 :11800,OAP 改绑到新端口;proxy 把同一批 Trace 对称抄送到 OAP 和 DataBuff。
  • 对照期 — 两路 UI 并排看,满意了管理页关 SkyWalking 写入即可。
并排对照:多出来的主要是 AI 和调用链纵深

下面是在同一套 Demo 业务上,把 SkyWalking 和 DataBuff 并排跑出来的对照。拓扑、Trace、日志这些基础能力两边都有;值得你并跑体验的,主要是下面两类增量。

7 大 AI 能力(同环境实测 · SW 10.4.0 vs DataBuff v0.1.4)

能力SkyWalkingDataBuff
自然语言问系统✅ 中文问服务 / 拓扑 / 异常
多 Agent 协同✅ 多专家并行取证
一句话巡检报告✅ 带证据与处置建议
根因取证链✅ Trace / 指标 / 拓扑拼证据
受控修复✅ 策略 + 人工授权
容量 / 趋势✅ 事前预判
产品答疑 + MCP / Skill✅ 可扩展数字专家
DataBuff 7 大 AI 能力
DataBuff AI 首页:问数、巡检、多专家等入口,接上 SW Agent 后即可体验

APM 能力(同环境实测 · 源自 compare-vs-skywalking)

能力项SkyWalkingDataBuff
全局拓扑✅ 含中间件节点✅ 健康色标 + 下钻
服务列表 / 黄金指标✅ Apdex / 延迟 / 负载✅ 服务曲线 + 列表
服务级拓扑
服务级调用分析 + 关联 Trace✅ 上下游结构,一键落到 Trace
实例级黄金指标✅ 负载 / 延迟 / 成功率✅ 实例曲线 + 列表
实例级拓扑✅ 独立实例拓扑
实例级调用分析 + 关联 Trace✅ 按实例看上下游,落到 Trace
接口级拓扑✅ 独立接口拓扑
接口级调用分析 + 关联 Trace✅ 按接口看调用方 / 被调,落到 Trace
服务流(入口响应贡献度)✅ 按入口展开,支持服务 / 接口级链路
数据库 / 缓存 / MQ / 外部调用✅ Dashboard / 中间件大盘✅ 独立专页 + 关联 Trace
错误分析✅ 统计 + 接口级下钻
Trace 列表 / 搜索✅ 服务 / 端点 / 状态 / 耗时✅ 图表 + 列表,多维过滤
Trace 详情✅ Span 时间轴 / Tags✅ 瀑布图 + Span 属性
Trace ↔ 日志✅ Span 可关联日志✅ Trace / Span 日志 Tab
日志列表 / 搜索
日志 → Trace✅ 可跳到 Trace✅ 可落到具体 Span
Profiling(Tracing / AsyncProfiler / eBPF)✅ 三类均支持
可定制仪表盘 / 中间件大盘✅ 内置多 Layer Dashboard
告警配置与事件多靠 OAP YAML / hooks✅ 告警中心 + 智能告警 + 回钻 APM
SkyWalking Agent✅ 原生✅ 兼容 gRPC :11800
SkyWalking 全局拓扑
SkyWalking 全局拓扑
DataBuff 全局拓扑
DataBuff 全局拓扑 + 健康色标
DataBuff 服务级调用分析
DataBuff 服务级调用分析:上下游指标可直接关联 Trace

口径:同一套 Demo 业务上并排对照。拓扑、Trace、日志两边都有;DataBuff 额外强在 AI、服务流 / 调用分析、告警中心。已有 SkyWalking 的团队,常见做法是 Agent 不动,先并跑体验。

并跑的价值:采集层继续用熟了的 SkyWalking Agent,业务零感知;平台侧接上 proxy 后,在 DataBuff 里先把问数、巡检、服务流跑通——同一批流量,零赌一把切换。
平滑过渡:databuff-proxy 双写

要让同一批 Agent 上报同时进 OAP 和 DataBuff,用 databuff-proxy:Go 写的 gRPC fan-out sidecar,监听 Agent 原本就连的 OAP 地址 :11800,Trace / JVM / Log 对称抄送到两个后端,不做协议转换。

关键思路:不是让业务改 collector.backend_service 去连 proxy,而是在 OAP 宿主机上让 proxy 占住 :11800,把 OAP 挪到别的端口。Agent 配置不动,流量自然双写。
业务集群(Agent 仍指向 oap-host:11800,无需改配置、无需重启)
      │
      ▼
【OAP 原宿主机】databuff-proxy  :11800   ← 接管原 OAP 端口
      ├──→ SkyWalking OAP  :新端口(如宿主机 21800)
      └──→ DataBuff Ingest :11800
proxy 管理页
管理页:秒关某路写入,近 30 分钟看成功 / 失败 / 丢弃曲线

四步上手(只动平台侧,业务零重启):

  1. 在 OAP 宿主机部署 proxy — Releases 解压到本机,先写好 config.yamlskywalking 填 OAP 迁走后的地址(如 127.0.0.1:21800),databuff 填 DataBuff Ingest 地址,两路 enabled: true
  2. 让 OAP 改绑端口、释放 11800 — 例:docker-compose 把 OAP 映射从 11800:11800 改为 21800:11800,recreate 后确认 OAP 在新端口健康。
  3. 启动 proxy 监听 :11800./start.sh,浏览器打开管理页(默认 :9090),确认双后端 healthz 正常。
  4. 业务不用动 — Agent 仍连原来的 oap-host:11800,此时已是 proxy;同一批 Trace 自动进 OAP + DataBuff,无需改 ConfigMap、无需滚动重启 Pod

关 SkyWalking 写入 = 向 DataBuff 切流的第一步;两路都开 = 对照期。开关立刻生效,并写回配置。回滚也简单:停 proxy、把 OAP 改回占 :11800 即可。

双写压测:可以放心并跑

我们在压测环境验证过双写(业务 QPS=3543 个 Pod):

  • 双路各约 5,800 segments/s 成功转发,sent_err=0,dropped=0
  • 四个服务调用数对齐 ≥99.98%
  • proxy <1 核、内存约 63MB,过夜 10 小时+ 稳定
  • 一路后端挂掉 → 坏路熔断,另一路继续;管理页关一路 → 立刻停写
proxy CPU
双写 QPS=35 下 proxy CPU 约 0.8 核
proxy 内存
RSS 约 47–63MB,6 小时不涨
  • 🔀 双写 — 同一批 Trace 两边对照
  • 🛡️ 可回滚 — 管理页秒关某路写入
  • 轻量 — proxy <1 核 · ~63MB
你可能想问

Agent 要换掉吗?要改上报地址吗?
都不用。继续用现有 SkyWalking Agent;collector.backend_service 本来就指向 OAP 的 :11800 时,proxy 接管该端口后业务侧零改动。对照期结束、只留 DataBuff 时,再考虑把 Agent 直连 DataBuff 或继续走 proxy 单路写入。

业务 Pod 要滚动重启吗?
不用——对照、切流、下线 OAP,整条迁移路径上都不需要为这件事滚动重启业务 Pod。Agent 始终连 oap-host:11800,proxy 在平台侧接管后,业务配置零改动。需要动的只有 OAP 宿主机:OAP 改端口、proxy 占 :11800

必须马上停 OAP 吗?
不必须。双写期间 OAP 当你的对照组;DataBuff 侧试问数、巡检、服务流都满意了,管理页关 SW 写入即可,不必立刻下线 OAP。

历史 Trace 和告警怎么办?
OAP 里的历史数据和旧告警规则不会自动迁过来,需要在 DataBuff 侧重配——这和是否双写无关,是任何后端切换都要面对的一步。

建议怎么试?

  • proxy 双写一周,同一批慢请求在两边各跟一遍
  • 在 DataBuff 问「最近一小时 service-a 有没有异常」,跑一遍巡检
  • 打开服务流 / 调用分析,看从入口到 Trace 能不能少走几步
建议路径:测试环境先在 OAP 宿主机按上面四步接 proxy → 问 AI、跑巡检、对照 Span 数 → 管理页关 SW 写入 → 稳定后再下线 proxy / OAP。有问题留言区聊,下篇可以写对照期 Span 对齐自查清单。