020-Spring Boot 监控和度量

一、概述

  通过配置使用actuator查看监控和度量信息

二、使用

2.1、建立web项目,增加pom

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

启动项目,查看日志,发现能够访问地址如下

2.2、增加actuator的pom依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-actuator</artifactId>
        </dependency>

启动项目,查看日志,发现能够访问地址如下

  

  可以看到,可访问地址增加了

三、详解

  建议安装jsonview插件方便查看json

3.1、增加配置

  关闭权限限制,application.properties

management.security.enabled=false

3.2、访问以下网址

  Spring Boot Actuator 的关键特性是在应用程序里提供众多 Web 接口,通过它们了解应用程序运行时的内部状况。Actuator 提供了如下接口,可以分为三大类:配置接口、度量接口和其它接口,具体如下表所示。

HTTP方法 路径   描述 鉴权
GET /auditevents   审计事件 true
GET /autoconfig 配置
查看自动配置的使用情况

提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过

true
GET /configprops 配置
查看配置属性,包括默认配置

描述配置属性(包含默认值)如何注入Bean

true
GET /beans 配置
查看bean及其关系列表

描述应用程序上下文里全部的Bean,以及它们的关系

true
GET /dump   打印线程栈,获取线程活动的快照 true
GET /env 配置 查看所有环境变量 true
GET /env/{name} 配置 根据名称获取特定的环境属性值 true
GET /health 配置
查看应用健康指标,这些值由HealthIndicator的实现类提供

包括:Cassandra、Composite、Couchbase、DataSource、DiskSpace、

Elasticsearch、Jms、Ldap、Mail、Mongo、Ordered、Rabbit、Redis、solr

false
GET /heapdump     true
GET /info 配置 查看应用信息,这些信息由info打头的属性提供 false
GET /loggers     true
GET /loggers/{name}     true
POST /loggers/{name}     true
GET /mappings   查看所有url映射,以及它们和控制器(包含Actuator端点)的映射关系 true
GET /metrics 度量 报告各种应用程序度量信息,比如内存用量和HTTP请求计数 true
GET /metrics/{name} 度量 报告指定名称的应用程序度量值 true
POST /shutdown   关闭应用,要求endpoints.shutdown.enabled设置为true true
GET /trace   查看基本追踪信息,提供基本的HTTP请求跟踪信息(时间戳、HTTP头等) true

3.3、源码查看

  在spring-boot-actuator-1.5.9.RELEASE.jar包中org.springframework.boot.actuate.endpoint下,查看具体类实现,

  可以设置某一项是否显示

endpoints.beans.enabled=false

  查看代码这里的endpoints,均继承自AbstractEndpoint,其中AbstractEndpoint含有属性如下

sensitive 敏感信息
enabled  启用

3.3.1、org.springframework.boot.actuate.health

  除原有支持的健康检查外,还支持扩展。HealthIndicator

  步骤:

  1》实现HealthIndicator接口,实现逻辑,纳入spring容器管理中

@Component
public class MyHealthIndicator implements HealthIndicator {

    @Override
    public Health health() {
        //return Health.down().withDetail("error", "spring test error").build();
        return Health.up().withDetail("success", "spring test success").build();
    }
}

3.3.2、info

在所有加载的配置文件中以info开头的配置,均可以显示在这里,如

info.name=myinfo
info.version=1.0.0
info.datasource.url=jdbc:mysql://127.0.0.1:3306/springboot

同时也会显示git信息git.properties

git.branch=master

显示如下

{
  datasource: {
    url: "jdbc:mysql://127.0.0.1:3306/springboot",
    name: "root",
    password: "root",
    driverClassName: "com.mysql.jdbc.Driver"
  },
  name: "myinfo",
  version: "1.0.0",
  git: {
    branch: "master"
  }
}

3.3.3、metrics查看度量信息

  CounterService:计数服务,可以直接使用

    如查看上文中的user/home访问次数    

    @Autowired
    private CounterService counterService;//引入

    @GetMapping("/user/home")
    public String home(@RequestParam("error") String error) {
        counterService.increment("user.home.request.count");//埋点
        if(error.equals("test")) {
            throw new NullPointerException();
        }
        return "home";
    }

    此时查看即可:http://127.0.0.1:8080/metrics

  GaugeService:用来统计某个值,查看某个监控点的值

    @Autowired
    private GaugeService gaugeService;

    @GetMapping("/user/create")
    public String create(int age) {
        gaugeService.submit("user.create.age", age);
        return "create";
    }

  此时查看即可:http://127.0.0.1:8080/metrics

3.3.4、监控信息输出其他位置

1》添加配置类,如下

@Configuration
public class ExportConfiguration {
    @Bean
    @ExportMetricWriter
    public MetricWriter createMetricWriter(MBeanExporter exporter) {
        return new JmxMetricWriter(exporter);
    }
}

查看MetricWriter 支持如下几种,也可自行定义

  

这里使用了Jmx,

四、JDK工具使用

查看Jmx方式JDK有三种在bin下,jConsole、jmc、jvisualVM

JConsole方式

  

Jvisualvm方式

  注意jvisualvm默认不支持MBEAn,Jconsole等需要自己安装插件,在 工具→插件中安装插件

  

jmc方式

  

注意:这三种工具不仅仅能查看Mbean,其他信息也能查看,和页面内容查看一致。

  与上面配置的JMX没有关系,配置jmx只是增加了MetricWriter 项

原文地址:https://www.cnblogs.com/bjlhx/p/8719625.html

时间: 2024-11-06 22:48:13

020-Spring Boot 监控和度量的相关文章

笔记:Spring Boot 监控与管理

在微服务架构中,我们将原本庞大的单体系统拆分为多个提供不同服务的应用,虽然,各个应用的内部逻辑因分解而简化,但由于部署的应用数量成倍增长,使得系统的维护复杂度大大提升,为了让运维系统能够获取各个为服务应用的相关指标以及实现一些常规操作控制,我们需要开发一套专门用于植入各个微服务的接口供监控系统采集信息,而这些接口往往有很大一部分指标都是类似的,Spring Boot 作为微服务框架时,除了强大的快速开发能力之外,还提供了一个特殊的模块 spring-boot-starter-actuator ,

Spring Boot 监控利器 —— Actutor

参考 CSDN-学习Spring Boot:(二十七)Spring Boot 2.0 中使用 Actuator 使用Actuator监控Spring Boot应用 程序猿DD-Spring Boot Actuator监控端点小结 官宣-Spring Boot Actuator Web API Documentation Spring Boot Admin Spring Boot Admin 2.0开箱体验 纯洁的微笑-Spring Boot(二十):使用 spring-boot-admin 对

spring boot监控之prometheus配置

1,spring boot工程引入jar包 compile 'org.springframework.boot:spring-boot-starter-actuator' compile 'io.micrometer:micrometer-core:1.3.5' compile 'io.micrometer:micrometer-registry-prometheus:1.3.5' 2,修改spring boot工程配置 management: server: port: 10091 endpo

spring boot 监控与管理(actuator)

Spring POMs 中提供了一个特殊的依赖模块,即spring-boot-starter-actuator,我们只需要在我们的POM中添加依赖即可 <!-- 监控 管理 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency&g

Spring Boot实战与原理分析

1:Spring Boot概述与课程概要介绍 2:Spring4 快速入门 3:Spring4 扩展分析(一) 4:Spring4 扩展分析(二) 5:Spring Boot 快速入门 6:Spring Boot 配置分析(一) 7:Spring Boot 配置分析(二) 8:Spring Boot 自动配置 9:Spring Boot @Enable*注解的工作原理 10:Spring Boot @EnableAutoConfiguration深入分析 11:Spring Boot 事件监听

Spring Boot实战与原理分析视频课程

1.Spring Boot概述与课程概要介绍 2.Spring4 快速入门 3.Spring4 扩展分析(一) 4.Spring4 扩展分析(二) 5.Spring Boot 快速入门 6.Spring Boot 配置分析(一) 7.Spring Boot 配置分析(二) 8.Spring Boot 自动配置 9.Spring Boot @Enable*注解的工作原理 10.Spring Boot @EnableAutoConfiguration深入分析 11.Spring Boot 事件监听

Spring Boot 揭秘与实战(九) 应用监控篇 - HTTP 应用监控

文章目录 1. 快速开始 2. 监控和管理端点3. 定制端点 2.1. health 应用健康指标 2.2. info 查看应用信息 2.3. metrics 应用基本指标 2.4. trace 基本的HTTP跟踪信息 2.5. shutdown关闭当前应用 4. 源代码 Spring Boot 提供运行时的应用监控和管理功能.本文,我们通过 HTTP 实现对应用的监控和管理. 快速开始 Spring Boot 监控核心是 spring-boot-starter-actuator 依赖,增加依赖

spring boot/cloud 应用监控

原文地址:http://www.cnblogs.com/skyblog/p/5633635.html 应用的监控功能,对于分布式系统非常重要.如果把分布式系统比作整个社会系统.那么各个服务对应社会中具体服务机构,比如银行.学校.超市等,那么监控就类似于警察局和医院,所以其重要性显而易见.这里说的,监控服务的部署及运行情况,和断路器监控不一样,这里主要是监控服务及服务器的各项指标.该项目是使用了开源spring boot监控项目spring-boot-admin,开源项目地址: spring-bo

Spring Boot应用监控的实战教程

概述 Spring Boot 监控核心是 spring-boot-starter-actuator 依赖,增加依赖后, Spring Boot 会默认配置一些通用的监控,比如 jvm 监控.类加载.健康监控等. 我们之前讲过Docker容器的可视化监控,即监控容器的运行情况,包括 CPU使用率.内存占用.网络状况以及磁盘空间等等一系列信息.同样利用SpringBoot作为微服务单元的实例化技术选型时,我们不可避免的要面对的一个问题就是如何实时监控应用的运行状况数据,比如:健康度.运行指标.日志信