07. Skywalking 服务监控和链路追踪

news/2024/11/22 22:23:51/

Spring Cloud 微服务系列文章,点击上方合集↑

1. 简介

SkyWalking是一个针对分布式系统的应用程序性能监视工具和分析平台,它是基于Java Agent探针的技术,对服务进行监控和追踪,具有零侵入性特点。

SkyWalking对运行中的服务进行实时监控,收集系统的调用链、方法调用路径等关键数据指标。

官网地址:https://skywalking.apache.org

2. 下载安装

可以直接下载二进制包或通过源码编译打包。

2.1 直接下载(推荐)

官网下载地址:https://skywalking.apache.org/downloads/

  • 这里下载9.1.0的版本(高版本的需要Java11以上版本才行)。

官网下载很慢,网盘下载(推荐):「apache-skywalking-apm-9.1.0.tar.gz」来自UC网盘分享
https://drive.uc.cn/s/49ef857d0e944

2.2 编译安装

通过maven命令编译源码,生成可以运行的二进制包。

# 下载源码
git clone https://github.com/apache/skywalking.git# 进入目录
cd skywalking# 切换分支
git checkout v9.1.0git submodule init# 这里容易超时,注意检查,可以多试几次
git submodule update# maven打包
mvn clean package -DskipTests

编译后的包都在目录/dist下。

3. 运行服务

3.1 修改端口号

将默认8080端口修改为80508080端口经常被占用)。

配置文件的路径:apache-skywalking-apm-bin/webapp/webapp.yml

cd webappvim webapp.yml

3.2 启动服务

apache-skywalking-apm-bin/bin路径下执行如下命令:

# mac/Linux
sh startup.sh# windows
startup.bat

3.3 访问

浏览器访问:http://localhost:8050/ ,出现如下界面说明启动成功。

4. 下载java探针

官网下载地址:https://skywalking.apache.org/downloads/

  • 下载8.16.0版本。

官网下载很慢,网盘下载(推荐):「skywalking-agent-8.16.0.zip」来自UC网盘分享
https://drive.uc.cn/s/bd79d9556c314

5. 使用探针

5.1 运行jar包时使用探针

Java运行jar包的命令如下:

java -jar myapp.jar

我们加上如下参数,-javaagent指定探针的位置。

java -javaagent:/路径/skywalking-agent.jar   
-Dskywalking.agent.service_name=serviceName
-Dskywalking.collector.backend_service=localhost:11800
-jar myapp.jar
  • -javaagent:/路径/skywalking-agent.jar指定探针的位置
  • -Dskywalking.agent.service_name=serviceName指定服务名称
  • Dskywalking.collector.backend_service=localhost:11800指定收集器地址

5.2 IntelliJ IDEA 上使用探针

IntelliJ IDEA启动应用的时候加上VM参数

输入如下:

-javaagent:/路径/skywalking-8.5.0/agent/skywalking-agent.jar
-Dskywalking.agent.service_name=gateway-service
-Dskywalking.collector.backend_service=localhost:11800
  • -javaagent:/路径/skywalking-agent.jar指定探针的位置
  • -Dskywalking.agent.service_name=serviceName指定服务名称
  • Dskywalking.collector.backend_service=localhost:11800指定收集器地址

在IntelliJ IDEA中对我们之前的gateway-serviceprovider-serviceconsumer-service三个服务加上探针。

1)gateway-service

skywalking agent 默认不支持 gateway,需要将optional-plugins目录下的gateway相关的插件(jar包)复制到plugins目录下。(网盘下载的我已经放好了)。

-javaagent:/路径/agent/skywalking-agent.jar
-Dskywalking.agent.service_name=gateway-service
-Dskywalking.collector.backend_service=localhost:11800 

2)provider-service

-javaagent:/路径/agent/skywalking-agent.jar 
-Dskywalking.agent.service_name=provider-service
-Dskywalking.collector.backend_service=localhost:11800

3)consumer-service

-javaagent:/路径/agent/skywalking-agent.jar 
-Dskywalking.agent.service_name=consumer-service
-Dskywalking.collector.backend_service=localhost:11800

注意不同的服务对应的-Dskywalking.agent.service_name不一样。

6. 服务监控和链路查看

浏览器访问接口: http://localhost:10000/consumer-service/consumer/test?name=zhangsan

多访问几次接口,然后在后台查看监控结果。后台地址:http://localhost:8050/

6.1 查看服务

gateway-serviceprovider-serviceconsumer-service三个服务。

6.2 查看拓扑图

User->gateway-service->provider-service->consumer-service

6.3 查看请求链路

可以看到具体的方法调用路径,包括调用花费的时间。

7. 总结

SkyWalking是一个针对分布式系统的应用程序性能监视工具和分析平台。它利用Java Agent探针技术来监控和追踪服务,同时具备零侵入性的特点。通过实时监控和收集关键数据指标,SkyWalking帮助用户快速定位性能瓶颈和异常情况,为分布式系统提供全面的监控和管理服务。


Spring Cloud 微服务系列 完整的代码在仓库的sourcecode/spring-cloud-demo目录下。

gitee(推荐):https://gitee.com/cunzaizhe/xiaohuge-blog

github:https://github.com/tigerleeli/xiaohuge-blog

关注微信公众号:“小虎哥的技术博客”,让我们一起成为更优秀的程序员❤️!


http://www.ppmy.cn/news/1114365.html

相关文章

JavaWeb的基本概念

一、Web基本概念 Web的基本结构: 1.客户端的概述 1.1. 客户端的作用 与用户进行交互,用于接收用户的输入(操作)、展示服务器端的数据以及向服务器传递数据 1.2. 常见的客户端 PC端网页: 移动端: Iot设备: 2…

记一次线程堵塞(挂起)导致消息队列积压

1 背景 A服务作为生产者,每天发送上千万的mq消息,每一个消息包含500个用户ids数据。B服务作为消费者,接受MQ消息并通过http调用第三方请求进行业务处理,消费组启用了rabbitmq的多线程消费组,一个实例并发40个mq消费者…

OJ练习第176题——第二高的薪水

第二高的薪水 力扣链接:176. 第二高的薪水 题目描述 示例 MySQL select max(salary) as SecondHighestSalary from Employee where salary ! (select max(salary) as salary from Employee); #去掉最大后,再去取最大,就是第二大select (s…

DMA简单总结

文章目录 一、基础概念1.1 DMA---Direct Memory Access 直接存储器访问,目的减少CPU资源占用 二、典型DMA硬件模型2.1 基本硬件特性---通道数、源/目标类型,地址与累加方式,数据位宽,搬移长度,循环模式,中断…

工商银行潍坊分行党建RPA机器人项目解析

01 案例背景:银行业掀起引入RPA加速实现数字化转型的浪潮 近年来,金融科技的蓬勃发展极大促进了银行的业务创新,新技术、新业态层出不穷。随着银行业务和科技的融合逐步落实,银行业务正朝着线上化、智能化转变。科技赋能的转型范…

CentOS LVM缩容与扩容步骤

为VM打快照;备份home数据;# yum install xfsdump -y [root@testCentos7 home]# xfsdump -f /dev/home.dump /home xfsdump: using file dump (drive_simple) strategy xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control ===================…

Golang开发--计时器(Timer)和定时器(Ticker)

计时器(Timer) 在 Go 中,可以使用 time 包提供的计时器(Timer)来执行定时任务。计时器允许你在指定的时间间隔后执行某个操作。 time.Timer结构表示一个计时器,它会在指定的时间段后触发单次操作。 创建计…

【PyTorch 攻略 (4/7)】张量和梯度函数

一、说明 W在训练神经网络时,最常用的算法是反向传播。在该算法中,参数(模型权重)根据损失函数相对于给定参数的梯度进行调整。损失函数计算神经网络产生的预期输出和实际输出之间的差异。 目标是获得尽可能接近零的损失函…