当我们在前端点击按钮发起请求,但是没有成功的时候,如何排查到底是哪一个环节出了问题呢?大家是不是也很好奇呢?我们采取的办法是探针的方式,大家可以知道电工有电流表检测排查,那我们的程序何尝不是复杂的电力系统呢?我们是否也可以使用这种探针的方式(分治)逐渐缩小检测范围呢?于是就有人发明了SkyWalking 来检测生病的java程序。以便发生故障的时候,能快速定位和解决。
Skywalking是分布式系统的应用程序性能监视工具,专为微服务,云原生架构和基于容器(Docker,K8S,Mesos)架构而设计,它是一款优秀的APM(Application Performance Management)工具,包括了分布式追踪,性能指标分析和服务依赖分析等。
Apache SkyWalking(简称SkyWalking)是一个开源的应用性能监控系统,旨在帮助开发者监控和分析分布式系统、微服务架构和云原生应用的性能表现。它可以帮助用户追踪请求在系统中的流转,了解服务间的依赖关系、性能指标和调用链,从而优化应用的性能和可靠性。
SkyWalking的主要特点和功能包括:
分布式追踪: SkyWalking可以跟踪请求在分布式系统中的流转,展示调用链、服务依赖、响应时间等信息,帮助识别性能瓶颈和故障。
性能指标监控: 它收集并展示系统和服务的性能指标,如吞吐量、响应时间、错误率等,用于实时监控系统的运行状态。
应用拓扑图: SkyWalking可以生成应用的拓扑图,显示不同组件之间的依赖关系,有助于理解应用架构。
插件支持: SkyWalking支持多种编程语言和框架,以及不同的后端存储,使其适用于不同的应用场景。
告警和报警: 它提供了基于性能指标的告警功能,当指标超过阈值时,可以触发告警通知。
可视化界面: SkyWalking提供了Web界面,用于展示监控数据、性能指标和拓扑图,使用户能够方便地进行分析。
支持云原生: 它支持云原生架构,如Kubernetes、Docker等,以及微服务架构,为应用部署在不同环境中提供支持。
SkyWalking支持多种语言和编程框架,如Java、Python、Go、.NET等,通过在应用代码中集成SkyWalking的代理,可以实现对应用性能的监控。同时,SkyWalking也提供了与多种后端存储系统(如Elasticsearch、MySQL等)的集成,以便存储和查询监控数据。
总体而言,Apache SkyWalking是一个强大的应用性能监控系统,适用于分布式系统和微服务架构,可以帮助开发者实时追踪和优化应用性能。
2. 解压文件,一定不要放在中文路径下
3. 在apache-skywalking-apm-bin/webapp的路径下,编辑webapp.yml文件,将8080端口改成电脑中未用到过的端口,以免发生端口冲突的问题
4. 点击apache-skywalking-apm-bin/bin路径下的startup.bat运行
-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界面进项查看:
<!-- SkyWalking工具类 跟服务版本一致 -->
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-trace</artifactId>
<version>8.5.0</version>
</dependency>
</dependencies>
@Trace
@Tags({@Tag(key=“param”,value = “arg[0]”),@Tag(key=“returned”,value = “returnedObj”)})
3、测试是否加入成功,先重新运行项目,然后刷新Skywalking界面,按照下图步骤操作:这里是入参和出参。