1、本系列文档简介
本系列文章为研究Skywalking-OAP8.9.1版本, 探针Skywalking-java8.9.0时所著,文章内容来源有博客、官网、自己的体会、源代码剖析、测试所得。专业性的知识参考权威性官方文档,保证内容的可靠性。
2、Skywalking简介
-
起源:Skywalking是由国内开源爱好者吴晟(原OneAPM工程师)开源并提交到Apache孵化器的产品,它同时吸收了Zipkin/Pinpoint/CAT的设计思路,支持非侵入式埋点。是一款基于分布式跟踪的应用程序性能监控系统。另外社区还发展出了一个叫OpenTracing的组织,旨在推进调用链监控的一些规范和标准工作。
-
为什么选择Skywalking:
-
1、SkyWalking 支持很多框架,包括很多国产框架,例如,Dubbo、gRPC、SOFARPC 等等,也有很多开发者正在不断向社区提供更多插件以支持更多组件无缝接入 SkyWalking。
-
2、SkyWalking 增长势头强劲,社区活跃,中文文档齐全,没有语言障碍
-
3、Skywalking核心功能
-
JVM分析(metrics)
-
服务拓扑图分析
-
服务、服务实例和端点依赖性分析
-
检测到慢速服务和端点(metrics)
-
性能剖析
-
链路追踪(trace)
-
数据库访问指标。检测慢速数据库访问语句(包括 SQL 语句)
-
报警
-
日志(log)
这里介绍几个概念:
log: 日志,Skywalking中需要进行特殊的配置才能显示日志信息,这个不符合我们的需求,我们要求是无侵入的性能监控。
trace: 链路追踪,能够反映输出接口的调用链,比如这个接口调用其他的接口,调用了哪个数据库等等,详细信息请参考OpenTrace官方文档,此文档定义了链路追踪规范
metrics: 度量信息,Skywalking中的所有的图标展示的数据信息统称为metric
详细UI界面功能请查看文档UI功能界面介绍OpenTrace官方文档:OpenTrace官方文档这里简要附一张图,表示Skywalking中的Trace相关概念:
4、Skywalking代码模块及架构
官方给出的系统架构图如下所示:
从图中可以看出Skywalking主要由以下三个模块组成:
-
Skywalking-Agent
:探针,数据捕获(后续简称(Agent)[探针])
“SkyWalking Agent 采用了微内核架构(Microkernel Architecture),那什么是微内核架构呢?微内核架构也被称为插件化架构(Plug-in Architecture),是一种面向功能进行拆分的可扩展性架构。在基于产品的应用中通常会使用微内核架构,例如,IDEA、Eclipse 这类 IDE 开发工具,内核都是非常精简的,对 Maven、Gradle 等新功能的支持都是以插件的形式增加的。如下图所示,微内核架构分为核心系统和插件模块两大部分。具体内容详解见《Skywalking-Agent项目结构》
贴多了就是抄袭了,作者不让转载,这里推荐关注作者公众号:任重道猿