源码流程图: https://www.processon.com/view/link/611fc4c85653bb6788db4039#map

中文文档: https://wu-sheng.gitbooks.io/opentracing-io/content/pages/api/api-implementations.html

github: https://github.com/apache/skywalking

插件指南: https://skywalking.apache.org/docs/main/v8.7.0/en/guides/java-plugin-development-guide/

集成日志: https://skywalking.apache.org/docs/main/v8.7.0/en/setup/service-agent/java-agent/application-toolkit-logback-1.x/

告警指南: https://skywalking.apache.org/docs/main/v8.7.0/en/setup/backend/backend-alarm/#webhook

1. agent的使用

agent探针可以让我们不修改代码的情况下,对java应用上使用到的组件进行动态监控,获取运行数据发送到OAP上进行统计和存储。agent探针在java中是使用java agent技术实现的,不需要更改任何代码,java agent会通过虚拟机(VM)接口来在运行期更改代码。

Agent探针支持 JDK 1.6 - 12的版本,Agent探针所有的文件在Skywalking的agent文件夹下。部分插件在使用上会影响整体的性能或者由于版权问题放置于可选插件包中,不会直接加载,如果需要使用,将可选插件中的jar包拷贝到plugins包下。

由于没有修改agent探针中的应用名,所以默认显示的是Your_ApplicationName。我们修改下应用名称,让他显示的更加正确。编辑agent配置文件:

cd /usr/local/skywalking/apache-skywalking-apm-bin/agent/config 
vi agent.config

我们在配置中找到这么一行:

# 标题

# The service name in UI

agent.service_name=${SW_AGENT_NAME:Your_ApplicationName}

这里的配置含义是可以读取到SW_AGENT_NAME配置属性,如果该配置没有指定,那么默认名称为Your_ApplicationName。

2. 在tomcat当中使用

将tomcat的安装包放到skywalking目录下并解压

  1. 要使用Skywalking监控Tomcat中的应用,需要先准备一个Spring Mvc项目,在资源中已经提供了打包好的文件,将它放置到webapp下
  2. 编辑 /usr/local/skywalking/apache-tomcat-8.5.47/bin/catalina.sh 文件,在文件顶部添加:
CATALINA_OPTS="$CATALINA_OPTS 
-javaagent:/usr/local/skywalking/apache-skywalking-apm-bin/agent/skywalking-agent.jar"; 
export CATALINA_OPTS

修改tomcat启动端口:

vi conf/server.xml 
#修改这一行的端口为8081 
<Connector port="8080" protocol=...

skywalking java启动 skywalking jvm 设置_skywalking


执行bin目录下的./startup.sh 文件启动tomcat。然后访问地址:

http://虚拟机IP:8081/skywalking_springmvc-1.0-SNAPSHOT/hello/sayHello.do

出现下面信息表示tomcat启动成功

skywalking java启动 skywalking jvm 设置_java_02


此时再访问Skywalking的页面,会发现出现了一个服务和端点,同时有一笔调用显示了调用的应用名和接口地址。

3. 在SpringBoot当中使用

这里采用window本地启动skywalking的方式,集成单个SpringBoot应用;

  1. 下载skywalking并本地解压;
  2. 修改webapp的端口,因为skywalking的UI端口默认是8080,为防止端口占用,这里我们修改一下:

skywalking java启动 skywalking jvm 设置_skywalking_03


3. 启动skywalking 双击 startup.bat脚本即可

skywalking java启动 skywalking jvm 设置_apache_04


4. 启动本地Springboot项目,只不过在启动之前记得加上如下参数在VM里面

skywalking java启动 skywalking jvm 设置_skywalking_05


其中 skywalking.agent.service_name 后面是你的服务名

-javaagent:D:\data\local-skywalking\apache-skywalking-apm-bin-es7\agent\skywalking-agent.jar
-Dskywalking.collector.backend_service=localhost:11800
-Dskywalking.agent.service_name=serviceTree
  1. 启动完成之后就可以在skywalking内看到服务了