携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第3天,点击查看活动详情
项目地址: github.com/apache/incu…
官方文档:skywalking.apache.org/docs/
本文已参与「开源摘星计划」,欢迎正在阅读的你加入。
活动链接:github.com/weopenproje…
SkyWalking:APM(应用程序性能监控)系统,专为微服务、云原生和基于容器(Docker、Kubernetes、Mesos)架构而设计。
Skywalking 是本土开源的调用链追踪系统,包括监控、跟踪、诊断功能,目前已加入 Apache 孵化器,专门为微服务、云本地和基于容器(Docker、Kubernetes、Mesos)架构设计。
主要功能
1)服务、服务实例、端点指标数据分析;
2)根本原因分析,在运行时评测代码;
3)服务拓扑图分析;
4)服务、服务实例和端点依赖性分析;
5)检测到慢速服务和终结点;
6)性能优化;
7)分布式跟踪和上下文传播;
8)数据库访问度量。检测慢速数据库访问语句(包括 SQL 语句);
9)报警;
10)浏览器性能监视;
发展历程
是一个优秀的国产开源框架,2015年由个人吴晟(华为开发者)开源 , 2017年加入Apache孵化器。
架构
来源于官方的架构图:
SkyWalking UI : 负责提供web控制台,查看链路,查看各种指标,性能等等;
Storage : 数据存储。目前支持ES、MySQL、TiDB、H2(默认)等多种存储器;
Agent : 负责从应用中,收集tracing(调用链数据)和metric(指标),发送给 SkyWalking OAP 服务器。目前支持 SkyWalking、Zikpin、Jaeger 等提供的 Tracing 数据信息。而我们目前采用的是,SkyWalking Agent 收集 SkyWalking Tracing 数据,传递给SkyWalking OAP 服务器。
组件
Satellite
如果业务流量不均衡,会导致OAP节点接收到的监控数据不均衡。因此,您可以添加 Satellite 组件。使用Satellite组件部署展示后,监控流量将发送到Satellite服务,Satellite负载平衡流量到 OAP 节点。
Skywalking 的三个组成部分
探针(agent)
负责进行数据的收集,包含了Tracing和Metrics的数据,agent会被安装到服务所在的服务器上,以方便数据的获取。探针使用gRPC协议与OAP平台通信并上报数据。
可观测性分析平台 OAP
(Observability Analysis Platform)
接收探针发送的数据,并在内存中使用分析引擎(Analysis Core)进行数据的整合运算,然后将数据存储到对应的存储介质上,比如 Elasticsearch、MySQL等存储服务。同时OAP还使用查询引擎(Query Core)提供HTTP查询接口。OAP默认监听两个端口gRPC协议端口11800、HTTP端口12800,gRPC用于探针上报数据,HTTP端口用于UI连接OAP平台获取数据。
Skywalking UI
Skywalking 提供单独的UI进行数据的查看,UI调用OAP提供的接口,获取对应的数据根据UI模板的配置进行展示。Skywalking UI与OAP之间使用Http协议进行通信。Skywalking UI默认监听8080端口提供Web服务。