Spring Boot2.xx开启监控 Actuator

news2024/12/23 3:28:25

                       


spring boot actuator介绍

  • Spring Boot包含许多其他功能,可帮助您在将应用程序推送到生产环境时监视和管理应用程序。

  • 您可以选择使用HTTP端点或JMX来管理和监视应用程序。

  • 审核,运行状况和指标收集也可以自动应用于您的应用程序。


    总之Spring Boot Actuator就是一款可以帮助你监控系统数据的框架,其可以监控很多很多的系统数据,它有对应用系统的自省和监控的集成功能,可以查看应用配置的详细信息,如:
    显示应用程序员的Health健康信息

    显示Info应用信息

    显示HTTP Request跟踪信息

    显示当前应用程序的“Metrics”信息

    显示所有的@RequestMapping的路径信息

    显示应用程序的各种配置信息

    显示你的程序请求的次数 时间 等各种信息


引入Actuactor三角坐标依赖 

<!-- 端点监控的配置-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.hateoas</groupId>
    <artifactId>spring-hateoas</artifactId>
</dependency>

访问: http://localhost:9999/actuator/         响应信息如下所示

{
    "_links": {
        "self": {
            "href": "http://localhost:9999/actuator",
            "templated": false
        },
        "beans": {
            "href": "http://localhost:9999/actuator/beans",
            "templated": false
        },
        "caches-cache": {
            "href": "http://localhost:9999/actuator/caches/{cache}",
            "templated": true
        },
        "caches": {
            "href": "http://localhost:9999/actuator/caches",
            "templated": false
        },
        "health": {
            "href": "http://localhost:9999/actuator/health",
            "templated": false
        },
        "health-path": {
            "href": "http://localhost:9999/actuator/health/{*path}",
            "templated": true
        },
        "info": {
            "href": "http://localhost:9999/actuator/info",
            "templated": false
        },
        "conditions": {
            "href": "http://localhost:9999/actuator/conditions",
            "templated": false
        },
        "configprops": {
            "href": "http://localhost:9999/actuator/configprops",
            "templated": false
        },
        "configprops-prefix": {
            "href": "http://localhost:9999/actuator/configprops/{prefix}",
            "templated": true
        },
        "env": {
            "href": "http://localhost:9999/actuator/env",
            "templated": false
        },
        "env-toMatch": {
            "href": "http://localhost:9999/actuator/env/{toMatch}",
            "templated": true
        },
        "loggers": {
            "href": "http://localhost:9999/actuator/loggers",
            "templated": false
        },
        "loggers-name": {
            "href": "http://localhost:9999/actuator/loggers/{name}",
            "templated": true
        },
        "heapdump": {
            "href": "http://localhost:9999/actuator/heapdump",
            "templated": false
        },
        "threaddump": {
            "href": "http://localhost:9999/actuator/threaddump",
            "templated": false
        },
        "metrics-requiredMetricName": {
            "href": "http://localhost:9999/actuator/metrics/{requiredMetricName}",
            "templated": true
        },
        "metrics": {
            "href": "http://localhost:9999/actuator/metrics",
            "templated": false
        },
        "scheduledtasks": {
            "href": "http://localhost:9999/actuator/scheduledtasks",
            "templated": false
        },
        "mappings": {
            "href": "http://localhost:9999/actuator/mappings",
            "templated": false
        }
    }


访问health端点: http://localhost:9999/actuator/health  响应信息如下:

{
    "status": "UP",
    "components": {
        "diskSpace": {
            "status": "UP",
            "details": {
                "total": 1333606182912,
                "free": 1269725843456,
                "threshold": 10485760,
                "exists": true
            }
        },
        "elasticsearch": {
            "status": "UP",
            "details": {
                "cluster_name": "elasticsearch",
                "status": "green",
                "timed_out": false,
                "number_of_nodes": 1,
                "number_of_data_nodes": 1,
                "active_primary_shards": 0,
                "active_shards": 0,
                "relocating_shards": 0,
                "initializing_shards": 0,
                "unassigned_shards": 0,
                "delayed_unassigned_shards": 0,
                "number_of_pending_tasks": 0,
                "number_of_in_flight_fetch": 0,
                "task_max_waiting_in_queue_millis": 0,
                "active_shards_percent_as_number": 100.0
            }
        },
        "ping": {
            "status": "UP"
        },
        "r2dbc": {
            "status": "UP",
            "details": {
                "database": "Jasync-MySQL",
                "validationQuery": "validate(REMOTE)"
            }
        }
    }
}

开启 Info端点:  yml文件中配置

# 显示任意的应用信息,默认关闭 springBoot版本:2.7.5 CURRENT GA如果是更低一些的版本默认是开启的

# 在spring boot 2.0以后,actuator默认只开启了info和health两个端点,要想使用其他的端点,需要在application.yml中打开
management:
  endpoint:
    health:
      show-details: always  # 配置health端点显示详细信息
  info:
    env:
      enabled: true  # 显示任意的应用信息,默认关闭  springBoot版本:2.7.5 CURRENT  GA如果是更低一些的版本默认是开启的
  endpoints:
    web:
      exposure:
        include: "*"
      cors:
        allowed-headers: "*"

info:
  app:
    encoding: @project.build.sourceEncoding@
    java:
      source: @java.version@
      target: @java.version@

访问info端点: http://localhost:9999/actuator/info   响应信息如下:

{
    "app": {
        "encoding": "UTF-8",
        "java": {
            "source": "1.8.0_221",
            "target": "1.8.0_221"
        }
    }
}


拓展info端点:

package org.jd.websocket.auth.data.reactor.help;

import org.springframework.boot.actuate.info.Info;
import org.springframework.boot.actuate.info.InfoContributor;
import org.springframework.stereotype.Component;

import java.util.Collections;
import java.util.Date;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

@Component
public class CustomBuildInfoContributor implements InfoContributor {
    @Override
    public void contribute(Info.Builder builder) {
        Map<String,Object> details= new ConcurrentHashMap<>();
        details.put("build",Collections.singletonMap("timestamp",new Date()));
        details.put("author","YangGe");
        builder.withDetails(details);
    }
}

 


再次访问info端点: http://localhost:9999/actuator/info   响应信息如下: 


{
    "app": {
        "encoding": "UTF-8",
        "java": {
            "source": "1.8.0_221",
            "target": "1.8.0_221"
        }
    },
    "build": {
        "timestamp": "2023-08-07T15:14:28.463+00:00"
    },
    "author": "YangGe"
}


management:
  endpoints:
    web:
      base-path: /actuator  #配置端点访问前缀
      exposure:
        include: info,health  #只暴露info,health两个端点; “*” 表示暴露所有端点
        exclude: health  #可以将以暴露的端点排除(不暴露)
 


其他更细节的配置可以看官网

spring boot 热部署导入devtool依赖idea窗口钝化

yml yet anothor markup language

actuator是spring boot 提供的对应系统的自省和监控的基础功能,当出现问题时可以及时的定位问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/846079.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设计模式——六大设计原则详解

什么是设计模式 随着编程的发展&#xff0c;程序员们发现再解决一些普遍的问题的时候&#xff0c;所使用的解决方案是大体相同的。这些解决方法是众多程序员经过长时间的实践和试错最终总结出来了。所有就有人将它们总结起来形成了设计模式。设计模式出现的意义是为了重用代码&…

玩转Pandas_TA:一站式掌握技术分析指标

01 引言 Pandas_TA —— 一个结合了pandas的强大数据处理能力与技术分析的库&#xff0c;旨在为金融市场分析师和交易者提供一个简单、高效的工具集&#xff0c;从而帮助他们更容易地在数据集上应用各种技术分析指标。pandas_ta为用户提供了直接在DataFrame上运行技术指标计算的…

gitlab 503 错误的解决方案

首先使用 sudo gitlab-ctl status 命令查看哪些服务没用启动 sudo gitlab-ctl status 再用 gitlab-rake gitlab:check 命令检查 gitlab。根据发生的错误一步一步纠正。 gitlab-rake gitlab:check 查看日志 tail /var/log/gitlab/gitaly/current删除gitaly.pid rm /var/opt…

Go的任务调度单元与并发编程

摘要&#xff1a;本文由葡萄城技术团队于CSDN原创并首发。转载请注明出处&#xff1a;葡萄城官网&#xff0c;葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 前言 本文主要介绍Go语言、进程、线程、协程的出现背景原因以及Go 语言如何解决协程的…

Idea添加mybatis的mapper文件模版

针对Java开发人员&#xff0c;各种框架的配置模版的确是需要随时保留一份&#xff0c;在使用的时候&#xff0c;方便复制粘贴&#xff0c;但是也依然不方便&#xff0c;我们可以给开发工具&#xff08;IDE&#xff09;中添加配置模版&#xff0c;这里我介绍下使用idea开发工具&…

安达发|APS排程软件与某一知名APS软件整体对比

APS排程软件作为高级计划与排程系统。主要是解决小批量、多品种的复杂生产要求。客户的要求交期越来越准。由于成本不断攀升&#xff0c;所以高产出和低成本也是重要的考量因素。 下面我们就安达发APS软件与某一知名APS做一下整体对比&#xff1a; 1.功能实用性 安达发APS排…

记录--前端重新部署如何通知用户

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 1. 场景 前端构建完上线&#xff0c;用户还停留还在老页面&#xff0c;用户不知道网页重新部署了&#xff0c;跳转页面的时候有时候js连接hash变了导致报错跳不过去&#xff0c;并且用户体验不到新功能…

springboot 对接 minio 分布式文件系统

1. minio介绍 Minio 是一个基于Go语言的对象存储服务。它实现了大部分亚马逊S3云存储服务接口&#xff0c;可以看做是是S3的开源版本&#xff0c;非常适合于存储大容量非结构化的数据&#xff0c;例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等&#xff0c;而一个对象…

计算机视觉大牛Liang-Chieh Chen从谷歌离职!加入字节跳动!

点击下方卡片&#xff0c;关注“CVer”公众号 AI/CV重磅干货&#xff0c;第一时间送达 点击进入—>【图像分割和论文投稿】交流群 这应该是国内首次报道&#xff01; Amusi 发现&#xff1a;Liang-Chieh Chen 巨佬在官网宣布&#xff1a;已离职谷歌&#xff0c;目前在字节跳…

以太网Ethernet通信协议

一、以太网简介 计算机网络可分为局域网(LAN)、 城域网(MAN)、广域网(WAN)、互联网(Initernet)。局域网按传输介质所使用的访问控制方法可分为&#xff1a;以太网(Ethernet)、光纤分布式数据接口(FDDI)、异步传输模式(ATM)、令牌环网(Token Ring)、交换网(Switching) 等&#x…

【JavaSE】什么是抽象类?什么是内部类?以及它们的作用是什么?

这篇文章我们主要学习的是两个知识点&#xff0c;可以来解决文章标题所提出来的三个问题。 目录 1.抽象类 1.1 抽象类概念 1.2 抽象类语法 1.3 抽象类特性 1.4 抽象类的作用 2.内部类 2.1 内部类的分类 2.2 实例内部类 2.3 静态内部类 2.4 匿名内部类 2.5 局部内部类…

标准化归一化 batch norm, layer norm, group norm, instance norm

Layer Normalization - EXPLAINED (in Transformer Neural Networks) Layer Normalization - EXPLAINED (in Transformer Neural Networks) 0~4min:什么是multi-head attention 5~7min:layer norm图示 7~9min:公式举例layer norm 9:54-end:layer norm的代码示例 group n…

2023金九银十软件测试面试题(800道)

今年你的目标是拿下大厂offer&#xff1f;还是多少万年薪&#xff1f;其实这些都离不开日积月累的过程。 为此我特意整理出一份&#xff08;超详细笔记/面试题&#xff09;它几乎涵盖了所有的测试开发技术栈&#xff0c;非常珍贵&#xff0c;人手一份 肝完进大厂 妥妥的&#…

时序预测 | MATLAB实现BO-BiLSTM贝叶斯优化双向长短期记忆神经网络时间序列预测

时序预测 | MATLAB实现BO-BiLSTM贝叶斯优化双向长短期记忆神经网络时间序列预测 目录 时序预测 | MATLAB实现BO-BiLSTM贝叶斯优化双向长短期记忆神经网络时间序列预测效果一览基本介绍模型搭建程序设计参考资料 效果一览 基本介绍 MATLAB实现BO-BiLSTM贝叶斯优化双向长短期记忆…

用队列实现栈——数据结构与算法

&#x1f636;‍&#x1f32b;️Take your time ! &#x1f636;‍&#x1f32b;️ &#x1f4a5;个人主页&#xff1a;&#x1f525;&#x1f525;&#x1f525;大魔王&#x1f525;&#x1f525;&#x1f525; &#x1f4a5;代码仓库&#xff1a;&#x1f525;&#x1f525;魔…

【JS交互篇】DOM操作基础

一、DOM概述 1.1 什么是DOM DOM(Document Object Model)文档对象模型&#xff0c;用来表示和操作html或xml文档内容的基础API;当网页被加载时&#xff0c;浏览器会创建页面的文档对象模型DOM&#xff0c;而DOM模型被构造为对象的树&#xff08;Dom Html Tree&#xff09;;DOM包…

真我V3 5G(RMX2200 RMX2201)解锁刷机全过程

安卓系统新Rom包为GSI&#xff0c;更具有通用性&#xff0c;可以比较放心刷。 原厂系统垃圾多、广告多&#xff0c;甚至热点功能不支持ipv6&#xff0c;严重偏离热点机的定位。 主要参考 https://www.bilibili.com/read/cv20730877/https://www.bilibili.com/read/cv2073087…

DSV-080-2NCP-N-MM两位两通常闭先导式电磁阀

该插装阀具有正向关断作用&#xff0c;设计用于负荷保持状态。 动作状况 断电时&#xff0c;DSV -080-2NCP-*-M*为止回阀&#xff0c;允许介质从1到2&#xff0c;同时阻止介质从2到1。 通电时&#xff0c;提升阀提升&#xff0c;打开从 2到1的通通道。 手动关闭选择:按下按…

分布式协议与算法——CAP理论、ACID理论、BASE理论

CAP理论 CAP理论&#xff0c;对分布式系统的特性做了高度抽象&#xff0c;比如抽象成了一致性、可用性和分区容错性&#xff0c;并对特性间的冲突&#xff08;也就是CAP不可能三角&#xff09;做了总结。 CAP三指标 CAP理论对分布式系统的特性做了高度抽象&#xff0c;形成了…