SkyWalking项目实战

本文涉及的产品
可观测链路 OpenTelemetry 版,每月50GB免费额度
应用实时监控服务ARMS - 应用监控,每月50GB免费额度
简介: 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界面,按照下图步骤操作:这里是入参和出参。

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

相关实践学习
通过云拨测对指定服务器进行Ping/DNS监测
本实验将通过云拨测对指定服务器进行Ping/DNS监测,评估网站服务质量和用户体验。
相关文章
|
5月前
|
消息中间件 缓存 Java
ELK技术栈 - logstash学习笔记(九)
ELK技术栈 - logstash学习笔记(九)
67 0
|
2月前
|
消息中间件 Kafka 网络安全
一文吃透企业级elk技术栈:elk 各组件调试
调试需先理解逻辑与程序调用顺序。本文介绍filebeat、kafka、logstash和es的数据推送流程及调试方法:filebeat传输数据检查包括服务状态、配置与日志;kafka调试涵盖服务状态、端口与日志;logstash调试需检查配置文件、日志与流量;es直接通过kibana查看。还介绍了使用rsyslog接收防火墙/waf/交换机日志的方法。
|
数据可视化 前端开发 网络协议
分布式实战 | 第一篇 :ELK在开源全栈项目【有来商城】的应用,不仅仅是分布式日志收集(一)
分布式实战 | 第一篇 :ELK在开源全栈项目【有来商城】的应用,不仅仅是分布式日志收集(一)
|
5月前
|
编解码 JSON Java
ELK技术栈 - logstash学习笔记(四)
ELK技术栈 - logstash学习笔记(四)
63 0
|
5月前
|
存储 编解码 自然语言处理
ELK技术栈 - logstash学习笔记(七)
ELK技术栈 - logstash学习笔记(七)
72 0
|
5月前
|
存储 监控 NoSQL
ELK技术栈 - logstash学习笔记(八)
ELK技术栈 - logstash学习笔记(八)
55 0
|
5月前
|
消息中间件 监控 网络协议
ELK技术栈 - logstash学习笔记(二)
ELK技术栈 - logstash学习笔记(二)
61 0
|
5月前
|
存储 JSON NoSQL
ELK技术栈 - logstash学习笔记(三)
ELK技术栈 - logstash学习笔记(三)
66 0
|
5月前
|
编解码 Unix 应用服务中间件
ELK技术栈 - logstash学习笔记(五)
ELK技术栈 - logstash学习笔记(五)
52 0
|
5月前
|
JSON 编解码 运维
ELK技术栈 - logstash学习笔记(六)
ELK技术栈 - logstash学习笔记(六)
58 0