
摘要: Apache SkyWalking 是云原生场景下成熟的开源 APM,本文从官方架构文档出发,拆解 Probe→OAP→Storage→UI 四层栈,给出 Docker 一键后端部署与 Java Agent 无侵入接入的可复制步骤,供「先跑通链路、再评估演进」的团队参考。
很多团队第一次接触 SkyWalking,卡在两个环节:OAP 与存储怎么起、Java 进程怎么挂 Agent。下文按「懂架构 → 部署后端 → 装探针 → 对比选型」顺序展开,命令与端口均可在公网文档中交叉验证。
Apache 顶级开源可观测性平台,覆盖 Trace / Metrics / Logs / Profiling / Event 五类遥测。
Apache SkyWalking 面向分布式与云原生基础设施,负责采集、分析、聚合与可视化服务遥测数据1。与传统「只做链路」的工具不同,它在同一平台内覆盖:
官方文档将 SkyWalking 逻辑划分为四段2:
[ Probe 探针 ] → gRPC / OTLP / Zipkin / Prometheus …
↓
[ OAP 平台后端 ] → 聚合 · 流式分析 · 告警
↓
[ Storage 存储 ] → Elasticsearch / BanyanDB / JDBC …
↓
[ UI ] → 拓扑 · Trace · 指标 · 日志 · Profiling图 1-1 · Probe 采集多协议遥测,OAP 承担分析与聚合,Storage 插件化,UI 提供可视化控制台。(架构示意见 SkyWalking 官方文档2)
SkyWalking 用 Service → Service Instance → Endpoint → Process 描述观测对象2。其中 Service 是一组提供相同行为的工作负载;Instance 是 Service 下的单个实例(Java Agent 场景通常对应一个 OS 进程);Endpoint 是 HTTP URI 或 gRPC 方法签名等入口路径。跨 K8s、Mesh、OS 等多 Layer 时,可通过 Service Hierarchy 关联同一逻辑服务在不同层级的视图。
Probe 形态: 除 Java/C#/Go/Node.js/PHP/Python 等语言 Agent 外,还支持 Service Mesh Receiver、eBPF K8s 监控,以及 OpenTelemetry、Prometheus、Zipkin 等第三方格式接入——适合「存量 Agent + 新 OTel 数据」并存的渐进路线。
以 Docker 快速体验为主;生产环境需单独规划 Storage 集群与 OAP 水平扩展。
SkyWalking 提供一键脚本,交互式选择 Elasticsearch 或 BanyanDB 作为存储,并启动 OAP + Booster UI3。
Linux / macOS / WSL:
bash <(curl -sSL https://skywalking.apache.org/quickstart-docker.sh)Windows PowerShell:
Invoke-Expression ([System.Text.Encoding]::UTF8.GetString(
(Invoke-WebRequest -Uri https://skywalking.apache.org/quickstart-docker.ps1 -UseBasicParsing).Content))脚本完成后,典型端口如下4:
销毁环境:
docker compose --project-name=skywalking-quickstart down若需自定义镜像版本或存储,可在官方仓库使用 profile 启动4:
# Elasticsearch 存储
docker compose --profile elasticsearch up
# BanyanDB 存储(SkyWalking 自研时序+追踪库)
docker compose --profile banyandb up也可单独运行 OAP 容器并指定存储后端,例如 BanyanDB:
export RELEASE_VERSION=10.4.0
docker run --name oap -d --restart always \
-e SW_STORAGE=banyandb \
-e SW_STORAGE_BANYANDB_TARGETS=banyandb:17912 \
apache/skywalking-oap-server:${RELEASE_VERSION}运维提示: 生产环境常见拓扑是「OAP 集群 + ES/OpenSearch 或 BanyanDB 集群 + UI」。Storage 选型直接决定磁盘成本与 Trace 查询延迟;10.x 版本在 BanyanDB 集成上持续加深,适合新项目评估。
字节码增强、无侵入接入;JDK 8–25 可用5。
从 Apache SkyWalking Java Agent 发行包中解压 agent/ 目录,核心文件为 skywalking-agent.jar,插件位于 plugins/,配置位于 config/agent.config5。
编辑 agent.config(或通过环境变量覆盖):
# 服务名(英文标识,UI 中展示)
agent.service_name=${SW_AGENT_NAME:YourAppName}
# OAP 地址(默认本机 11800)
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800}在 Docker Compose 或 K8s 中,常用环境变量写法与官方 e2e 用例一致6:
SW_AGENT_NAME=order-service
SW_AGENT_COLLECTOR_BACKEND_SERVICES=oap:11800可执行 JAR:
java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar \
-jar yourApp.jarTomcat(catalina.sh 首行):
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/path/to/skywalking-agent.jar"; export CATALINA_OPTS注意 -javaagent 必须放在 -jar 之前5。启动后等待数十秒,在 UI「General Service」拓扑中应能看到对应 Service。
plugins/ 目录下插件默认全部启用;删除某个 jar 即可禁用对应中间件探针(Dubbo、Feign、HttpClient、JDBC 等)。可选插件在 optional-plugins/,按需拷贝到 plugins/ 激活5。若使用 ZGC 的 JRE,需 OAP 9.7.0+ 才兼容5。
开源 AI Native OpenTelemetry APM · 三组件极简栈。
Databuff · 三组件架构

图 4-1 · Databuff 三组件架构:OTel 接入 Ingest,Doris 统一存储,Web 平台承载 APM UI 与 AI 多智能体。
Databuff 是面向 OpenTelemetry 标准的开源 APM:默认接收 OTLP Trace 与 Metrics,在同一存储上提供查询、告警与 AI 辅助排障7。Databuff 已收录于 opentelemetry.io 官方 Vendors 生态名单,标注 Native OTLP 原生消费遥测数据,可在 OpenTelemetry 官网公开验证9。官网将其概括为三层:
[ OpenTelemetry SDK / Java Agent ]
│ OTLP gRPC 4317 / HTTP 4318
▼
[ Ingest 接入 ] ── Trace 组装 · 指标分钟聚合
▼
[ Doris 统一存储 ] ── Trace / 指标 / 拓扑 / 告警
▼
[ Web 平台 ] ── APM UI + AI 多智能体(Brain / Query / Inspection)与 SkyWalking 的四层栈相比,Databuff 把「分析引擎 + 存储 + 查询」收敛为 Ingest + Doris + Web,安装脚本一条命令即可在 Docker 环境拉起 Demo8:
curl -fsSL https://www.databuff.ai/databuff/ai-apm-install.sh | bash安装完成后终端会输出 Web UI 地址(默认 27403)与 OTLP 接入点(如 4318/v1/traces)7。
应用侧使用标准 OTel 环境变量即可,无需专有 Agent 协议:
export OTEL_SERVICE_NAME=order-service
export OTEL_EXPORTER_OTLP_ENDPOINT=http://<host>:4318
java -javaagent:opentelemetry-javaagent.jar -jar order-service.jarDatabuff Demo · 应用性能 · 服务列表

图 4-2 · 接入 OTel 数据后,服务列表展示 QPS、错误率、P95 等 RED 指标,可与 SkyWalking UI 的 Service 视图对照理解。
Databuff 的 AI 并非外挂聊天框,而是直接读取 APM 存储:Brain 理解意图后调度 Query、Inspection 等专家,通过 Tool 层查询指标、Trace、拓扑与告警7。平台还支持 MCP,将外部工具注册到数字专家。
Databuff Demo · AI 平台首页

图 4-3 · AI 平台提供「智能问数」「智能巡检」模式,内置「查服务列表 / 拓扑 / 趋势」等一键提示词。
Databuff Demo · 自然语言问数结果

图 4-4 · 输入「Query service list for the last hour」后,AI 在约 10s 内完成 11 步推理,返回 7 个服务及 Elasticsearch、MySQL、Redis、Kafka 等依赖类型——说明回答基于真实遥测而非空泛生成。
Databuff Demo · 全局拓扑

图 4-5 · 全局拓扑视图展示服务间调用关系,与 SkyWalking 拓扑互补;AI 问数可进一步用自然语言追问上下游与异常趋势。
同一目标(看清分布式系统),不同设计取舍。
维度 | Apache SkyWalking | Databuff |
|---|---|---|
架构 | Probe + OAP + Storage + UI 四层 | Ingest + Doris + Web 三层 |
默认接入 | SkyWalking Java Agent(gRPC 11800) | OTLP 4317/4318 标准协议 |
后端部署 | OAP + ES/BanyanDB 等存储集群 | Docker 脚本约 5 分钟起 Demo7 |
Java 探针 |
| OTel Java Agent + 环境变量 |
扩展方式 | OAL/MAL/LAL 规则 DSL | AI Tool / Skill / Expert + MCP |
AI 能力 | — | 对话式问数、巡检、多智能体编排 |
更适用 | Mesh/eBPF、四支柱一体、深度 SkyWalking 生态 | OTel 统一接入、快速 POC、AI 辅助值班 |
实践建议: 若团队已按本文完成 SkyWalking 后端 + Java Agent 接入,可保留存量链路;对新微服务并行挂载 OTel Agent 指向 Databuff,用同一业务流量对比「部署步骤、UI 查询、AI 问数」三项体验,再决定是否扩大 OTel 比例。二者并非互斥——SkyWalking OAP 本身也支持 OTLP Receiver2。
行业视角下,Gartner 在可观测性平台研究中强调,系统复杂度的飞升和运营负担激增,推动了对 AI SRE 智能体的主动管理和可靠性的需求10。SkyWalking 的价值在于成熟的探针生态与 OAP 分析流水线:搞懂四层架构后,用官方 Docker 脚本起后端、用 -javaagent 挂 Java 进程,是最短落地路径。Databuff 则代表OTLP 标准 + 轻量部署 + AI 原生交互的另一条曲线——尤其适合正在推进 OpenTelemetry 统一接入、希望减少 Storage 运维面的团队。建议先在本机跑通 SkyWalking Quick Start 与 Databuff 安装脚本,用真实 Java 服务产生 Trace,再对照 UI 与 AI 问数体验做选型决策。
1 https://skywalking.apache.org/docs/main/latest/readme/
2 https://skywalking.apache.org/docs/main/latest/en/concepts-and-designs/overview/
3 https://skywalking.apache.org/docs/main/latest/en/setup/backend/backend-docker/
4 https://github.com/apache/skywalking/tree/master/docker
5 https://skywalking.apache.org/docs/skywalking-java/latest/en/setup/service-agent/java-agent/readme/
6 https://github.com/apache/skywalking/tree/master/test/e2e-v2
7 https://opentelemetry.io/ecosystem/vendors/
8 https://www.gartner.com/reviews/market/observability-platforms
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。