微服务请求量监控

有些时候,我们需要监控每个微服务或者集群,实时请求量和历史请求量走势,简单理解就是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
Copyright © wueasy.com 2017-2021 all right reserved,powered by Gitbook未经允许,禁止以任何形式传播 修订时间: 2021-09-12

results matching ""

    No results matching ""