`
dwj147258
  • 浏览: 194628 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

SpringBoot自定义prometheus监控

 
阅读更多

1.

 放干货之前容许我说一些废话(其实觉得也是干货)

从数据层面,可以把prometheus理解成一个简单的数据库,每个metrices可以配置不同的标签,对应着一系列数值,但是如果给这些数值赋予各种业务的,资源的,服务性能的意义,并结合AlertManager,prometheus简直是个神器啊

网上文章很多,入门比较容易,但是我本人学习的时候有个地方理解了比较久,在promethues的graph页,如果查询metrics_name{tag1:"value1",...},可以查到数据,数据以线图展示,这个比较好理解,就是把这个系列每个时间点的数值绘制了出来,但是我要查五分钟内的:metrics_name{tag1:"value1",...}[5m],图表就无法展示了,一度无法理解,这个不就是应该展示前5分钟的数据吗,出现这种疑惑其实是没有理解prometheus真正用法,在prometheus里,永远要把数据想象成每一秒的数值,图表展示的必须是 【时间(精确到秒)】,【这一秒的数值】,是一个一维数组,而metrics_name{tag1:"value1",...}[5m]查出来的是一个二维数组【时间(精确到秒)】,【这一秒前五分钟内的所有数值】,自然就无法绘制线图了,所以我们要对这个数据的第二维度做一些聚合,例如做个sum,或者统计一下count,或者算一下增长量increase,或者平均增长量rate,或者瞬间增长量irate,就再次将二维数组变成了一维数组,就可以在graph中做展现了,栗子:

increase(metrics_name{tag1:"value1",...}[5m])

 

实战

 

假如我有一个定时器,springboot写的,每24小时执行一次,我希望通过prometheus做到少同步一次就告警。

大致思路使用Counter类型,每次执行成功count+1,prometheus增加rules,超过25小时(留一些余地)发现这个metrices增长量小于1说明没同步,就告警。直接贴代码不细说了,比较好理解,唯一不好的地方是组件把关键的接口暴露在/prometheus了,而我需要它在/metrics接口,而且组件默认暴露的接口中也有/metrics,但是不是prometheus需要的数据,所以在配置文件中设置只暴露prometheus,并自己新增/metrics做了一个转发,这个比较生硬,而且组件会默认收集jvm等相关信息暴露给prometheus,我在配置文件里关掉了

 

<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-actuator</artifactId>

</dependency>

<dependency>

    <groupId>io.micrometer</groupId>

    <artifactId>micrometer-registry-prometheus</artifactId>

</dependency>

1

2

3

4

5

6

7

8

如果是格式yml配置文件:

 

management:

  metrics:

    binders:

      jvm:

        enabled: false

      files:

        enabled: false

      integration:

        enabled: false

      logback:

        enabled: false

      processor:

        enabled: false

      uptime:

        enabled: false

  endpoints:

    web:

      exposure:

        include: ["prometheus"]

      base-path: "/"

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

如果是格式properties配置文件:

 

management.metrics.binders.files.enabled=false

management.metrics.binders.integration.enabled=false

management.metrics.binders.jvm.enabled=false

management.metrics.binders.logback.enabled=false

management.metrics.binders.processor.enabled=false

management.metrics.binders.uptime.enabled=false

management.endpoints.web.exposure.include[0]=prometheus

management.endpoints.web.base-path=/

1

2

3

4

5

6

7

8

@Configuration

public class PromConfig {

 

  @Autowired

  PrometheusMeterRegistry registry;

 

  @Bean

  public Counter getCounter() {

    Counter counter = Counter.builder("goods_rank_sync_count")

        .tags("status", "success")

        .description("Number of successful goods rank sync")

        .register(registry);

    return counter;

  }

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

@GetMapping("metrics")

public void metrics(HttpServletResponse response) throws IOException {

  response.sendRedirect("/prometheus");

}

1

2

3

4

数据同步成功时调用:counter.increment();

--------------------- 

作者:hugeo-coala 

来源:CSDN 

原文:https://blog.csdn.net/u010588262/article/details/83094560 

版权声明:本文为博主原创文章,转载请附上博文链接!

分享到:
评论

相关推荐

    配套linux监控+springboot服务监控json文件

    标题中的“配套Linux监控+...综上所述,这个压缩包提供了利用Prometheus和Grafana进行Linux和Springboot服务监控的一整套解决方案。通过导入JSON文件,用户可以快速搭建起监控环境,以便更好地管理和优化其IT基础设施。

    基于Prometheus 和 Grafana 实现springboot应用监控和服务器监控

    Grafana允许我们创建自定义的仪表板,展示各种图表和面板,以图形化的方式直观地展现监控数据。通过Grafana,我们可以实时监控应用的运行状态,比如CPU使用率、内存消耗、请求响应时间等,并能快速定位到问题所在。 ...

    Springboot(服务监控)20181207_微服务_微服务;springboot_

    2. **Prometheus**: Prometheus是一款流行的时序数据库和监控系统,与Spring Boot有很好的集成。通过添加Prometheus的Spring Boot Starter,我们可以方便地暴露监控指标,并使用Prometheus服务器收集这些数据,进行...

    3.2 promethues监控springboot项目.docx

    《Prometheus监控SpringBoot项目详解》 在现代微服务架构中,监控系统起着至关重要的作用,它能够帮助我们及时发现并解决问题,提高系统的稳定性和可靠性。Prometheus是一款流行的开源监控和警报工具,它与...

    基于SpringBoot的Promethus+Granfana自定义监控埋点简单案例(全流程)

    ### 基于Spring Boot的Prometheus+Grafana自定义监控埋点简单案例 #### 概述 本文档将详细介绍如何使用Spring Boot构建一个基于Prometheus和Grafana的自定义监控系统。通过本教程,您将学习到如何集成Spring Boot ...

    SpringBoot2.0-Actuator监控参数说明

    SpringBoot2.0-Actuator是Spring Boot框架中的一个强大组件,主要负责提供应用程序的监控和管理能力。在Spring Boot应用中,Actuator通过暴露一系列的端点(endpoints),使得开发者可以方便地查看和操作应用程序的...

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

    ##### 4.2 自定义Prometheus监控指标 除了默认收集的指标外,还可以自定义监控指标。例如,可以使用`MeterRegistry`来创建一个新的计数器: ```java @Bean public MeterRegistryCustomizer&lt;MeterRegistry&gt; ...

    springboot 2.1.0 RELEASE api.zip

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

    基于SpringBoot的Hadoop-Yarn资源监控系统源码.zip

    可能使用了如Prometheus、Grafana等监控工具,或者自定义了YARN的应用指标报告器。 【文件名称】yarn-monitor-master 这表明项目的核心代码位于`yarn-monitor-master`目录下,可能包含了以下部分: 1. **主应用...

    Prometheus+grafana+alertmanager安装包、demo源代码、课件

    包含: 1)Prometheus 2.50.1、grafana 7.3.7、alertmanager0.26.0 安装包 ...3)Springboot demo-admin 自定义埋点监控应用 4)Prometheus企业级实战监控平台搭建课件PPT 5)grafana 监控面板模板文件等

    java-springboot-demomicrometer_java_springboot_micrometer_

    SpringBoot 提供了开箱即用的便捷性,而 Micrometer 则是 Spring 生态系统中的一个度量收集框架,支持多种监控系统如 Prometheus、Graphite 和 ELK Stack。 首先,`java-springboot-demomicrometer` 项目是一个简单...

    promethues-spring1.5.9-eureka-jvm-actuactor.zip

    《Prometheus监控SpringBoot应用与Eureka集成实践》 在微服务架构中,监控系统扮演着至关重要的角色,它能够帮助我们实时了解系统的运行状态,及时发现并解决问题。本篇文章将详细探讨如何在SpringBoot 1.5.9....

    springboot 实现mysql读写分离

    同时,设置监控机制,如Prometheus+Grafana,以便实时查看读写分离的效果及数据库性能。 6. **负载均衡与故障转移**:考虑使用负载均衡器,如Nginx,来分散读请求到多个从库。同时,当主库出现故障时,应有自动化...

    springboot3场景整合

    综上所述,“springboot3场景整合”不仅包含了Spring Boot 3的核心特性和Web开发相关知识,还涵盖了云服务器的选购与使用、Docker的基本操作,以及Prometheus监控系统的部署等内容。这对于理解Spring Boot 3的实际...

    以SpringBoot为项目框架搭建的多模块版本,包含系统基础设置账号权限模块、日志模块、监控模块、代码生成模块

    结合Prometheus和Grafana,可以实现可视化监控,及时发现并处理潜在问题。 5. **代码生成模块**:这个模块能够自动生成常见的CRUD操作代码,减轻开发工作量。SpringBoot结合MyBatis或JPA,可以便捷地实现数据库操作...

    运维监控口碑排行榜.pdf

    2. **WGCLOUD**:这是一个国人开发的轻量级高性能监控工具,基于SpringBoot微服务架构,支持跨平台,单节点能监控1000+主机。WGCLOUD的功能涵盖了主机系统信息、网络、CPU、内存、磁盘、服务接口、应用进程、日志...

    SpringBoot 源码解析——源码模块依赖分析.docx

    在深入解析 SpringBoot 的源码时,了解其模块间的依赖关系至关重要,这有助于我们更好地理解框架的工作原理以及如何自定义和扩展功能。 首先,SpringBoot 的核心模块包括 `spring-boot` 和 `spring-boot-...

    运维监控口碑排行榜.docx

    5. **Grafana**:Grafana是一个数据可视化工具,不直接提供监控功能,但可以与InfluxDB、Prometheus等监控系统配合,帮助快速创建和展示数据图表。对于需要漂亮数据报告的场景,Grafana是理想选择。 6. **Zenoss**...

    springboot512基于SpringBoot的私房菜定制上门服务系统的设计与实现pf.zip

    3. 监控:集成Prometheus和Grafana进行系统监控,实时查看系统运行状态。 总结,基于SpringBoot的私房菜定制上门服务系统,通过现代化的技术栈和设计思想,实现了个性化餐饮服务的线上化,为用户提供了一个便捷、...

    minio在springboot上的使用。

    - MinIO提供丰富的监控指标和日志记录,可以通过 Prometheus 和 Grafana 进行监控,同时支持自定义日志输出。 通过以上步骤,你可以成功地在SpringBoot应用中集成并使用MinIO进行对象存储操作。记得根据实际需求...

Global site tag (gtag.js) - Google Analytics