一、介绍
·skywalking-collector:链路数据归集器,数据可以保存在H2或ElasticSearch、MySQL
·skywalking-web:web的可视化管理后台,可以查看归集的数据
·skywalking-agent:探针,用来收集和推送数据到归集器
二、界面展示
·仪表盘
·服务追踪
三、skyWalking的配置
配置文件在skyWalking解压目录的/config/application.yml
-
在nacos注册中心中注册
-
使用mysql存储链路数据
指定为mysql存储
storage:
selector: ${SW_STORAGE:mysql} 指定为mysql存储
MySQL的相关配置
- 告警配置 位于skywalking安装目录下的config文件夹下 alarm-settings.yml 文件
metrics-name:oal脚本中的度量名称
Threshold: 阈值,与metrics-name和下面的比较符号相匹配
op :比较操作符,可以设定>,<,=
period :多久检查一次当前的指标数据是否符合告警规则,单位分钟
count :达到多少次后,发送告警消息
silence-period :在多久之内,忽略相同的告警消息
message :告警消息内容
include-names :本规则告警生效的服务列表
在产生告警之后,可以指定调用通知接口,通知项目负责人,接口可以实现邮箱或者短信通知
四 skyWalking的使用
skyWalking是低入侵的服务追踪应用,是通过skyWalking-agent探针来收集服务追踪的链路。所以,在使用skyWalking时,需要有agent探针
1. skyWalking-agent探针,目录结构如下
我这里用到了请求链路忽略-Dskywalking.trace.ignore_path=,所以要把可选文件夹optional-plugins里的apm-trace-ignore-plugin-8.5.0.jar复制到plugins文件夹下
2. skyWalking-agent配置,配置文件在agent/config/agent.config
配置该服务在skyWalking中的名称,默认为Your_ApplicationName,可以通过配置覆盖的方式覆盖
agent.service_name=${SW_AGENT_NAME:Your_ApplicationName}
skywalking后端服务地址
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800}
3. 在Idea中启动服务(本地要有agent探针,且探针配置中需要指定skyWalking后端服务的地址)
在VM选项中加入
-javaagent:\agent\skywalking-agent.jar -Dskywalking.agent.service_name=hierway_basic -Dskywalking.trace.ignore_path=/doc.html/,/Lettuce/(要忽略请求链路的路径,**代表通配符)
解释:-javaagent:\agent\skywalking-agent.jar 这部分表示本地agent探针的路径
-Dskywalking.agent.service_name=hierway_basic 指定服务名称,覆盖agent原来的配置
-Dskywalking.trace.ignore_path=/doc.html/,/Lettuce/,/actuator/,/swagger-resources/ 后面这部分表示不需要链路追踪的请求
4. Jar启动,运行以下命令,原理和idae启动一样
java -javaagent:\apache-skywalking-apm-bin-es7\agent\skywalking-agent.jar -Dskywalking.agent.service_name=hierway_userDskywalking.trace.ignore_path=/doc.html/**,/Lettuce/**,/actuator/**,/swagger-resources/** -jar hierway-user.jar
5. 代码中使用到了,skyWalking生成的链路ID,用来快速定位到出错的请求
引入依赖
<!--skyWalking trace工具包, 用来返回服务追踪的ID-->
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-trace</artifactId>
<version>8.5.0</version>
</dependency>
在代码中,捕获到的异常,生成服务最终id,保存在日志中,用来在skyWalking上快速定位异常