十、SkyWalking链路追踪

解决什么问题?

  • 串联整个调用链路,快速定位问题。
  • 缕清服务之间的依赖关系。
  • 对各个微服务接口的进行性能分析。
  • 跟踪整个业务流程的调用处理顺序。

一、skywalking介绍

1、skywalking是什么?

skywalking是一个国产开源框架,2015年由吴晟开源,2017年加入Apache孵化器。skywalking是分布式系统的应用程序性能监视工具,为微服务、云原生框架和基于容器(Docker、K8s、mesos)架构设计。包括分布式追踪、性能指标分析、应用和服务依赖分析等。
官网:https://skywalking.apache.org/
下载:https://skywalking.apache.org/downloads/
github:https://github.com/apache/skywalking/
中文文档:https://skyapm.github.io/document-cn-translation-of-skywalking/

2、链路追踪框架对比

十、SkyWalking链路追踪_第1张图片

3、skywalking主要功能特性

  • 多种监控手段,可以通过语言探针和service mesh获得监控的数据。
  • 支持多语言,包括Java、.Net Core和Node Js。
  • 轻量高效、无需大数据平台和大量的服务器资源。
  • 模块化、UI、存储和集群管理都有多种机制可以选择。
  • 支持告警。
  • 优秀的可视化解决方案。

二、SkyWalking环境搭建

主要包括:
1、skywalking agent和业务系统绑定在一起,负责收集各种监控数据。在服务端绑定一个agent(探针)
2、 skywalking oapservice集群,负责处理监控数据,接收 skywalking agent的监控数据,并存储在数据库中。和 skywalking webapp为前后端,前端请求,oapservice相应返回数据。
3、skywalking webapp UI服务,前端页面,用于展示数据。

1、下载

下载地址:https://skywalking.apache.org/downloads/
下载SkyWalking APM。

文件目录结构:
webapp:UI前端web监控页面的jar包和配置文件。
oap-libs:后台应用的jar包和依赖包,server-starter-*.jar就是启动程序。
config:启动后台应用程序的配置文件。
bin:各种启动标本,一般使用startup.*来启动web页面和后台应用。
agent: 和微服务进行绑定的jar包。

2.双击startup.bat启动

启动成功后会启动两个服务,一个是skywaking-oap-server,一个是skywalking-web-ui:8868。
页面访问:http://localhost:8868
skywaking-oap-server启动后会暴露11800好1280两个端口,分别收集监控数据的端口11800(微服务绑定的端口)和接收前端请求的端口12800,修改端口可以修改cnfig/application.yml。

3.接入到微服务

只需要在jar包启动加入命令即可。
IDEA中使用skywalking,在运行的程序配置Jvm参数。
VM options中设置:

 ##skywalking-agent.jar的本地磁盘的路径
-javaagent D: apache apache-skywalking-apm-es7-8.4.0 apache-skywalking-apm-bin-es7)agent skywalking-agent.jar
#在skywalking上显示的服务名
-DSW_AGENT_NAME=springboot-skywalking-demo
# skywalking的collector服务的IP及端口
-DSW_AGENT_COLLECTORBACKEND_SERVICES=127.0.0.1:11800

-DSW_AGENT_COLLECTORBACKEND_SERVICES可以指定远程地址,但是avaagent必须绑定你本机物理路的skywalking-agent.jar

网关服务需在agent\optional-plugins中的gateWay的jar包复制到agent\plugins中。

linux中运行,可以使用shell脚本。

#!/bin/sh
#SkyWalking Agent配置
export SW_AGENT_NAME=springboot-skywalking-demo #Agent名字,一般使用spring.application.name
export SW_AGENT_COLLECTOR BACKEND SERVICES=127.0.0.1:118 #配置 Collector 地址。
export SW_AGENT_SPAN_LIMIT=20 #配置链路的最大Span数量,默认为 30。
export JAVA_AGENT=-javaagent:/usr/local/soft/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar
java $JAVAAGENT -jar springboot-skywalking-demo-0.1-SNAPSHOTjar #jar启动

等同于:

-javaagent D: apache apache-skywalking-apm-es7-8.4.0 apache-skywalking-apm-bin-es7)agent skywalking-agent.jar
-DSW_AGENT_NAME=springboot-skywalking-demo
-DSW_AGENT_COLLECTORBACKEND_SERVICES=127.0.0.1:11800

skywalking持久化跟踪数据
默认使用H2数据库存储。
config/apliction.yml

修改为mysql持久化,修改mysql连接配置。创建数据库, 不用关心表,项目启动会自行创建。

启动根据报错,如果没有数据库启动,需复制一个到oap-libs文件夹下。

你可能感兴趣的:(spring,Cloud,Alibaba,skywalking)