前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Spring Boot的监控

Spring Boot的监控

原创
作者头像
堕落飞鸟
发布于 2023-04-06 03:28:54
发布于 2023-04-06 03:28:54
1.7K00
代码可运行
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏
运行总次数:0
代码可运行

Spring Boot是一款非常流行的Java框架,它可以快速开发基于Spring的应用程序。监控是应用程序运行的重要组成部分,它可以帮助我们了解应用程序的状态,识别性能瓶颈,并快速解决问题。Spring Boot提供了一些内置的监控工具,本文将介绍Spring Boot监控的详细文档,并给出一些示例。

一、监控指标

Spring Boot提供了以下监控指标:

  1. HTTP请求指标:HTTP请求数、响应时间、错误率等。
  2. JVM指标:内存使用量、垃圾收集频率、线程数量等。
  3. 数据源指标:连接池使用量、连接数、等待时间等。
  4. 自定义指标:我们可以自定义一些指标来监控我们的应用程序。

二、监控工具

Spring Boot提供了一些内置的监控工具,包括:

  1. Spring Boot Actuator:Actuator是Spring Boot的一个模块,提供了一些REST端点,我们可以通过这些端点来获取应用程序的各种指标信息。
  2. Micrometer:Micrometer是一个通用的指标收集库,支持将监控指标发送到各种后端,如Prometheus、Graphite、InfluxDB等。
  3. Prometheus:Prometheus是一款流行的监控系统,支持多种指标收集方式,如HTTP接口、Push Gateway等。

三、Spring Boot Actuator

Spring Boot Actuator提供了一些REST端点,可以用于获取应用程序的各种指标信息。默认情况下,Actuator的端点都是关闭的,我们需要在配置文件中手动开启。

开启Actuator

在application.properties文件中添加以下配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
management.endpoints.web.exposure.include=*

这个配置可以开启所有Actuator的端点。如果我们只需要开启某些端点,可以将*替换成需要开启的端点名称,多个端点之间用逗号分隔。

常用端点

以下是一些常用的Actuator端点:

  • /actuator/health:获取应用程序的健康状况,包括内存使用量、磁盘使用量、数据库连接状态等。
  • /actuator/metrics:获取应用程序的各种指标信息,包括HTTP请求数、JVM内存使用量、数据库连接数等。
  • /actuator/loggers:获取应用程序的日志信息。
  • /actuator/threaddump:获取当前应用程序的线程信息。

自定义端点

除了内置的端点之外,我们还可以自定义一些端点来获取我们需要的指标信息。自定义端点需要实现Endpoint接口,并在配置文件中添加以下配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
management.endpoints.web.exposure.include=my-endpoint

这个配置将开启名为my-endpoint的自定义端点。我们可以在自定义端点的实现类中定义需要暴露的信息,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Component
@Endpoint(id = "my-endpoint")
public class MyEndpoint {

    @ReadOperation
    public Map<String, Object> getInfo() {
        Map<String, Object> info = new HashMap<>();
        info.put("myInfo", "This is my custom endpoint");
        return info;
    }

}

这个自定义端点返回一个Map对象,其中包含了一个名为myInfo的信息。

四、Micrometer

Micrometer是一个通用的指标收集库,它支持将监控指标发送到各种后端,如Prometheus、Graphite、InfluxDB等。我们可以通过添加依赖来使用Micrometer:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-core</artifactId>
    <version>1.6.6</version>
</dependency>

我们还需要添加一个后端的依赖,例如Prometheus:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
    <version>1.6.6</version>
</dependency>

在应用程序中,我们可以通过定义MeterRegistry来创建指标并发送到后端。例如,以下代码定义了一个名为my_counter的计数器,并将其发送到Prometheus:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Autowired
private MeterRegistry registry;

registry.counter("my_counter").increment();

这个计数器可以在Prometheus的控制台中查看。

五、Prometheus

Prometheus是一款流行的监控系统,它支持多种指标收集方式,如HTTP接口、Push Gateway等。我们可以通过添加依赖来使用Prometheus:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
    <version>1.6.6</version>
</dependency>

在应用程序中,我们需要添加以下配置来开启Prometheus的HTTP接口:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
management.endpoints.web.exposure.include=metrics
management.metrics.export.prometheus.enabled=true

这个配置将开启/metrics端点,并将其指标信息发送到Prometheus。我们可以在Prometheus的控制台中添加以下查询来查看应用程序的指标信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http_requests_total
jvm_memory_used_bytes
datasource_connections_active

这些查询将分别返回HTTP请求数、JVM内存使用量和数据库连接数的信息。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
<译文>使用Spring Boot 2.0,Prometheus和Grafana进行监控(第2部分-公开指标)
在上一篇文章中,我们为实体上的CRUD操作创建了REST API。在这一部分中,我们将在同一个应用程序上进行工作以添加设置和配置,这将使我们能够公开端点的指标。
东风微鸣
2022/04/21
1K0
<译文>使用Spring Boot 2.0,Prometheus和Grafana进行监控(第2部分-公开指标)
树义带你学 Prometheus(六):Spring Boot Actuator 实现应用监控
前面的例子中,我们学习的都是 Prometheus 自身的内容,即监控的都是机器或者系统层面的指标。那么如果我们需要对 Java 应用做监控,例如:监控 JVM 的信息,监控 Spring Bean 的信息。那我们应该怎么实现呢?
陈树义
2020/10/27
1.7K0
树义带你学 Prometheus(六):Spring Boot Actuator 实现应用监控
Spring Boot Application 监控利器: Spring Boot Actuator
接触和使用 Spring Boot,当然要知道 Spring Boot 的四大核心,包括:
happyJared
2019/04/18
2.8K0
Spring Boot 使用 Micrometer 集成 Prometheus 监控 Java 应用性能
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
哎_小羊
2019/09/18
10.5K0
Spring Boot 使用 Micrometer 集成 Prometheus 监控 Java 应用性能
Spring Boot Admin 监控指标接入Grafana可视化
Spring Boot Admin2 自带有部分监控图表,如图,有线程、内存Heap和内存Non Heap,但也就只有这几个监控图表,数量很少,并且它只能看到当时的监控数据,并不能查看历史数据,为了改变这种情况,我们需要将指标进行持久化,并使用更强大的可视化工具,这个工具就是Grafana。
阿提说说
2022/12/05
1.2K0
Spring Boot Admin 监控指标接入Grafana可视化
彻底搞懂监控系统,使用Prometheus监控Spring Boot应用,自定义应用监控指标!
前面我们介绍了使用Prometheus + Grafana 构建了监控系统,那么我们的应用平台怎么监控呢?应用平台中的核心业务的执行情况能否监控呢?那么接下来我们使用Actuator,Micrometer,Prometheus和Grafana监控Spring Boot应用程序,自定义应用监控指标。
架构师精进
2023/03/23
15K2
彻底搞懂监控系统,使用Prometheus监控Spring Boot应用,自定义应用监控指标!
Prometheus for Spring Boot
前面两篇文章已经介绍如何搭建Prometheus和Grafana,本文介绍如何快速监控Spring Boot进程 快速接入 引入Jar包(pom.xml) <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>io.micrometer</gr
十毛
2019/03/27
9300
Prometheus for Spring Boot
Java|使用Spring Boot Actuator监控应用
微服务的特点决定了功能模块的部署是分布式的,大部分功能模块都是运行在不同的机器上,彼此通过服务调用进行交互,前后台的业务流会经过很多个微服务的处理和传递,出现了异常如何快速定位是哪个环节出现了问题?
黄小怪
2018/12/26
1.5K0
Spring Boot Actuator 整合 Prometheus
Spring Boot 自带监控功能 Actuator,可以帮助实现对程序内部运行情况监控,比如监控状况、Bean加载情况、环境变量、日志信息、线程信息等。这一节结合 Prometheus 、Grafana 来更加直观的展示这些信息。
程序员果果
2019/10/23
2.6K0
Spring Boot 2.x 中的 Actuator
Spring Boot 提供了很多开箱即用的starter,其中有一款非常特别的starter——actuator 。它是用来对Spring Boot 应用进行监控、指标采集、管理,并提供一些很有用的端点(endpoint)来实现上述功能。这有助于我们对Spring Boot 应用进行监视和管理。我们本文将探讨Spring Boot 2.x下的actuator的一些知识点。
码农小胖哥
2019/12/10
1.2K0
Spring Boot 2.x 中的 Actuator
如何监视所有 Spring Boot 微服务?
Spring Boot Actuator 是一个非常强大的工具,可以提供生产就绪的特性,如健康检查、度量指标、审计等。
代码小李
2025/02/02
680
Spring Cloud LoadBalancer 的监控
Spring Cloud LoadBalancer 是一个用于负载均衡的框架,它提供了许多功能来帮助应用程序在多个实例之间分配负载。在使用 Spring Cloud LoadBalancer 进行负载均衡时,监控是非常重要的。
堕落飞鸟
2023/04/15
3370
面试官:聊一聊 Spring Boot 服务监控机制
任何一个服务如果没有监控,那就是两眼一抹黑,无法知道当前服务的运行情况,也就无法对可能出现的异常状况进行很好的处理,所以对任意一个服务来说,监控都是必不可少的。就目前而言,大部分微服务应用都是基于 Spring Boot来构建,所以了解 SpringBoot 的监控特性是非常有必要的,而 SpringBoot 也提供了一些特性来帮助我们监控应用。本文基于 SpringBoot 2.3.1.RELEASE 版本演示。SpringBoot 中的监控可以分为 HTTP 端点和 JMX 两种方式来监控当前应用的运行
江南一点雨
2022/03/04
5150
Spring Boot 2.X(十六):应用监控之 Spring Boot Actuator 使用及配置
Actuator 是 Spring Boot 提供的对应用系统的自省和监控功能。通过 Actuator,可以使用数据化的指标去度量应用的运行情况,比如查看服务器的磁盘、内存、CPU等信息,系统的线程、gc、运行状态等等。
朝雾轻寒
2019/11/14
1.8K0
Spring Boot Actuator详解与深入应用(三):Prometheus+Grafana应用监控
本文系《Spring Boot Actuator详解与深入应用》中的第三篇。在前两篇文章,我们主要讲了Spring Boot Actuator 1.x与 2.x 的应用与定制端点。相比于Actuator 1.x,基于Spring Boot 2.0的Actuator 2.x 在使用和定制方面有很大变化,对于Actuator的扩展也更加灵活。建议读者重点关注一下Actuator 2.x,关于Spring Boot 2.x流行的趋势是显而易见的。
aoho求索
2018/12/19
2.5K0
Spring Boot Actuator详解与深入应用(三):Prometheus+Grafana应用监控
在SpringBoot自定义指标并集成Prometheus和Grafana监控
写这篇文章的目的是发现自己整天埋头写业务代码但忽略了主动发现问题的能力,这里指的是监控和报警。结合工作中发现Prometheus和Grafana还是主流一些。本文介绍如何使用自定义指标,并使用Prometheus进行监控并报警,同时在 Grafana 进行展现。
CBeann
2024/05/26
1.1K0
在SpringBoot自定义指标并集成Prometheus和Grafana监控
spring boot metrics使用指南
针对应用监控指标暴露,spring boot有一套完整的解决方案,并且内置了好很多的指标收集器,如tomcat、jvm、cpu、kafka、DataSource、spring mvc(缺少直方图的数据)等。基于micrometer技术,几乎支持所有主流的监控服务的指标数据收集,这其中就包含了我们线上使用的Prometheus,这份指南旨在最快速接入boot的metrics功能,暴露prometheus的数据监控指标服务。
kl博主
2023/11/18
1.2K0
如何将 Spring Boot Actuator 的指标信息输出到 InfluxDB 和 Prometheus
Spring Boot Actuator是Spring Boot 2发布后修改最多的项目之一。它经过了主要的改进,旨在简化定制,并包括一些新功能,如支持其他Web技术,例如新的反应模块 - SpringWebFlux。它还为 InfluxDB添加了开箱即用的支持,这是一个开源时间序列数据库,旨在处理大量带时间戳的数据。与 SpringBoot1.5使用的版本相比,它实际上是一个很大的简化。您可以通过阅读我之前的一篇文章使用Grafana和InfluxDB自定义指标可视化来了解自己有多少。我在那里描述了如何使用 @ExportMetricsWriter bean将[Spring Boot Actuator生成的指标导出到InfluxDB。示例Spring Boot应用程序已在分支主文件中的GitHub存储库sample-spring-graphite上提供该文章。对于本文,我创建了分支spring2,它展示了如何实现与使用Spring Boot 2.0版本之前相同的功能。弹簧启动执行器。
程序猿DD
2019/05/10
5.1K0
如何将 Spring Boot Actuator 的指标信息输出到 InfluxDB 和 Prometheus
Spring学习笔记(二十九)——SpringBoot Actuator指标监控
在项目上线后,或者未来每一个微服务在云上部署以后,我们都需要对其进行监控、追踪、审计、控制等。SpringBoot就抽取了Actuator场景,使得我们每个微服务快速引用即可获得生产级别的应用监控、审计等功能。
不愿意做鱼的小鲸鱼
2022/09/26
1.2K0
Spring学习笔记(二十九)——SpringBoot Actuator指标监控
快给你的 Spring Boot 做个埋点监控吧!
spring-actuator做度量统计收集,使用Prometheus(普罗米修斯)进行数据收集,Grafana(增强ui)进行数据展示,用于监控生成环境机器的性能指标和业务数据指标。一般,我们叫这样的操作为”埋点”。SpringBoot中的依赖spring-actuator中集成的度量统计API使用的框架是Micrometer,官网是Micrometer.io。
路人甲Java
2021/10/20
1.9K0
推荐阅读
相关推荐
<译文>使用Spring Boot 2.0,Prometheus和Grafana进行监控(第2部分-公开指标)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验