work hard work smart

专注于Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

监控工具: 单机版本Skywalking使用

Posted on 2020-12-12 23:13  work hard work smart  阅读(1105)  评论(0编辑  收藏  举报

1、Skywalking是什么

适用于分布式系统性能监控工具

官方文档地址:

https://github.com/apache/skywalking/tree/v6.6.0/docs

中文文档

http://itmuch.com/books/skywalking/

 

2、Skywalking提供的功能

服务,服务实例,端点指标分析

根本原因分析

服务拓扑图分析

服务,服务实例和端点依赖分析

检测到慢速服务和端点

性能优化

分布式跟踪和上下文传播

数据库访问指标

告警

 

3、单机版本Skywalking使用

1) 下载

下载: http://skywalking.apache.org/downloads/

我这里下载的是6.6.0

https://archive.apache.org/dist/skywalking/6.6.0/

 

2) 环境要求

(1) JDK版本在JDK8-JDK12之间

ElasticSearch7版本,需要JDK11+

(2) 确保如下端口可用

  11800:和Skywalking通信的gRPC端口

   12800: 和Skywalking通信的HTTP端口

   8080: UI所占用的端口

 

查看端口是否被占用

Linux/macOS

netstat -an | grep 8080

windows

netstat -ano|findstr 8080

 

3) 安装&启动

Linux

cd apache-skywalking-apm-bin/bin

sh startup.sh

 

Window

cd apache-skywalking-apm-bin/bin

startup.bat

 

访问首页  localhost:8080

 

 

 

4) 如何使用

目前最流行的使用方式是基于Java agent

Java agent支持的框架、中间件等,https://github.com/apache/skywalking/blob/v6.6.0/docs/en/setup/service-agent/java-agent/Supported-list.md可在查看。

 (1)  找到SkyWalking包中的agent目录,agent目录结构如下

 

 将agent目录拷贝到任意位置

 

(2) 配置config/agent.config

将agent.service_name 修改成微服务的名称

 

 

 

(3) 如果想在IDE中启动测试,配置如下

 

 

 

 

 (4) 查看

 

15 cpm :  一定程度反映当前程序的吞吐量或者并发数

 

最慢的几个端点

 

 

API响应时间的统计值

 

 

数据库情况

 

 

拓扑图可以查看服务调用去向

 

追踪

可以查看在各个服务所占用的时间

 

 

5) Jar的方式启动

java   -javaagent:C:\Users\Think\Desktop\Skywalking\agent\skywalking-agent.jar   -jar   xxx.jar

对应Tomcat (linux)

修改  tomcat/bin/catalina.sh的第一行

 

 

 

  补充:

配置采样并打印SQL详情

-javaagent:C:\Users\xxx\Desktop\Skywalking\agent\skywalking-agent.jar -Dskywalking.agent.sample_n_per_3_secs=1  -Dskywalking.plugin.mysql.trace_sql_parameters=true -Dskywalking.plugin.mysql.sql_parameters_max_length=200  -Dskywalking.agent.service_name=order

采样率设置:  -Dskywalking.agent.sample_n_per_3_secs=1 每隔3秒收集1条记录

打印SQL设置: -Dskywalking.plugin.mysql.trace_sql_parameters=true -Dskywalking.plugin.mysql.sql_parameters_max_length=200