SkyWalking 核心概念与智能探针工作原理深度揭秘(上)
#作者:朱雷
文章目录
- Skywalking是什么
- Skywalking架构组成
- Agent(探针)
- 后端
- 存储
- UI
- 核心概念-资源对象
- 核心概念-链路追踪
Skywalking是什么
Skywalking是一款国产开源的应用性能监控工具和分布式链路追踪系统,2015年由吴晟开源 , 2017年加入Apache孵化器。Skywalking主要用于APM性能监控和分布式链路追踪,功能包括分布式追 踪、性能指标分析、服务依赖分析及告警等。
SkyWalking为服务(service),服务实例(service instance),以及端点(endpoint)提供了指标和调用链的监控能力。使用 SkyWalking 时,用户可以看到服务与端点之间的拓扑结构,每个服务/服务实例/端点的性能指标,还可以设置报警规则。
Skywalking分布式链路追踪是遵循OpenTracing规范的,但不支持Opentelemetry规范的 W3C context传播协议。
Skywalking架构组成
SkyWalking逻辑上分为四个部分:探针、平台后端、存储和UI
Agent(探针)
探针收集数据并根据SkyWalking的要求对数据进行重
新格式化(不同的探测器支持不同的来源);Agent 运行
在各个服务实例中,负责采集服务实例的 Trace 、
Metrics等数据,然后通过 gRPC方式上报给 SkyWalking
后端
- OAP
接收 Agent 上报上来的 Trace、Metrics 等数据,
分析得到的结果写入持久化存储中;响应 SkyWalking UI
界面发送来的查询请求,将前面持久化的数据查询出来
,组成正确的响应结果返回给 UI 界
存储
接SkyWalking数据可以选择存储在已实现的
ElasticSearch, H2, MySQL, TiDB, InfluxDB的持久化系统,
一般线上使用ElasticSearch 集群作为其后端存储
UI
可视化和管理SkyWalking 数据
核心概念-资源对象
核心概念-链路追踪
- 追踪: 一次请求完整的经过,可以微服务内的请求,也可以是夸服务的请求
- Trace:表示一次(分布式)请求经过的所有局部操作(Span)构成的一条完整的有向无环图
- Span:表示一次(分布式)请求过程的一个步骤或操作,代表系统中一个逻辑运行单元
- TraceSegment:是一个介于Trace与Span之间的概念,是一次Trace在某一实例上的一个片段,会包 含多个Span;上报OAP端的trace数据粒度就是segment级别。