七月那篇《SkyWalking 也能 AI 智能化了》发完,后台最高频的留言是:
可以,而且值得试。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 写入即可。
下面是在同一套 Demo 业务上,把 SkyWalking 和 DataBuff 并排跑出来的对照。拓扑、Trace、日志这些基础能力两边都有;值得你并跑体验的,主要是下面两类增量。
7 大 AI 能力(同环境实测 · SW 10.4.0 vs DataBuff v0.1.4)
| 能力 | SkyWalking | DataBuff |
|---|---|---|
| 自然语言问系统 | — | ✅ 中文问服务 / 拓扑 / 异常 |
| 多 Agent 协同 | — | ✅ 多专家并行取证 |
| 一句话巡检报告 | — | ✅ 带证据与处置建议 |
| 根因取证链 | — | ✅ Trace / 指标 / 拓扑拼证据 |
| 受控修复 | — | ✅ 策略 + 人工授权 |
| 容量 / 趋势 | — | ✅ 事前预判 |
| 产品答疑 + MCP / Skill | — | ✅ 可扩展数字专家 |
APM 能力(同环境实测 · 源自 compare-vs-skywalking)
| 能力项 | SkyWalking | DataBuff |
|---|---|---|
| 全局拓扑 | ✅ 含中间件节点 | ✅ 健康色标 + 下钻 |
| 服务列表 / 黄金指标 | ✅ 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 |
口径:同一套 Demo 业务上并排对照。拓扑、Trace、日志两边都有;DataBuff 额外强在 AI、服务流 / 调用分析、告警中心。已有 SkyWalking 的团队,常见做法是 Agent 不动,先并跑体验。
要让同一批 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
四步上手(只动平台侧,业务零重启):
- 在 OAP 宿主机部署 proxy — Releases 解压到本机,先写好
config.yaml:skywalking填 OAP 迁走后的地址(如127.0.0.1:21800),databuff填 DataBuff Ingest 地址,两路enabled: true。 - 让 OAP 改绑端口、释放 11800 — 例:docker-compose 把 OAP 映射从
11800:11800改为21800:11800,recreate 后确认 OAP 在新端口健康。 - 启动 proxy 监听 :11800 —
./start.sh,浏览器打开管理页(默认:9090),确认双后端 healthz 正常。 - 业务不用动 — Agent 仍连原来的
oap-host:11800,此时已是 proxy;同一批 Trace 自动进 OAP + DataBuff,无需改 ConfigMap、无需滚动重启 Pod。
关 SkyWalking 写入 = 向 DataBuff 切流的第一步;两路都开 = 对照期。开关立刻生效,并写回配置。回滚也简单:停 proxy、把 OAP 改回占 :11800 即可。
我们在压测环境验证过双写(业务 QPS=35,43 个 Pod):
- 双路各约 5,800 segments/s 成功转发,sent_err=0,dropped=0
- 四个服务调用数对齐 ≥99.98%
- proxy <1 核、内存约 63MB,过夜 10 小时+ 稳定
- 一路后端挂掉 → 坏路熔断,另一路继续;管理页关一路 → 立刻停写
- 🔀 双写 — 同一批 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 能不能少走几步