Skywalking初体验
1.tomcat整合skywalking的使用
先修改apache-skywalking-apm-bin/agent/config下的agent.config,给tomcat一个名字
在tomcat的catalina.sh中首行添加
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/wgr/apache-skywalking-apm-bin/agent/skywalking-agent.jar"; export CATALINA_OPTS
然后在把war包丢进tomcat,进行调用
接口的代码如下:
效果图如下:
2.springboot整合skywalking使用
复制一份agent,修改名字
[root@cicd apache-skywalking-apm-bin]# cp -r agent agent_boot
[root@cicd apache-skywalking-apm-bin]# vim agent_boot/config/agent.config
启动jar包
[root@cicd wgr]# java -javaagent:/wgr/apache-skywalking-apm-bin/agent_boot/skywalking-agent.jar -Dserver.port=8082 -jar skywalking_springboot.jar &
[1] 28360
[root@cicd wgr]# DEBUG 2020-08-04 21:23:40:465 main AgentPackagePath : The beacon class location is jar:file:/wgr/apache-skywalking-apm-bin/agent_boot/skywalking-agent.jar!/org/apache/skywalking/apm/agent/core/boot/AgentPackagePath.class.
INFO 2020-08-04 21:23:40:469 main SnifferConfigInitializer : Config file found in /wgr/apache-skywalking-apm-bin/agent_boot/config/agent.config.
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.10.RELEASE)
2020-08-04 21:23:57.564 INFO 28360 --- [ main] c.i.s.SkywalkingSpringbootApplication : Starting SkywalkingSpringbootApplication v0.0.1-SNAPSHOT on cicd with PID 28360 (/wgr/skywalking_springboot.jar started by root in /wgr)
2020-08-04 21:23:57.585 INFO 28360 --- [ main] c.i.s.SkywalkingSpringbootApplication : No active profile set, falling back to default profiles: default
2020-08-04 21:24:01.650 INFO 28360 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8082 (http)
2020-08-04 21:24:01.762 INFO 28360 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2020-08-04 21:24:01.762 INFO 28360 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.27]
2020-08-04 21:24:01.935 INFO 28360 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2020-08-04 21:24:01.935 INFO 28360 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 4091 ms
2020-08-04 21:24:02.505 INFO 28360 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2020-08-04 21:24:02.943 INFO 28360 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8082 (http) with context path ''
2020-08-04 21:24:02.951 INFO 28360 --- [ main] c.i.s.SkywalkingSpringbootApplication : Started SkywalkingSpringbootApplication in 8.399 seconds (JVM running for 22.94)
2020-08-04 21:24:37.924 INFO 28360 --- [nio-8082-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-08-04 21:24:37.933 INFO 28360 --- [nio-8082-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2020-08-04 21:24:38.041 INFO 28360 --- [nio-8082-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 107 ms
3.页面简单介绍
1 仪表盘
打开RocketBot默认会出现仪表盘页面:
仪表盘页面分为两大块:
1. 服务仪表盘,展示服务的调用情况
2.数据库仪表盘,展示数据库的响应时间等数据
选中服务仪表盘,有四个维度的统计数据可以进行查看:
1. 全局,查看全局接口的调用,包括全局响应时长的百分比,最慢的端点,服务的吞吐量等
2.服务,显示服务的响应时长、 SLA、吞吐量等信息
3.端点,显示端点的响应时长、 SLA、吞吐量等信息
4.实例,显示实例的响应时长、 SLA、吞吐量等信息,还可以查看实例的JVM的GC信息、CPU信息、内存信息
2 拓扑图
Skywalking提供拓扑图,直观的查看服务之间的调用关系:
User 代表用户应用,目前案例中其实是浏览器
图中Skywalking_boot应用被User调用,同时显示它是一个Spring MVC的应用。后续案例中会出现多个
应用调用,使用拓扑图就能清楚的分析其调用关系了。
3 追踪
在Skywalking中,每一次用户发起一条请求,就可以视为一条追踪数据,每条追踪数据携带有一个ID值。追踪数据在追踪页面中可以进行查询:
左侧是追踪列表,也可以通过上方的追踪 ID来进行查询。点击追踪列表某一条记录之后,右侧会显示出
此条追踪的详细信息。有三种显示效果:
1.列表
2.树结构
3.表格
可以很好的展现此条追踪的调用链情况而链路上每个节点,可以通过左键点击节点查看详细信息:
当前的接口是 HTTP的GET请求,相对比较简单,后续的示例中出现异常情况或者数据库访问,可以打印出异常信息、堆栈甚至详细的SQL语句。
4 告警
Skywalking中的告警功能相对比较简单,在达到告警阈值之后会生成一条告警记录,在告警页面上进行
展示。后面在详细的研究一下。