SkyWalking项目实战

简介: SkyWalking项目实战

背景:

当我们在前端点击按钮发起请求,但是没有成功的时候,如何排查到底是哪一个环节出了问题呢?大家是不是也很好奇呢?我们采取的办法是探针的方式,大家可以知道电工有电流表检测排查,那我们的程序何尝不是复杂的电力系统呢?我们是否也可以使用这种探针的方式(分治)逐渐缩小检测范围呢?于是就有人发明了SkyWalking 来检测生病的java程序。以便发生故障的时候,能快速定位和解决。

概念:

Skywalking是分布式系统的应用程序性能监视工具,专为微服务,云原生架构和基于容器(Docker,K8S,Mesos)架构而设计,它是一款优秀的APM(Application Performance Management)工具,包括了分布式追踪,性能指标分析和服务依赖分析等。

方案选型

SkyWalking

(一)安装、访问SkyWalking基础界面:

  1. 下载SkyWalking:
    http://archive.apache.org/dist/skywalking/8.5.0/

2. 解压文件,一定不要放在中文路径下

3. 在apache-skywalking-apm-bin/webapp的路径下,编辑webapp.yml文件,将8080端口改成电脑中未用到过的端口,以免发生端口冲突的问题

4. 点击apache-skywalking-apm-bin/bin路径下的startup.bat运行

  1. 以上的步骤操作完成后,已经能够正常访问skywalking页面了,请输入网址进行测试:(端口号是你在webapp.yml文件中设置的)

(二)在项目中进行链路追踪

  1. 在项目中应用探针技术,来进行链路追踪。编辑如图所示位置:
    首先找到服务:打开各个模块步骤
    然后按照下图操作:
-javaagent:D:\Desktop\apache-skywalking-apm-bin\agent\skywalking-agent.jar 
-DSW_AGENT_NAME=prosper-gateway
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800

注意:

第一行改成自己jar包位置

第二行改成自己的项目名称或者模块名称

2、将程序运行测试,先对程序中的其中一个接口进行访问,然后刷新SkyWalking界面进项查看:

(三)自定义链路追踪

  1. 如果我们希望对项目中的业务方法,实现自定义链路追踪,方便我们排查问题,可以引入此依赖:
<!--    SkyWalking工具类 跟服务版本一致   -->
        <dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-trace</artifactId>
            <version>8.5.0</version>
        </dependency>
    </dependencies>
  1. 在想要追踪的方法上,加入注解,如图:

@Trace

@Tags({@Tag(key=“param”,value = “arg[0]”),@Tag(key=“returned”,value = “returnedObj”)})

3、测试是否加入成功,先重新运行项目,然后刷新Skywalking界面,按照下图步骤操作:这里是入参和出参。

使用这项技术可以直接找到请求的哪个部分出现问题

相关实践学习
通过轻量消息队列(原MNS)主题HTTP订阅+ARMS实现自定义数据多渠道告警
本场景将自定义告警信息同时分发至多个通知渠道的需求,例如短信、电子邮件及钉钉群组等。通过采用轻量消息队列(原 MNS)的主题模型的HTTP订阅方式,并结合应用实时监控服务提供的自定义集成能力,使得您能够以简便的配置方式实现上述多渠道同步通知的功能。
相关文章
|
传感器 存储 数据采集
04 深度解析物联网架构与技术应用于农业大棚系统
本文将深入探讨物联网架构在农业大棚系统中的应用,从设备接入、边缘网关、数据传输到云平台和应用平台,逐层解析其技术应用与通信协议,为读者全面呈现物联网在农业领域的实际运用场景。
843 0
|
机器学习/深度学习 Web App开发 数据可视化
训练可视化工具哪款是你的菜?MMCV一行代码随你挑
在深度学习中可视化模型的训练过程有助于我们分析模型的状态。可视化训练过程的库很多,我们将一些常用的库集成到 MMCV 中方便用户使用。在 MMCV 中使用这些库只需简单配置。在本文中将介绍这些库以及它们在 MMCV 中的使用方法。
1407 0
训练可视化工具哪款是你的菜?MMCV一行代码随你挑
|
10月前
|
NoSQL Java 数据库连接
《深入理解Spring》Spring Data——数据访问的统一抽象与极致简化
Spring Data通过Repository抽象和方法名派生查询,简化数据访问层开发,告别冗余CRUD代码。支持JPA、MongoDB、Redis等多种存储,统一编程模型,提升开发效率与架构灵活性,是Java开发者必备利器。(238字)
|
人工智能 JSON UED
分享:claude怎么用?记住这10大使用技巧一定事半功倍!
分享:claude怎么用?记住这10大使用技巧一定事半功倍!
1332 4
分享:claude怎么用?记住这10大使用技巧一定事半功倍!
|
数据采集 存储 运维
如何使用SkyWalking收集分析分布式系统的追踪数据
通过以上步骤,你可以使用 SkyWalking 工具实现对分布式系统的数据采集和可视化。SkyWalking 提供了强大的追踪和度量功能,帮助开发者和运维人员更好地理解系统的性能状况。欢迎关注威哥爱编程,一起学习成长。
931 0
|
负载均衡 监控 Java
SpringCloud常见面试题(一):SpringCloud 5大组件,服务注册和发现,nacos与eureka区别,服务雪崩、服务熔断、服务降级,微服务监控
SpringCloud常见面试题(一):SpringCloud 5大组件,服务注册和发现,nacos与eureka区别,服务雪崩、服务熔断、服务降级,微服务监控
33709 8
SpringCloud常见面试题(一):SpringCloud 5大组件,服务注册和发现,nacos与eureka区别,服务雪崩、服务熔断、服务降级,微服务监控
|
Java 开发者 数据格式
【Java笔记+踩坑】SpringBoot基础4——原理篇
bean的8种加载方式,自动配置原理、自定义starter开发、SpringBoot程序启动流程解析
【Java笔记+踩坑】SpringBoot基础4——原理篇
|
Java 开发工具
开发工具系列 之 同一个电脑上安装多个版本的JDK
这篇文章介绍了如何在一台电脑上安装和配置多个版本的JDK,包括从官网下载所需JDK、安装过程、配置环境变量以及如何查看和切换当前使用的JDK版本,并提到了如果IDEA和JDK版本不兼容时的解决方法。
开发工具系列 之 同一个电脑上安装多个版本的JDK
|
Prometheus 监控 Cloud Native
SpringCloud微服务实战——搭建企业级开发框架(四十五):【微服务监控告警实现方式二】使用Actuator(Micrometer)+Prometheus+Grafana实现完整的微服务监控
无论是使用SpringBootAdmin还是使用Prometheus+Grafana都离不开SpringBoot提供的核心组件Actuator。提到Actuator,又不得不提Micrometer,从SpringBoot2.x开始,Actuator的功能实现都是基于Micrometer的。
1842 57
|
Java 数据安全/隐私保护 Windows
ElasticSearch设置密码Windows
ElasticSearch设置密码Windows
1230 0

热门文章

最新文章