返回顶部
首页 > 资讯 > 后端开发 > Python >SpringBoot 指标监控actuator的专题
  • 289
分享到

SpringBoot 指标监控actuator的专题

2024-04-02 19:04:59 289人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录1.写在前面2.SpringBoot Actuator3.定制化Endpoint3.1 定制health端点信息3.2 定制info端点信息1.写在前面 首先肯定要说一下spri

1.写在前面

首先肯定要说一下springBoot的四大核心了:

  • 自动装配:简单配置甚至零配置即可运行项目
  • 起步依赖:场景启动器
  • Actuator:指标监控
  • 命令行界面 :命令行

这篇文章呢,我来和大家聊聊指标监控这个东西。

2.SpringBoot Actuator

未来每一个微服务在云上部署以后,我们都需要对其进行监控、追踪、审计、控制等。SpringBoot就抽取了Actuator场景,使得我们每个微服务快速引用即可获得生产级别的应用监控、审计等功能。

要开启指标监控功能,首先需要在pom文件种添加如下依赖:


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

然后在配置文件中先做如下配置:


server:
  port: 8080
 
# 暴露所有监控信息为Http
management:
  endpoints:
    enabled-by-default: true # 默认开启所有监控端点信息
    WEB:
      exposure:
        include: '*' # 以web方式暴露所有端点

然后启动项目,进行测试

下图中测试得到的内容就是目前项目中可以监控到的各种指标参数信息。

在指标监控这个功能中,有一个经常提到的词叫:端点。那么常用常见的端点如下图:👇👇👇

上面我们访问指标监控的url是:http://localhost:8080/actuator/ 即可获取到所有端点信息。那么如果想要获取某个端点信息,url就应该是:

http://localhost:8080/actuator/endpointName/detailPath。

健康检查端点,我们一般用于在云平台,平台会定时的检查应用的健康状况,我们就需要Health Endpoint可以为平台返回当前应用的一系列组件健康状况的集合

重要的几点:

  • health endpoint返回的结果,应该是一系列健康检查后的一个汇总报告
  • 很多的健康检查默认已经自动配置好了,比如:数据库Redis
  • 可以很容易的添加自定义的健康检查机制

提供详细的、层级的、空间指标信息,这些信息可以被pull(主动推送)或者push(被动获取)方式得到;

  • 通过Metrics对接多种监控系统
  • 简化核心Metrics开发
  • 添加自定义Metrics或者扩展已有Metrics

上面的这些测试结果就是我们根据当前项目,获取到某个端点的详细指标信息。

除此之外,我们也可以对这些端点进行手动开启或者禁用。(参见下面的配置文件)


server:
  port: 8080
 
# 暴露所有监控信息为HTTP
management:
  endpoints:
    enabled-by-default: false # 默认开启所有监控端点信息
    web:
      exposure:
        include: '*' # 以web方式暴露所有端点
# 需要开启或者禁用某个Endpoint
# 配置模式为 management.endpoint.<endpointName>.enabled = true/false
  endpoint:
    health:
      show-details: always # 总是显示health端点的详细信息
      enabled: true
    info:
      enabled: true
    beans:
      enabled: true
 

上面的测试截图就是我们手动的开启某些端点、同时关闭了某些端点之后的结果。

3.定制化Endpoint

3.1 定制health端点信息

以上的所有内容都是在使用SpringBoot为我们提供的官方的Endpoint,那么我们也是可以自定义Endpoint的(也即定制化Endpoint)。

有两种方式:①继承AbstractHealthIndicator抽象类(doHealthCheck(Health.Builder builder)方法);②实现HealthIndicator接口(重写health()方法)。我是用第一种方法简单做个测试吧。


package com.szh.boot.health;
 
import org.springframework.boot.actuate.health.AbstractHealthIndicator;
import org.springframework.boot.actuate.health.Health;
import org.springframework.boot.actuate.health.Status;
import org.springframework.stereotype.Component;
 
import java.util.HashMap;
import java.util.Map;
 

@Component
public class MyComHealthIndicator extends AbstractHealthIndicator {
 
    
    @Override
    protected void doHealthCheck(Health.Builder builder) throws Exception {
        Map<String,Object> map = new HashMap<>();
        //模拟检查过程
        if (1 == 1) {
//            builder.up(); //健康
            builder.status(Status.UP);
            map.put("count",1);
            map.put("ms",100);
        } else {
//            builder.down(); //宕机
            builder.status(Status.DOWN);
            map.put("error","连接超时");
            map.put("ms",3000);
        }
 
        builder.withDetail("code",20001)
                .withDetails(map);
    }
}

配置文件如下:👇👇👇


server:
  port: 8080
 
# 暴露所有监控信息为HTTP
management:
  endpoints:
    enabled-by-default: false # 默认开启所有监控端点信息
    web:
      exposure:
        include: '*' # 以web方式暴露所有端点
# 需要开启或者禁用某个Endpoint
# 配置模式为 management.endpoint.<endpointName>.enabled = true/false
  endpoint:
    health:
      show-details: always # 总是显示health端点的详细信息
      enabled: true

然后我们启动测试,访问路径:http://localhost:8080/actuator/health。从结果中看到有一个端点myCom就是我们自定义的(命名方式就是 MyComHealthIndicator 类去掉后面的 HealthIndicator)。

3.2 定制info端点信息

首先在配置文件中添加如下内容:(最后几行)


server:
  port: 8080
 
# 暴露所有监控信息为HTTP
management:
  endpoints:
    enabled-by-default: false # 默认开启所有监控端点信息
    web:
      exposure:
        include: '*' # 以web方式暴露所有端点
# 需要开启或者禁用某个Endpoint
# 配置模式为 management.endpoint.<endpointName>.enabled = true/false
  endpoint:
    health:
      show-details: always # 总是显示health端点的详细信息
      enabled: true
    info:
      enabled: true
    beans:
      enabled: true
info:
  appName: spring-boot-actuator-endpoint-info
  version: 2.0.0
  MavenProjectName: @project.artifactId@
  mavenProjectVersion: @project.version@

然后创建一个类,实现 InfoContributor 这个接口,并且重写接口中的 contribute(Info.Builder builder) 方法。


package com.szh.boot.info;
 
import org.springframework.boot.actuate.info.Info;
import org.springframework.boot.actuate.info.InfoContributor;
import org.springframework.stereotype.Component;
 
import java.util.Collections;
 

@Component
public class ExampleInfoContributor implements InfoContributor {
 
    @Override
    public void contribute(Info.Builder builder) {
        builder.withDetail("example", Collections.singletonMap("key","value"));
    }
 
}

最后我们启动测试一下,访问路径:http://localhost:8080/actuator/info。得到的数据就是我们上面通过代码写好的内容。

到此这篇关于SpringBoot 指标监控actuator的专题的文章就介绍到这了,更多相关SpringBoot 指标监控内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: SpringBoot 指标监控actuator的专题

本文链接: https://lsjlt.com/news/157406.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • SpringBoot 指标监控actuator的专题
    目录1.写在前面2.SpringBoot Actuator3.定制化Endpoint3.1 定制health端点信息3.2 定制info端点信息1.写在前面 首先肯定要说一下Spri...
    99+
    2024-04-02
  • SpringBoot指标监控actuator的示例分析
    这篇文章主要为大家展示了“SpringBoot指标监控actuator的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“SpringBoot指标监控actuator的示例分析”这篇文章吧。...
    99+
    2023-06-25
  • springboot Actuator的指标监控可视化功能详解
    springboot为我们提供了丰富的指标监控功能SpringBoot Actuator SpringBoot Actuator是springboot为简化我们对微服务项目的监控功能抽取出来的模块,使得我们每个微服务快速引用即可获得生产界别...
    99+
    2021-11-17
    springboot Actuator指标监控 springboot Actuator监控可视化
  • SpringBoot指标监控的实现
    目录一、SpringBoot——Actuator1.1 快速开始1.2 简单介绍最常用的几个端点1.3 开启或关闭某个端点1.4 定制端点1.5 SpringBoot——Admin ...
    99+
    2024-04-02
  • SpringBoot实现监控Actuator,关闭redis监测
    目录SpringBoot监控Actuator,关闭redis监测方法springboot Actuator查看配置明细运行时度量SpringBoot监控Actuator,关闭redi...
    99+
    2024-04-02
  • SpringBoot配置Actuator组件,实现系统监控
    目录一、Actuator简介二、与SpringBoot2.0整合 1、核心依赖Jar包2、Yml配置文件三、监控接口详解 1、Info接口2、Health接口3、...
    99+
    2024-04-02
  • SpringBoot Actuator埋点和监控及简单使用
    目录1. 数据埋点2. Micrometer2.1 简单使用2.2 命名规范3. SpringBoot Actuator3.1 添加依赖3.2 基础配置3.3 查看可消费的端点3.4...
    99+
    2024-04-02
  • mongodb监控指标
    insert 每秒 插入/查询/更新/删除数mongostat --port 21000 --rowcount=1 | grep -v insert | awk '{print $1}'query 每秒 插...
    99+
    2024-04-02
  • SpringBoot怎么实现Actuator监控和管理端点
    Spring Boot Actuator 是 Spring Boot 提供的用于监控和管理应用程序的功能模块。通过 Actuator...
    99+
    2024-03-08
    SpringBoot
  • SpringBoot Admin 如何实现Actuator端点可视化监控
    目录SpringBoot Admin 实现Actuator端点可视化监控简介Spring Boot Admin ServerSpring Boot Admin Client启动客户端...
    99+
    2024-04-02
  • SpringBoot怎么配置Actuator组件实现系统监控
    这篇文章主要介绍“SpringBoot怎么配置Actuator组件实现系统监控”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot怎么配置Actuator组件实现系统监控”文章能帮助大...
    99+
    2023-06-08
  • MySQL常见的监控指标
    前言 MySQL在日常的监控中,需要关注其稳定性,安全性和性能指标,不管是用shell脚本监控还是用一些工具监控,比如prometheus, zabbix等工具,进行日常监控,都离开指标,今天我们就一...
    99+
    2023-09-09
    mysql 服务器 java
  • spring boot actuator监控的示例分析
    这篇文章主要介绍了spring boot actuator监控的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。spring boot actuator介绍Spring...
    99+
    2023-06-25
  • PostgreSQL 常用监控指标
    背景 最关键的一些数据库健康指标,趋势监测。 1 总连接数 主要看趋势,直接与业务量挂钩 如果连接数接近max_connection水位,需要注意。 同时连接数应与数据库主机可用内存挂钩,每个连接保守...
    99+
    2023-09-01
    postgresql 数据库 服务器
  • MongoDB的监控指标有哪些
    MongoDB的监控指标有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。MongoDB uptime 启动时长 asserts....
    99+
    2024-04-02
  • SpringBoot2开启Actuator端点监控的方法
    目录背景开启Actuator暴露其他端点(与SpringBoot 2.0之前的配置不太一样)背景 SpringBoot本身提供了一套监控端点, 可以查看应用的基本信息、 健康程度、 ...
    99+
    2024-04-02
  • MySQL监控项一些指标
    监控项 说明 Problem MySQL Innodb_pages_created 在InnoDB表中创建的page数量. Innodb_pages_read 从InnoDB buffer ...
    99+
    2024-04-02
  • 如何监控innodb status指标
    这篇文章主要介绍如何监控innodb status指标,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 输入被监控机器的ip 实时获取innodb相关sta...
    99+
    2024-04-02
  • 基于SpringBoot应用监控Actuator安全隐患及解决方式
    概述 微服务作为一项在云中部署应用和服务的新技术是当下比较热门话题,而微服务的特点决定了功能模块的部署是分布式的,运行在不同的机器上相互通过服务调用进行交互,业务流会经过多个微服务的...
    99+
    2024-04-02
  • Prometheus监控运维实战十: 主机监控指标
    1、CPU指标 CPU负载 node_load1node_load5node_load15 以上三个指标为主机的CPU平均负载,分别对应一分钟、五分钟和十五分钟的时间间隔。CPU负载是指某段时间内占用...
    99+
    2023-09-12
    运维 prometheus 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作