Skywalking是apache基金会下面的一个开源APM项目,为微服务架构和云原生架构系统设计。它通过探针自动收集所需的指标,并进行分布式追踪。通过这些调用链路以及指标,Skywalking APM会感知应用间关系和服务间关系,并进行响应的指标统计。Skywalking支持链路追踪和监控应用组件基本涵盖主流框架和容器,如国产RPC Dubbo和motan等,国际化的spring boot,spring cloud。
Skywalking提供分布式链路追踪、服务网格(Service Mesh)遥测分析、度量(Metric)聚合和可视化一体解决方案。下面是几大特点:
使用如下案例进行Skywalking的主要概念的介绍。Skywaiking主要概念包含:
如上图所示,客户端通过接口/usr/query/all访问写的SpringBoot的服务,其实SpringBoot被部署在两个服务器上。接口/usr/query/all就是端点,SpringBoot项目就是服务,部署在两个服务上,就是两个实例。
skywalking版本:6.5.0
对压缩包进行解压,解压后如图所示
此处使用默认的内置数据库h2(不需要任何配置,内置)。
修改apache-skywalking-apm-bin\webapp\webapp.yml,此处修改一个随意的端口,用于前端web的访问
apache-skywalking-apm-bin/bin下的startup.sh
此时目录下就会出现logs文件夹,里面有日志,可以查看启动的日志用于排查问题
打开端口(上面配置的9010端口)
/sbin/iptables -I INPUT -p tcp --dport 9010 -j ACCEPT
其中 springboot-demo-0.0.1-SNAPSHOT.jar是我自己的服务, skywalking-agent.jar是解压目录中的jar
java -javaagent:/apache-skywalking-apm-bin/agent/skywalking-agent.jar -jar springboot-demo-0.0.1-SNAPSHOT.jar &
访问自己服务中的接口,然后刷新SkyWalking页面就会监控到SpringBoot服务,如下图所示
https://www.bilibili.com/video/BV1ZJ411s7Mn?p=1