Skip to content

SkyWalking

Apache SkyWalking 是面向分布式系统的开源 APM 与可观测性平台,基于 Google Dapper 论文的分布式链路追踪思想实现。它从应用、语言 Runtime、Service Mesh 和基础设施接收 Telemetry,分析 Trace、Metric、Log 与 Service Topology,帮助回答以下问题:

  • 一次请求经过了哪些服务和组件;
  • 延迟主要发生在哪个 Endpoint、Database 或 Remote Call;
  • 哪个 Service Instance 的错误率或响应时间异常;
  • 服务之间实际形成了怎样的调用依赖;
  • Log 如何与 Trace ID、Service 和 Instance 关联。

能力边界

SkyWalking 解决"观察和定位"问题,不负责服务发现、配置中心、业务限流或分布式事务。它主要提供:

能力说明
分布式链路追踪自动记录跨服务调用链(Trace)
性能指标分析响应时间、QPS、吞吐量、错误率等指标
服务拓扑图服务、实例、端点之间的调用依赖关系
告警系统指标触发条件可配置的报警
日志关联(增强)通过 Trace Context 关联日志与调用链

不负责的部分:

SkyWalking Java Agent 位于 JVM Language Runtime 内,OAP 是独立 Process 或 Kubernetes Workload。它不是 Dapr 这类 Distributed Application Runtime;二者的区别参见微服务建设层次图

采集层次

Java Agent 属于 JVM Runtime 层,通过 Bytecode Instrumentation 拦截受支持的 Framework、RPC、Database 和 MQ Client。它通常不要求修改业务代码,但仍需正确配置 Service Name、Backend Address、采样和 Plugin。

核心对象

对象含义
Service一个逻辑服务,例如 order-service
Service Instance服务的一个运行副本,例如某个 JVM Process 或 Pod
Endpoint服务暴露或处理的逻辑操作,例如 HTTP Route 或 RPC Method
Trace一次分布式请求的完整调用路径
SpanTrace 中的一段操作,例如一次 HTTP Client Call 或 SQL Query
Segment某个进程内产生并上报的一组 Span

文档入口

文档内容
APMDapper 模型、三大可观测信号、上下文传播、采样、OpenTracing/W3C
架构Agent / OAP / Storage / UI 职责、端口、设计目标与部署形态
Java Agent探针加载、字节码插桩、插件、配置、采样与 Trace ID 注入
链路追踪原理Trace / Span / Segment、跨进程上下文传播与合并
存储与部署H2 / ES / MySQL 存储、compose、Kubernetes、压测调优与问题排查
告警与指标告警规则、自定义指标与二次开发入口

学习地图