出自图灵学院

    准备一个springboot程序,打成可执行jar包,写一个shell脚本,在启动项目的Shell脚本上,通过 -javaagent 参数进行配置SkyWalking Agent来跟踪微服务;
    startup.sh脚本:

    1. #!/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启动

    启动日志
    通过jar包方式接入 - 图1
    等同于

    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参数配置方式优先级更高

    -javaagent:D:\apache\apache-skywalking-apm-es7-8.4.0\apache-skywalking-apm-bin-es7\agent\skywalking-agent.jar
    -Dskywalking.agent.service_name=springboot-skywalking-demo
    -Dskywalking.collector.backend_service=192.168.3.100:11800
    

    通过jar包方式接入 - 图2
    测试: http://192.168.3.100:8000/user/list
    在启动程序前加一个-javaagent 参数即可完成对程序的跟踪
    通过jar包方式接入 - 图3