Linux环境
通过jar包方式接入
准备一个springboot可执行jar包,在启动脚本上,通过 -javaagent 参数进行配置SkyWalking Agent来跟踪微服务;
- startup.sh
#!/bin/sh
2 # SkyWalking Agent配置
3 export SW_AGENT_NAME=springboot‐skywalking‐demo #Agent名字,一般使用`spring.application.name`
4 export SW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800 #配置 Collector 地址。
5 export SW_AGENT_SPAN_LIMIT=2000 #配置链路的最大Span数量,默认为 300。
6 export JAVA_AGENT=‐javaagent:/usr/local/soft/apache‐skywalking‐apm‐bin‐es7/agent/skywalking‐agent.jar
7 java $JAVA_AGENT ‐jar springboot‐skywalking‐demo‐0.0.1‐SNAPSHOT.jar #jar启动
等同于
java ‐javaagent:/usr/local/soft/apache‐skywalking‐apm‐bin‐es7/agent/skywalking‐agent.jar
‐DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800
‐DSW_AGENT_NAME=springboot‐skywalking‐demo ‐jar springboot‐skywalking‐demo‐0.0.1‐SNAPSHOT.jar
参数说明
- 参数名对应agent/config/agent.config配置文件中的属性。
- 属性对应的源码:org.apache.skywalking.apm.agent.core.conf.Config.java
# The service name in UI
agent.service_name=${SW_AGENT_NAME:Your_ApplicationName}
# Backend service addresses.
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800}
可以使用skywalking.+ 配置文件中的配置名作为系统配置项来进行覆盖。 注意:javaagent 参数配置方式优先级更高
测试访问
Windows环境
IDEA中使用SkyWalking
- 运行的程序配置jvm参数
# skywalking‐agent.jar的本地磁盘的路径
‐javaagent:D:\apache\apache‐skywalking‐apm‐es7‐8.4.0\apache‐skywalking‐apm‐bin‐es7\agent\skywalking‐agent.jar
# 在skywalking上显示的服务名
‐DSW_AGENT_NAME=springboot-skywalking-demo
# skywalking的collector服务的IP及端口
‐DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800
注意事项
- -DSW_AGENT_COLLECTOR_BACKEND_SERVICES: 可以指定远程地址
- -javaagent :必须绑定本机物理路径的 skywalkingagent.jar
如下图:
启动日志
测试访问
http://127.0.0.1:8040/order/add
- 注册上来的 skywalking-order-service
- 请求链路跟踪
- 拓扑图
跨多微服务跟踪
跨多微服务跟踪,只需要每个微服务启动时添加javaagent参数即可
测试访问
http://127.0.0.1:8040/order/add
- 服务注册
- 拓扑
- 链路
网关 Gateway
网关服务
测试访问
- 链路
- 拓扑
我们发现竟然没用 gateway 节点 以及 链路 ??
Bug解决
注意:这是 bug,跟踪链路不显示 gateway
- 拷贝 agent/optional-plugins 目录下的 gateway插件 到 agent/plugins 目录
- 复制 apm-spring-cloud-gateway-2.1.x-plugin-8.4.0.jar 到 agent/plugins 目录 下
- 重启 SkyWalking 以及 服务
测试访问
- 链路
- 拓扑