skywalking入门指南
全链路追踪的作用?
对请求源头到底层服务的调用链路中间的所有环节进行监控。
Skywalking是什么?
官方网址,https://skywalking.apache.org/。
skywalking是分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于架构(Docker、K8s、Messos)架构而设计。
Skywalking是观察性分析平台和应用性能管理系统,提供分布式追踪、服务网格摇测分析、度量聚合和可视化一体化解决方案。
Skywalking整个构架
整个架构分成四部分:
- 上部分Agent :负责从应用中,收集链路信息,发送给 SkyWalking OAP 服务器;
- 下部分 SkyWalking OAP :负责接收Agent发送的Tracing数据信息,然后进行分析(Analysis Core),存储到外部存储器(Storage),最终提供查询(Query)功能;
- 右部分Storage:Tracing数据存储,目前支持ES、MySQL、Sharding Sphere、TiDB、H2多种存储器,目前采用较多的是ES,主要考虑是SkyWalking开发团队自己的生产环境采用ES为主;
- 左部分SkyWalking UI:负责提供控制台,查看链路等等;
Skywalking环境搭建部署
-
下载skywalking
-
搭建skywalking OAP服务
- 修改配置
- 先使用默认的H2数据库存储,不用修改cofing/application.yml
- windown下启动脚本bin/startup.bat,启动成功后会启动两个服务,一个是skywalking-oap-server,一个是skywalking-web-ui
- 访问UI界面,如果端口改为18080,访问:http://localhost:18080/
微服务接入探针
微服务配置jvm参数,接入skywalking
以订单服务为例,idea启动配置中在jvm参数配置skywalking agent
java
-javaagent:D:\apache\skywalking\apache-skywalking-java-agent-9.3.0\skywalking-agent\skywalking-agent.jar
-DSW_AGENT_NAME=tlmall-order
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=tlmall-skywalking-server:11800
测试,用户下单,在skywalking UI界面可以看到链路信息
常见问题
- 没有查看到网关服务的数据
- 需要将agent包的optional-plugins/apm-spring-cloud-gateway-4.x-plugin-9.3.0.jar拷 贝到agent的plugins目录下,重启agent。
- 网关服务整个日志构架后不打印traceId,参考解决