`
u010562966
  • 浏览: 2199 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring Boot Actuator 整合 Prometheus

阅读更多

关注我

 

 

简介

Spring Boot 自带监控功能 Actuator,可以帮助实现对程序内部运行情况监控,比如监控状况、Bean加载情况、环境变量、日志信息、线程信息等。这一节结合 Prometheus 、Grafana 来更加直观的展示这些信息。

实验

说明

服务名 地址 端口
Prometheus 172.16.2.101 9090
Grafana 172.16.2.101 3000
Spring Boot Demo 172.16.2.204 8080

创建项目

创建用于测试的 Spring Boot 项目,主要代码如下。

pom.xml

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

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

application.yml

management:
  endpoints:
    web:
      exposure:
        include: '*'

  endpoint:
    health:
      show-details: always

  metrics:
    tags:
      application: actuator-demo
  • management.endpoints.web.exposure.include:大多数actuator的端口都不会通过http公开,* 代表公开所有这些端点。对于生产环境,应该仔细选择要公开的端点。
  • management.metrics.tags.application:为应用设置 tag ,方便区分不同的应用。

启动类

@SpringBootApplication
@RestController
public class SpringbootActuatorPrometheusDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootActuatorPrometheusDemoApplication.class, args);
    }

    @RequestMapping(value = "/hello")
    public String  sayHello() {
        for (int i = 1 ; i <= 10 ; i++) {
            Thread t = new Thread(() -> {
                try {
                    Thread.sleep(5000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            } , "HelloThread - " + i);
            t.start();
        }
        return "ok";
    }

    /**
    @Bean
    MeterRegistryCustomizer<MeterRegistry> metricsCommonTags() {
        return registry -> registry.config().commonTags("application", "springboot-actuator-prometheus-demo");
    }
    */

}

配置 Prometheus 和 Grafana

在 prometheus.yml 中添加针对该 Spring Boot 应用 的监控 job

- job_name: 'actuator-demo'
    metrics_path: '/prometheus'
    static_configs:
    - targets: ['172.16.2.204:8080']

运行 Prometheus 和 Grafana:

docker start prometheus grafana

访问 Prometheus UI http://172.16.2.101:9090 ,查看 targets ,可以看到 job 处于 UP 状态,说明配置成功了。

Grafana UI http://172.16.2.101:3000,通过Grafana的 + 图标导入(Import) JVM (Micrometer) dashboard:

  • grafana id = 4701
  • 注意选中prometheus数据源

查看JVM (Micormeter) dashboard:

可以看到应用的 JVM 的 堆栈、 线程、 IO 等等信息。

源码

https://github.com/gf-huanchupk/SpringBootLearning/tree/master/springboot-actuator-prometheus

参考

https://micrometer.io/docs/registry/prometheus
https://prometheus.io/docs/prometheus

往期内容

 

 

关注我

0
0
分享到:
评论

相关推荐

    springboot 2.1.0 RELEASE api.zip

    至于Prometheus的整合,这使得Spring Boot应用可以无缝集成到Prometheus监控系统中。Prometheus是一款流行的时序数据库和监控解决方案,能够收集和分析各种指标。通过Actuator提供的Prometheus端点,你可以轻松将...

    SpringBoot2.0-Actuator监控参数说明 - 最全文档.docx

    ### Spring Boot 2.0 Actuator 监控参数说明 #### 一、Spring Boot 2.0 ...通过以上步骤,Spring Boot 2.0项目不仅能够充分利用Actuator模块的强大功能,还能够借助于Prometheus实现更加灵活和细致的监控需求。

    如何在Java中实现微服务的API文档性能监控

    通过使用Spring Boot Actuator、Prometheus和Grafana,可以构建一个全面的监控系统,用于监控微服务的API文档性能。此外,通过Micrometer定义自定义指标,可以进一步细化监控的粒度。这些工具和方法可以帮助我们及时...

    spring boot2.x 书籍

    Thymeleaf是一种服务器端的模板引擎,可以方便地与Spring Boot整合,用于生成动态HTML页面。Spring MVC是Spring框架的一部分,负责处理HTTP请求,书中会详细解释其工作原理和配置方法。 此外,数据库集成是任何应用...

    prometheus+springboot监控集成.docx

    在SpringBoot项目的`pom.xml`文件中,引入`spring-boot-starter-actuator`和`micrometer-registry-prometheus`依赖: ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-starter-actuator ...

    Spring Boot Actuator监控的简单使用方法示例代码详解

    Spring Boot Actuator监控的简单使用方法示例代码详解 Spring Boot Actuator是一种监控工具,可以帮助开发者快速实现对Spring Boot应用程序的监控和管理。本文将详细介绍Spring Boot Actuator监控的简单使用方法,...

    prometheus-spring-boot-starter:用于启用Prometheus执行器端点的Spring Boot Starter

    一个新的Spring Boot Actuator端点-专为Prometheus设计: http://localhost:8080/prometheus 如果卷曲,您将得到类似以下内容: # HELP heap_used heap_used # TYPE heap_used gauge 普罗米修斯确实喜欢它。 你...

    spring boot 2.7.1 源码

    Spring Boot Actuator的健康检查端点可以定制,源码中展示了如何编写自定义的HealthIndicator,以报告应用的特定服务或组件的健康状态。 9. **错误处理**: Spring Boot提供了一套优雅的全局错误处理机制。源码中...

    spring boot admin server

    8. **Integration**:Spring Boot Admin Server支持与其他监控系统集成,例如Prometheus、Grafana等,可以将监控数据导出,用于更深入的分析和报警。 9. **Security**:在生产环境中,确保Admin Server的安全性至关...

    详解关于springboot-actuator监控的401无权限访问

    Spring Boot Actuator监控的401无权限访问详解 在本篇文章中,我们将详解关于Spring Boot Actuator监控的401无权限访问问题,该问题是Spring Boot开发中常见的错误之一。我们将通过实践演示如何解决该问题,并提供...

    Spring Boot wIth Activiti

    Spring Boot的Actuator也可以与其他监控工具(如Prometheus、Grafana)集成,对工作流性能进行监控。 总结来说,Spring Boot与Activiti的结合为企业级应用提供了灵活、高效的工作流管理方案。通过合理的配置和编程...

    Spring Boot面试题(最新版)-重点.pdf

    整合第三方项目:Spring Boot可以方便地与各种第三方库集成,如WebSockets、Spring Data、Spring Batch、FreeMarker、ActiveMQ、Apache Kafka、Swagger等,通过添加对应的starter依赖即可快速集成。 其他问题如热...

    Javaee开发 spring boot实战

    《JavaEE开发的颠覆者:Spring Boot实战》一书深入探讨了Spring Boot这一JavaEE开发领域的革新框架。Spring Boot以其简化配置、快速启动和高效运行的特性,成为了现代企业级应用开发的首选工具。本节将围绕Spring ...

    microservices spring boot sample java.rar

    10. **Spring Boot Actuator**: 提供了健康检查、审计、配置暴露、MBean注册等功能,帮助开发者更好地管理和监控Spring Boot应用。 压缩包中的文件可能包括源代码、配置文件、Dockerfile、Readme文档等,它们详细...

    全面掌握Java Web应用服务监控:技术、实践与代码实现

    通过使用Spring Boot Actuator、Prometheus、Grafana和JMX等工具,我们可以构建一个全面、实时的监控系统。本文提供的代码示例和最佳实践,希望能够为读者在实际项目中实现服务监控提供参考和帮助。

Global site tag (gtag.js) - Google Analytics