目标
将应用的运行时资源信息、性能指标、调用链信息,使用非侵入字节码注入方式发送到skywalking的12800默认端口,以拓扑图方式展示调用关系。默认使用H2 DateBase数据库存储数据(可根据需求改用ES或Mysql)
源码下载
$ wget http://mirrors.tuna.tsinghua.edu.cn/apache/skywalking/6.4.0/apache-skywalking-apm-6.4.0.tar.gz
解压出配置文件:
- agent/skywalking-agent.jar
- agent/config/agent.config
部分配置:
agent.namespace: 跨进程链路中的header,不同的namespace会导致跨进程的链路中断
agent.service_name:一个服务(项目)的唯一标识,这个字段决定了在sw的UI上的关于service的展示名称
agent.sample_n_per_3_secs: 客户端采样率,默认是-1代表全采样
agent.authentication: 与collector进行通信的安全认证,需要同collector中配置相同
agent.ignore_suffix: 忽略特定请求后缀的trace
collecttor.backend_service: agent需要同collector进行数据传输的IP和端口
logging.level: agent记录日志级别
镜像拉取:
$ docker pull apache/skywalking-oap-server
$ docker pull apache/skywalking-ui
启动脚本
- oap-server
#!/bin/bash docker stop oap docker rm oap docker run --name oap \ -p 11800:11800 \ -p 12800:12800 \ -e TZ=Asia/Shanghai \ --restart always -d apache/skywalking-oap-server \ sh -c 'ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone ' echo 'Done!'
- oap-ui
#!/bin/bash docker stop oap-ui docker rm oap-ui docker rm oap-ui docker run -p 8080:8080 --name oap-ui --restart always -d -e \ SW_OAP_ADDRESS=oap:12800 \ -e TZ=Asia/Shanghai \ apache/skywalking-ui \ sh -c 'ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone ' echo 'Done!'
启动应用配置:
1. IDE intellj
VM options:
-javaagent:/Users/xxx/demoCode/apache-skywalking-apm-bin-2/agent/skywalking-agent.jar
Override parameters:
SW_AGENT_NAME=myapp
2. jar启动
java -javaagent:/Users/xxx/demoCode/apache-skywalking-apm-bin-2/agent/skywalking-agent.jar -Dskywalking.agent.service_name=myapp -jar yourApp.jar
注意:-javaagent 必须在 -jar之前; -Dskywalking.agent.service_name配置会覆盖agent.config 中的SW_AGENT_NAME配置。
浏览器访问UI界面
默认8080端口:localhost:8080
附:Skywalking开源地址