微服务请求量监控
有些时候,我们需要监控每个微服务或者集群,实时请求量和历史请求量走势,简单理解就是qps。
演示地址:https://monitor.demo.wueasy.com
支持bus和springcloud服务端接口请求监控
服务端部署
安装influxdb数据库
更多influxdb文档请参考https://jasper-zhang1.gitbooks.io/influxdb/content/
准备
安装InfluxDB包需要root或是有管理员权限才可以。
网络
InfluxDB默认使用下面的网络端口:
TCP端口
8086
用作InfluxDB的客户端和服务端的http api通信TCP端口
8088
给备份和恢复数据的RPC服务使用另外,InfluxDB也提供了多个可能需要自定义端口的插件,所以的端口映射都可以通过配置文件修改,对于默认安装的InfluxDB,这个配置文件位于
/etc/influxdb/influxdb.conf
。
RedHat & CentOS
RedHat和CentOS用户可以直接用yum
包管理来安装最新版本的InfluxDB。
cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository - RHEL \$releasever
baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
EOF
一旦加到了yum
源里面,就可以运行下面的命令来安装和启动InfluxDB服务:
sudo yum install influxdb
sudo service influxdb start
如果你的系统可以使用Systemd(比如CentOS 7+, RHEL 7+),也可以这样启动:
sudo yum install influxdb
sudo systemctl start influxdb
创建数据库
influxdb #连接数据库
CREATE DATABASE monitordb #创建数据库
部署监控服务
引入依赖后,配置打包发布
引入依赖包
<dependency>
<groupId>com.wueasy</groupId>
<artifactId>wueasy-springcloud-web</artifactId>
</dependency>
<dependency>
<groupId>com.wueasy</groupId>
<artifactId>wueasy-monitor-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
启动类
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class,DataSourceTransactionManagerAutoConfiguration.class}) //开启组件扫描和自动配置
@ComponentScan(basePackages="com.wueasy")
@EnableFeignClients
public class Application
{
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
数据库配置
wueasy:
data:
influxdb:
monitor:
url: http://127.0.0.1:8086
username: root
password: root
database: monitordb
服务数据库配置
需要配置启动协议和websocket端口
启动协议支持:
BUS
: 仅启动bus监控SPRINGCLOUD
: 仅启动springcloud监控BUS_SPRINGCLOUD
: 同时启动bus和springcloud监控
wueasy:
monitor:
server:
type: BUS_SPRINGCLOUD #启动协议
websocket:
port: 9326 #websocket端口
bus注册中心配置
使用zookeeper注册中心
wueasy :
# localIp : 192.0.0.1 #指定本机ip地址
#zookeeper注册中心地址
zk :
servers : 127.0.0.1:2181
sessionTimeout : 3000
connectionTimeout : 5000
springcloud注册中心配置
使用eureka注册中心
eureka:
instance:
prefer-ip-address: true
lease-expiration-duration-in-seconds: 15 #服务过期时间配置,超过这个时间没有接收到心跳EurekaServer就会将这个实例剔除
lease-renewal-interval-in-seconds: 5 #服务刷新时间配置,每隔这个时间会主动心跳一次
client:
registryFetchIntervalSeconds: 5 #client刷新本地缓存时间
serviceUrl:
defaultZone: http://127.0.0.1:8000/eureka/
feign:
client:
config:
default:
connectTimeout: 5000 #连接超时时间
readTimeout: 5000 #请求与响应的时间间隔阈值
ribbon:
serverListRefreshInterval: 5000 #eureka客户端ribbon刷新时间
ConnectTimeout: 1000 #建立连接时间
ReadTimeout: 1000 #连接超时时间
客户端使用
需要在客户端配置启用监控,配置后会自动从注册中心发现监控服务,默认不启动
bus客户端启用
wueasy:
bus:
monitor:
enabled: true
springcloud客户端启用
wueasy:
monitor:
client:
enabled: true