0


【监控系统】Promethus监控SpringBoot微服务应用配置实战

我们本节要实现的是Java服务级监控用于对每个应用占用的内存、线程池的线程数量、restful调用数量和响应时间、JVM状态、GC信息等进行监控,并可将指标信息同步至Prometheus中集中展示和报警。

首先我们先了解下什么是actuator?

Spring Boot Actuator 模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP 跟踪等,帮助我们监控和管理Spring Boot 应用。

Spring Boot Actuator 做度量统计收集,使用Prometheus进行数据收集,Grafana进行数据展示,用于监控生成环境机器的性能指标和业务数据指标。一般,我们叫这样的操作为”埋点”。SpringBoot中的依赖spring-actuator中集成的度量统计API使用的框架是Micrometer,官网是Micrometer.io。在实践中发现了业务开发者滥用了Micrometer的度量类型Counter,导致无论什么情况下都只使用计数统计的功能。这篇文章就是基于Micrometer分析其他的度量类型API的作用和适用场景。

OK,如果要使用 SpringBoot Actuator提供的监控功能,首先我们要先在Spring Boot程序中加入依赖。我们这里采用Spring Boot2.X的版本。

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

只要加上了这个依赖,SpringBoot 在运行时就会自动放开/actuator/health和/actuator/info这两个endpoint,我们就可以通过这两个 endpoint 查看当前 SpringBoot 运行的情况。

在这里插入图片描述

我这里用一个之前我做测试的SpringBoot项目。

在这里插入图片描述

浏览器访问

 http://localhost:8080/actuator

,这里由于我是本地启动的8080的服务,大家可以根据你们自己的服务的IP地址➕端口进行访问。

在这里插入图片描述

默认只暴露 health 端点,如果想要看到更多,可以配置更多端点。application.yml或者application.properties中进行配置。

#暴露指定端点management.endpoints.web.exposure.include=env,info,config,health

#暴露全部management.endpoints.web.exposure.include=*

在这里插入图片描述

在这里插入图片描述

拼上health我们来看下服务的运行情况,http://localhost:8080/actuator/health

在这里插入图片描述

health 端点中常见的状态值及其含义:

  • “UP”: 应用程序健康状态良好,所有依赖项都处于可用状态。
  • “DOWN”: 应用程序健康状态不佳,至少有一个依赖项处于不可用状态。
  • “OUT_OF_SERVICE”: 应用程序无法提供服务,所有依赖项都处于离线状态。
  • “UNKNOWN”: 应用程序健康状态未知,无法确定依赖项的状态。

在这里插入图片描述

当我们有自研组件的不满足的情况下,需要自定义,参考实现

DataSourceHealthIndicator

/**
 * @author lixiang
 * @date 2023/7/17 17:52
 */@ComponentpublicclassCustomHealthIndicatorextendsAbstractHealthIndicator{/**
     * 这个方法写检测的逻辑,测试中间件服务是否正常启动
     * @param builder
     * @throws Exception
     */@OverrideprotectedvoiddoHealthCheck(Health.Builder builder)throwsException{//builder.down().withDetail("custom","自定义中间件");
        builder.up().withDetail("custom","自定义中间件");}}

在这里插入图片描述

OK。关于SpringBoot整合Actuator我们先介绍到这里,主要是我们用health端点去查看服务的运行情况,下面我们来将服务整合到Promethus上。

首先,加入依赖包。

<!--整合prometheus--><dependency><groupId>io.micrometer</groupId><artifactId>micrometer-registry-prometheus</artifactId></dependency>

重启服务,访问接口:

http://localhost:8080/actuator

,会发现prometheus的端点。

在这里插入图片描述

访问:

http://localhost:8080/actuator/prometheus

,我们会看到prometheus的格式数据。

在这里插入图片描述

然后将SpringBoot程序打包,上传到linux服务器启动。

mvn clean package

守护进程启动

nohup java -jar xxxx.jar & 

在这里插入图片描述

prometheus整合配置,编辑文件 prometheus.yml

-job_name:"order-service"scrape_interval: 15s
    scrape_timeout: 10s
    metrics_path:'/actuator/prometheus'static_configs:-targets:['192.168.140.134:8080']

热更新配置

curl -X POST http://localhost:9090/-/reload

在这里插入图片描述
在这里插入图片描述

好啦,关于Promethus监控SpringBoot微服务应用配置实战,就到这里啦,记得三连➕关注哦!

在这里插入图片描述


本文转载自: https://blog.csdn.net/weixin_47533244/article/details/131777117
版权归原作者 互联网小阿祥 所有, 如有侵权,请联系我们删除。

“【监控系统】Promethus监控SpringBoot微服务应用配置实战”的评论:

还没有评论