Skywalking 使用记录
skywalking+docker安装
1. pull 依赖
docker pull apache/skywalking-oap-server
docker pull apache/skywalking-ui
2.启动容器
docker run --name dwalking -d -p 1234:1234 -p 11800:11800 -p 12800:12800 --restart always apache/skywalking-oap-server:8.9.1
docker run --name skywalking-ui -d -p 8090:8080 --link skywalking:skywalking -e SW_OAP_ADDRESS=skywalking:12800 --restart always apache/skywalking-ui:8.9.1
3.Docker-Compose.yml
version: '3'
services:
skywalking-oap:
image: harbor.xxxxxxx/skywalking-oap-server:latest
container_name: oap
restart: always
volumes:
- ./skywalking_db:/opt/skywalking
- ./conf/application.yml:/skywalking/config/application.yml
ports:
- "1234:1234"
- "12800:12800"
- "11800:11800"
skywalking-ui:
image: apache/skywalking-ui:8.5.0
container_name: ui
restart: always
depends_on:
- oap
links:
- oap
ports:
- "8090:8080"
environment:
SW_OAP_ADDRESS: http://oap:12800
skywalking 存储
- 默认h2存储 (支持elasticsearch , mysql ,tidb,influxdb,postgresql等)
- 修改skywalking存储 ----修改application.yml文档(storage)
springboot集成skywalking
1.设定启动参数
javaagent: 用于指定探针路径。指定agent包位置. Dskywalking.agent.service_name: 用于重写 agent/config/agent.config 配置文件中的服务名 Dskywalking.collector.backend_service: 用于重写agent/config/agent.config 配置文件中的服务地址
java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar
-Dskywalking.agent.service_name=toutou_blog
-Dskywalking.collector.backend_service=127.0.0.1:11800
-jar yourApp.jar
2.引入LOG
a.引入依赖
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-logback-1.x</artifactId>
<version>8.9.0</version>
</dependency>
b.引入追踪ID
方式一:在原有的logback打印中加入[%tid]
<!--控制台日志, 控制台输出 --
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout"
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度,%msg:日志消息,%n是换行符--
<pattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid][%thread] %-5level %logger{50}[%L]- %msg%n</pattern
</layout
</encoder
</appender
<!-- 日志输出级别 --
<root level="INFO"
<appender-ref ref="STDOUT"/
</root
方式二:
<conversionRule conversionWord="tid" converterClass="org.apache.skywalking.apm.toolkit.log.logback.v1.x.LogbackPatternConverter"/
<!--控制台日志, 控制台输出 --
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度,%msg:日志消息,%n是换行符--
<pattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid][%thread] %-5level %logger{50}[%L]- %msg%n</pattern
</encoder
</appender
<!-- 日志输出级别 --
<root level="INFO"
<appender-ref ref="STDOUT"/
</root
若skywalking与服务不在同一服务器,需要修改探针中的配置文件 plugin.toolkit.log.grpc.reporter.server_host=
S
W
G
R
P
C
L
O
G
S
E
R
V
E
R
H
O
S
T
:
127.0.0.1
p
l
u
g
i
n
.
t
o
o
l
k
i
t
.
l
o
g
.
g
r
p
c
.
r
e
p
o
r
t
e
r
.
s
e
r
v
e
r
p
o
r
t
=
{SW_GRPC_LOG_SERVER_HOST:127.0.0.1} plugin.toolkit.log.grpc.reporter.server_port=
SWG?RPCL?OGS?ERVERH?OST:127.0.0.1plugin.toolkit.log.grpc.reporter.serverp?ort={SW_GRPC_LOG_SERVER_PORT:11800} plugin.toolkit.log.grpc.reporter.max_message_size=
S
W
G
R
P
C
L
O
G
M
A
X
M
E
S
S
A
G
E
S
I
Z
E
:
10485760
p
l
u
g
i
n
.
t
o
o
l
k
i
t
.
l
o
g
.
g
r
p
c
.
r
e
p
o
r
t
e
r
.
u
p
s
t
r
e
a
m
t
i
m
e
o
u
t
=
{SW_GRPC_LOG_MAX_MESSAGE_SIZE:10485760} plugin.toolkit.log.grpc.reporter.upstream_timeout=
SWG?RPCL?OGM?AXM?ESSAGES?IZE:10485760plugin.toolkit.log.grpc.reporter.upstreamt?imeout={SW_GRPC_LOG_GRPC_UPSTREAM_TIMEOUT:30}
Skywalking UI参数
1. CPM :每分钟请求调用的次数
2. Slow Services: 慢响应服务,单位ms
3. Un-Health services(Apdex): Apdex性能指标,1为满分
4. Slow Endpoint: 慢响应端点,单位ms
Apdex性能指标:
5. Global Response Latency : 百分比响应延时,不同百分比的延时时间 例如: 99%的请求响应低于580ms 95%的低于80ms
6. Global Heatmap:服务响应时间热力分布图,根据时间段内不同响应时间的数量显示颜色深度
1. Service Apdex(数字):当前服务的评分;
2. Service Apdex(折线图):不同时间的Apdex评分;
3. Service Avg Response Times:平均响应延时,单位ms;
4. Service Response Time Percentile:百分比响应延时;
5. Successful Rate(数字):请求成功率;
6. Successful Rate(折线图):不同时间的请求成功率;
7. Service Load(数字):每分钟请求数;
8. Service Load(折线图):不同时间的每分钟请求数;
9. Service Instances Load:每个服务实例的每分钟请求数;
10. Show Service Instance:每个服务实例的最大延时;
11. Service Instance Successful Rate:每个服务实例的请求成功率;
Service Instance Load:当前实例的每分钟请求数;
Service Instance Successful Rate:当前实例的请求成功率;
Service Instance Latency:当前实例的响应延时;
JVM CPU:jvm占用CPU的百分比;
JVM Memory:JVM内存占用大小,单位m;
JVM GC Time:JVM垃圾回收时间,包含YGC和OGC;
JVM GC Count:JVM垃圾回收次数,包含YGC和OGC;
JVM Thread Count:JVM线程数;
Endpoint端点(API)维度
Endpoint Load in Current Service:每个端点的每分钟请求数;
Slow Endpoints in Current Service:每个端点的最慢请求时间,单位ms;
Successful Rate in Current Service:每个端点的请求成功率;
Endpoint Load:当前端点每个时间段的请求数据;
Endpoint Avg Response Time:当前端点每个时间段的请求行响应时间;
Endpoint Response Time Percentile:当前端点每个时间段的响应时间占比;
Endpoint Successful Rate:当前端点每个时间段的请求成功率;
|