springboot-性能指标监控

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yhhyhhyhhyhh/article/details/84443001

springboot-admin:性能指标监控

完整代码下载链接:

springboot-admin-server

环境

idea2018,jdk1.8,

springboot版本:springboot1.5.9.RELEASE,

1.springboot-admin原理

1)服务端和客户端:

/**
 * 1)客户端启动后会实例化RegistrationApplicationListener,listener默认会每隔10s到服务端去注册下,如果已经存在,服务端会refresh(通过/api/applications 接口向服务端心跳检测;服务端通过定时轮询
 (每隔10s)客户端的/health接口来对客户端进行心态检测)
 * 2)在跟服务器注册之前,客户端会先实例化Application信息,获取相应的信息,然后通过restful http post请求跟服务器交互
 * 3)服务端代码逻辑:服务器端首先会根据客户端的HealthUrl,通过SHA-1 算法得到客户端的id值,借此区分不同的客户端节点
 * 4)获取到客户端id后,从服务端保存的ConcurrentHashMap 对象中,根据id获取客户端状态信息,如果存在状态信息,则refresh或者replace,否则往map中新加客户端信息
 * 5)客户端注册到服务端,会由服务端维护一层路由映射,会在路径上添加前缀、客户端id和后缀,默认前缀为:/api/applications  后缀:/**
 */

2)http请求流程:

/**
 * http请求流程:
 * url请求(带有具体的客户端id)  -> 经过服务器端路由映射-> 具体节点的访问路径 -> 调用Spring Boot Autuator 监控接口获取应用数据返回显示
 */

3)Application信息

Application 
[id=12e78c6f, name=spring-boot-application, managementUrl=http://192.168.3.2:8083/admin-client1, healthUrl=http://192.168.3.2:8083/admin-client1/health, serviceUrl=http://192.168.3.2:8083/admin-client1]

4)Spring Boot Actuator监控端点:

开启后可以通过http接口直接获取数据

actuator:所有EnPoint的列表,需要加入spring HATEOAS支持

autoconfig:当前应用的所有自动配置

beans:当前应用中所有Bean信息

configprops:当前应用中所有的配置属性

dump:显示当前应用线程状态信息

env:显示当前应用当前环境信息

health:显示当前应用健康状况

info:显示当前应用信息

metrics:显示当前应用的各项指标信息

mappings:显示所有的@RequestMapping映射的路径

shutdown:关闭当前应用(默认关闭)

trace:显示追踪信息(默认最新的http请求)

5)springboot中server和client的配置

server端application.yml:

#基本信息
server:
    port: 8080
    session-timeout: 60
    context-path: /admin-web
#springboot-admin监控
spring:
    application:
        name: admin
    boot:
        admin:
            url: http://localhost:${server.port}/${server.context-path}

#开启监控访问权限,可以访问所有端点
management:
     security:
        enabled: false
#显示版本信息
info:
   app:
       name: "@project.name@"  #从pom.xml中获取,pom.xml中需build中加入插件spring-boot-maven-plugin
       description: "@project.description@" 
       version: "@project.version@"
       spring-boot-version: "@project.version@"
#跨域设置
#endpoints:
#  cors:
#    allow-credentials: true
#    allowed-methods: *
#    allowed-origins: *
spring.boot.admin.monitor.read-timeout

客户端application.yml:

#基本信息
server:
    port: 8081
    context-path: /admin-client1
#springboot-admin监控的server地址
spring:
    boot:
        admin:
           client:
              prefer-ip: true  #解决window下无法识别主机名的问题
           url: http://localhost:8080/admin-web   #服务端的地址
           read-timeout: 10000
#开启监控访问权限
management:
     security:
        enabled: false
#显示版本信息
info:
   app:
       name: "@project.name@"  #从pom.xml中获取,pom.xml中需build中加入插件spring-boot-maven-plugin
       description: "@project.description@" 
       version: "@project.version@"
       spring-boot-version: "@project.version@"

2测试

1)客户端注册及定时发请求
在这里插入图片描述

在这里插入图片描述
2)监控指标
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/yhhyhhyhhyhh/article/details/84443001