「开源摘星计划」SkyWalking(1):SkyWalking简介

1,244 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 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孵化器。 

架构

来源于官方的架构图: image.png

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服务。