深入理解spring boot 监控

 更新时间:2021年10月27日 13:02:48   作者:MG-net  
今天通过本文给大家介绍关于spring boot 监控的相关知识,引入jar包的实例代码文中也给大家详细介绍,对spring boot 监控相关知识感兴趣的朋友一起看看吧

一、指标监控

引入jar包:

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

以web方式开启:

#开启全部的
management.endpoints.enabled-by-default=true
#web 方式暴露
management.endpoints.web.exposure.include=*

二、常用的监控端点

看这个:传送门

 最常用的:

health:健康状况,查看应用是否可用

metrics:

运行时指标,JVM、线程等相关内容(重要)

loggers:

日志记录

 三、定制EndPoint

 定制组件健康信息,比较简单,同时也可以实现接口方式:

package com.example.demo;
 
import org.springframework.boot.actuate.health.AbstractHealthIndicator;
import org.springframework.boot.actuate.health.Health;
import org.springframework.stereotype.Component;
 
import java.util.HashMap;
import java.util.Map;
 
/**
 * @author Administrator
 */
@Component
public class MyComHealthIndicator extends AbstractHealthIndicator {
 
    /**
     * 真实的检查方法
     * @param builder
     * @throws Exception
     */
    @Override
    protected void doHealthCheck(Health.Builder builder) throws Exception {
        Map<String, Object> map = new HashMap<>();
        if(1==1){
            builder.up();
            map.put("count", 1);
            map.put("msg", "健康");
        }else{
            builder.down();
            map.put("msg", "超时");
        }
        builder.withDetail("code", 100)
                .withDetails(map);
    }
}

 INFO Endpoint 的定义:

1、配置文件直接定义:

info.mavenProjectName = @project.artifactId@
info.mavenProjectVersion=@project.version@

2、写代码:

package com.example.demo;
 
import org.springframework.boot.actuate.info.Info;
import org.springframework.boot.actuate.info.InfoContributor;
import org.springframework.stereotype.Component;
 
@Component
public class AppInfo implements InfoContributor {
 
    @Override
    public void contribute(Info.Builder builder) {
        builder.withDetail("msg", "真他吗帅!");
    }
}

metrics定制endpoint,直接使用MeterRegistry。

自定义Endpoint,监控端点:

package com.example.demo;
 
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
import org.springframework.boot.actuate.endpoint.annotation.WriteOperation;
import org.springframework.stereotype.Component;
 
import java.util.Collections;
import java.util.Map;
 
@Component
@Endpoint(id = "myEndPoint")
public class EndPoint {
 
    @ReadOperation
    public Map<String, Object> read(){
        return Collections.singletonMap("MG", "MG GOGO");
    }
 
    @WriteOperation
    public void write(){
        System.out.println("累");
    }
 
}

访问自定义的指标的时候,访问的就是read方法

四、spring boot admin(可以使用)

准备一个 server,会定时去获取各个服务的相关内容。

<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-server</artifactId>
</dependency>

客户端注册:

        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-client</artifactId>
        </dependency>

配置属性文件:

spring:
  application:
    name: admin-client
  boot:
    admin:
      client:
        url: http://localhost:8769
        interface:#使用IP注册
            prefer-ip: ture
server:
  port: 8768
 
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: ALWAYS

到此这篇关于spring boot 监控的文章就介绍到这了,更多相关spring boot 监控内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBatch跳过异常和限制方式

    SpringBatch跳过异常和限制方式

    这篇文章主要介绍了SpringBatch跳过异常和限制方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • 细致解读希尔排序算法与相关的Java代码实现

    细致解读希尔排序算法与相关的Java代码实现

    这篇文章主要介绍了希尔排序算法与相关的Java代码实现,希尔排序的时间复杂度根据步长序列的不同而不同,需要的朋友可以参考下
    2016-05-05
  • java组件smartupload实现上传文件功能

    java组件smartupload实现上传文件功能

    这篇文章主要为大家详细介绍了java组件smartupload实现上传文件功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • springboot学习之Thymeleaf模板引擎及原理介绍

    springboot学习之Thymeleaf模板引擎及原理介绍

    本文主要介绍一下SpringBoot给我们推荐的Thymeleaf模板引擎,这模板引擎呢,是一个高级语言的模板引擎,他的这个语法更简单而且功能更强大,对springboot Thymeleaf模板引擎相关知识感兴趣的朋友一起看看吧
    2022-02-02
  • 详细说明关于Java的数据库连接(JDBC)

    详细说明关于Java的数据库连接(JDBC)

    这篇文章主要介绍了详细说明关于Java的数据库连接JDBC,JDBC是用Java语言向数据库发送SQL语句,需要的朋友可以参考下面文章内容
    2021-09-09
  • SpringBoot+Ajax+redis实现隐藏重要接口地址的方法

    SpringBoot+Ajax+redis实现隐藏重要接口地址的方法

    这篇文章主要介绍了SpringBoot+Ajax+redis实现隐藏重要接口地址,本篇文章主要讲诉使用SpringBoot项目配合Ajax和redis实现隐藏重要接口地址,这里我以隐藏秒杀地址为例,需要的朋友可以参考下
    2024-03-03
  • Java String初始化String域例题解析

    Java String初始化String域例题解析

    这篇文章主要介绍了Java String初始化String域例题解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Spring中使用自定义ThreadLocal存储导致的坑及解决

    Spring中使用自定义ThreadLocal存储导致的坑及解决

    这篇文章主要介绍了Spring中使用自定义ThreadLocal存储导致的坑及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java日期工具类操作字符串Date和LocalDate互转

    Java日期工具类操作字符串Date和LocalDate互转

    这篇文章主要介绍了Java日期工具类操作字符串Date和LocalDate互转,文章首先通过需要先引入坐标展开主题的相关内容介绍,需要的朋友可以参一下
    2022-06-06
  • 简易JDBC框架实现过程详解

    简易JDBC框架实现过程详解

    这篇文章主要介绍了简易JDBC框架实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02

最新评论