【链路追踪】初始Skywalking
·
初始Skywalking
文章目录
一、Skywalking组件介绍
- Apache Skywalking的架构涉及非常清晰,主要分为四大核心组件。从数据采集、流式计算到吃计划存储和展示,每个组件负责流水线的特定一环。
1.1、数据收集组件(探针/Agents)
- 这是部署在你的业务Pod或者基础设施中的前端组件,负责收集各种可观测性数据(Trace、Metrics、Log)并发送给后端。
- 语言探针(Language Agents):针对不同开发语言的客户端。列如Java Agent通过字节码注入实现零侵入埋点;Go Agent提供强大的编译时或者运行时注入功能。它们负责在业务代码层面捕获方法调用、数据库操作和HTTP请求。
- Skywalking Rover(eBPF探针):这是面向云原生的底层探测器。利用eBPF数据,它可以在不修改任何代码的情况下,直接在Linux内核层捕获网络流量(如TCP/UDP性能)、分析CNI网络延迟,甚至进行CPU性能解析。
- Service Mesh适配器:对于使用istio等服务网格的架构,Skywalking可以直接接收来自Envoy代理ALS数据,作为无探针监控的数据源。
1.2、OAP Server(可观测性分析平台)
- OAP(Observability analysis Platform)是Skywalking的“大脑”,负责接收、分析和聚合海量探针发来的原始数据。它是一个无状态的流处理计算节点集合。
- Receiver(接收器):暴露gRPC和HTTP接口,接收所有类型探针发来的Trace、Log和Metrics数据,并将其同意转换为OAP的内部数据结构。
- 流式计算与聚合引擎(Core):实时处理接收到的数据。通过MAL(指标分析语言)和LAL(日志分析语言)过滤和计算数据;通过分析Trace上下文,实时在内存中构建出微服务拓扑图。
- 分发器与告警核心:将处理后的结果通过特定的存储适配器写入底层数据库,并在检测到指标异常(如CPU过高、延迟飙升)时触发高级你个Webhook。
1.3、Storage(存储组件)
- 存储层负责持久化OAP计算输出的指标、链路追踪详情、日志以及服务拓扑。Skywalking不自带通用数据库,而是采用插件化存储架构。
- BanyanDB:Skywalking官方自研的时许数据库(TSDB),专为可观测性场景(Trace、Log的海量写入与倒排索引查询)量身定制。相比Elasticsearch,它大幅降低了内存和磁盘I/O的消耗,是目前最新版的推荐存储底座。
- 其他兼容存储:长期依赖最常用的是Elasticsearch(或OpenSearch),此外也支持MySQL、PostgreSQL(仅限技小规模测试环境)等传统关系型数据库。
1.4、UI(用户页面)
- UI是运维和开发人员查询监控数据、定位问题的前端交互系统。它通过GraphQL向OAP Server发起查询请求,自身不直接连接数据库。
- Horizon UI(新版):Skywalking正在推进的新一代前端页面,提供更现代化、响应更快的交互体验,并优化了云原生下的面板展示。
- Booster UI(经典版):当前主流的Vue版控制台,提供全局大盘、服务拓扑图、调用链路追踪、日志查询和性能解析等丰富的可视化图表。
- Skywalking CLI(swctl):一个命令行工具,方便运维人员通过终端脚本快速拉取监控指标或CI/CD流程集成。
更多推荐

所有评论(0)