spring boot metrics监控指标使用教程

 更新时间:2022年02月22日 08:33:31   作者:kl  
这篇文章主要为大家介绍了针对应用监控指标暴露spring boot metrics监控指标的使用教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步

spring boot metrics是什么?

针对应用监控指标暴露,spring boot有一套完整的解决方案,并且内置了好很多的指标收集器,如tomcat、jvm、cpu、kafka、DataSource、spring mvc(缺少直方图的数据)等。基于micrometer技术,几乎支持所有主流的监控服务的指标数据收集,这其中就包含了我们线上使用的Prometheus,这份指南旨在最快速接入boot的metrics功能,暴露prometheus的数据监控指标服务。

micrometer地址:https://micrometer.io/

一、引入依赖

implementation ('org.springframework.boot:spring-boot-starter-actuator')
implementation ('io.micrometer:micrometer-registry-prometheus:1.6.1')
implementation ('io.micrometer:micrometer-core:1.6.1')

actuator是spring boot中负责运维功能的包,这里主要是通过它来暴露和管理metrics接口的。其他两个依赖是为了包兼容引入的,在sprinr boot2.x中,actuator中默认引入的prometheus支持包存在兼容性问题,如果你的环境不存在兼容性问题,可以不用引入下面两个依赖。

二、配置启用

通过如下的配置,来开启prometheus的端点接口服务

management.endpoints.web.exposure.include=prometheus

开启服务后,会暴露/actuator/prometheus 端点接口服务。

在浏览器中,输入http://localhost:8080/actuator/prometheus 。可以看到内置的指标收集器收集到的监控指标

三、独立的web服务

默认情况下,/actuator/prometheus端点服务跟随应用的web容器一起发布,但是当我们的web服务面向公网需要授权认证时,可以使用如下配置启用独立的容器暴露服务

management.server.port=8081

四、全局标签设置

在metrics监控系统设计中,tag用来标记区分一组指标集。比如我们在监控grpc时,servicename就是是监控指标的其中一个tag。有的时候为了区分环境和应用,我们会设置一些全局的tag:

management.metrics.tags.application = ${spring.application.name}
management.metrics.tags.region = bj

如上配置,我们添加了一个应用的名字和一个区域的tag。这种配置是全局的。虽然grpc的组件可能只记录了servicename,但是最终数据呈现时,也会带上全局配置的tag

五、自定义指标收集

spring boot所有的指标最终都是通过MeterRegistry来注册的,这个实例被spring托管,所以你可以在spring的上下文中注入这个实例,结合micrometer指标定义,自定义自己的监控指标

六、推送or拉取指标

目前,我们线上是通过k8s的monitoring.coreos.com/v1 api定义指定prometheus主动拉取应用pod的监控指标信息,主要是因为之前的metrics系统是基于prometheus client模式暴露的。在基于spring boot的metrics系统中,主动推送数据的模式非常容易实现,这里需要prometheus-gateway支持

引入依赖

implementation("io.prometheus:simpleclient_pushgateway")

启用push模式

#开启prometheus的数据推送模式
management.metrics.export.prometheus.pushgateway.enabled=true
#prometheus服务端地址
management.metrics.export.prometheus.pushgateway.base-url=localhost:9091
#推送数据的频率,默认1m(单位分钟)
management.metrics.export.prometheus.pushgateway.push-rate=1m
#在jvm关闭之前将数据推送出去
management.metrics.export.prometheus.pushgateway.shutdown-operation=push

以上就是spring boot metrics监控指标使用教程的详细内容,更多关于spring boot metrics监控指标教程的资料请关注脚本之家其它相关文章!

相关文章

  • JAVA正则表达式校验qq号码的方法

    JAVA正则表达式校验qq号码的方法

    Java作为一种开发语言,有许多值得推荐的地方,但是它一直以来没有自带对正则表达式的支持。下面小编给大家带来了JAVA正则表达式校验qq号码的方法,需要的朋友参考下吧
    2018-04-04
  • mybatis新手快速入门以及一些错误汇总

    mybatis新手快速入门以及一些错误汇总

    这篇文章主要给大家介绍了关于mybatis新手快速入门以及一些错误的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Java实现Map遍历key-value的四种方法

    Java实现Map遍历key-value的四种方法

    本文主要介绍了Java实现Map遍历key-value的四种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Spring Cloud Feign的文件上传实现的示例代码

    Spring Cloud Feign的文件上传实现的示例代码

    这篇文章主要介绍了Spring Cloud Feign的文件上传实现的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Java实现爬虫

    Java实现爬虫

    这篇文章介绍了Java实现爬虫的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • SpringBoot整合Minio实现文件上传和读取功能

    SpringBoot整合Minio实现文件上传和读取功能

    最近有一个需求是关于视频上传播放的,需要设计一个方案,中间谈到了Minio这个技术,于是来学习一下,所以本文给大家介绍了SpringBoot整合Minio实现文件上传和读取功能,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2024-07-07
  • SpringBoot如何引入缓存提高单次查询数据效率

    SpringBoot如何引入缓存提高单次查询数据效率

    这篇文章主要介绍了SpringBoot如何引入缓存提高单次查询数据效率问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • 使用@ConfigurationProperties注解获取为null的解决方法

    使用@ConfigurationProperties注解获取为null的解决方法

    在SpringBoot中,当想需要获取到配置文件数据时,除了可以用 Spring 自带的@Value注解外,SpringBoot还提供了一种更加方便的方式:@ConfigurationProperties,但我们在通过通过get方法去取值一直为null,本文介绍了使用@ConfigurationProperties注解获取为null的解决方法
    2024-09-09
  • Java 如何快速实现一个连接池

    Java 如何快速实现一个连接池

    有没有一个通用的库可以快速实现一个线程池呢?得益于 Java 完善的生态,前人们针对这种需要开发了一个通用库:Apache Commons Pool(下文简称 ACP)。本质上来说,ACP 库提供的是管理对象池的通用能力,当然也可以用来管理连接池了!
    2021-05-05
  • java 中模拟TCP传输的客户端和服务端实例详解

    java 中模拟TCP传输的客户端和服务端实例详解

    这篇文章主要介绍了java 中模拟TCP传输的客户端和服务端实例详解的相关资料,需要的朋友可以参考下
    2017-03-03

最新评论