SkyWalking介绍

SkyWalking是什么

SkyWalking是一个在分布式系统环境下的系统性能监控和链路追踪方案,入门教程参考:SkyWalking 极简入门。可用于多种场景下的链路追踪,如:HTTP,Dubbo,JDBC,Redis,MQ,甚至还可以实现自定义追踪方法,集成到日志输出中,功能非常全面而且灵活。
SkyWalking不与任何业务系统产生耦合,本质上可以看作是一个监控中心,业务系统只需要按规则接入即可,对业务系统本身不产生任何的入侵。
SkyWalking主要包含4个部分:

  • Agent:用于收集数据,这个Agent就是SkyWalking安装包解压后的agent目录,在运行业务系统时指定
  • SkyWalking OAP:负责接收Agent发送的Tracing数据信息,然后进行分析(Analysis Core) ,存储到外部存储器(Storage),最终提供查询(Query)功能
  • Storage:数据存储,支持ElasticSearch、MySQL、TiDB、H2多种存储器
  • SkyWalking UI:负责提供控台,查看链路等等

如何使用SkyWalking

前面已经说过,SkyWalking本质上是一个监控系统,它的服务端(包含SkyWalking OAP,Storage,SkyWalking UI)是独立部署的。
因此,在将业务系统接入到SkyWalking之前,需要先部署SkyWalking。
这里下载SkyWalking安装包。
关于SkyWalking单机环境或集群环境的搭建,可以参考搭建-skywalking-单机环境搭建 SkyWalking 集群环境
在部署完SkyWalking服务端之后,通过Web控制台可以查看接入的组件信息。
在业务系统这一端,接入SKyWalking很简单,通常只需要设置如下启动参数即可:

1
2
3
4
5
6
7
8
# SkyWalking Agent配置
export SW_AGENT_NAME=demo-application # 配置Agent名字,这是在SkyWalking控制台看到的服务名称;一般来说,可以直接使用SpringBoot项目的 `spring.application.name`
export SW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800 # 配置SkyWalking的Collector地址,示例参数表示SkyWalking服务端与业务系统在一台主机
export SW_AGENT_SPAN_LIMIT=2000 # 配置链路的最大Span数量,一般情况下,不需要配置,默认为300。主要考虑有些新上SkyWalking Agent的项目,代码可能比较糟糕
export JAVA_AGENT=-javaagent:D:\\opt\\apache-skywalking-apm-bin-es7\\agent\\skywalking-agent.jar # SkyWalking Agent的jar包地址

# Jar 启动
java -jar $JAVA_AGENT -jar test-springmvc-skywalking-0.0.1-SNAPSHOT.jar

当然,针对SkyWalking的一些特殊用法(如:将TraceId输出到logback日志信息中,集成Opentracing等),可能还需要集成一些JDK,可以参考芋道 Spring Boot 链路追踪 SkyWalking 入门中的示例。

【参考】
javaAgent 参数
javaagent使用指南
SkyWalking官网
SkyWalking 极简入门
芋道 Spring Boot 链路追踪 SkyWalking 入门
SkyWalking 文档中文版
全网最详细的Skywalking分布式链路追踪
SkyWalking线上问题排查定位