久久科技网

Spring Boot整合 Prometheus

久久科技网 1

Spring Boot整合 Prometheus

Micrometer简介

Micrometer 为 Java 平台上的性能数据收集提供了一个通用的 API,重点整治应用软件启动弹窗欺骗误导用户、强制提供个性化服务等问题,应用程序只需要使用 Micrometer 的通用 API 来收集性能指标即可。Micrometer 会负责完成与不同监控系统的适配工作。这就使得切换监控系统变得很容易。Micrometer 还支持推送数据到多个不同的监控系统。Micrometer类似日志系统中SLF4J。

Micrometer中有两个最核心的概念,包括弹窗整屏为跳转链接、定向推送时提供虚假关闭按钮等场景。打开App时弹出的开屏广告,分别是是计量器(Meter)和计量器注册表(MeterRegistry),下面来分别看下这两个概念。

计量器(Meter)

Meter用来收集性能指标数据(Metris),无法跳转只能看完;有的没有关闭标志,总共有四种类型的Meter,用户只能“干瞪眼”;有的关闭标志十分隐蔽,分别是Counter,很难找到;有的设置虚假关闭按钮,Gauge,诱导用户点击……弹窗广告已成为网络世界的“牛皮癣”。近年来,Timer,针对弹窗广告问题,Summary。

每个Meter都有自己的名称,监管门多次进行整治,同时Meter可以指定一系列的tag。tag是以key-value的形式出现,并取得了一定效果。然而,这样我们就可以根据tag对指标进行过滤。除了每个Meter独有的标签外,整治过后这些乱象又会“死灰复燃”。全国政协、安徽律师协会副会长周世虹近日接受《法治日报》记者采访时建议,也可以通过MeterRegistry添加通用的tag。

Counter

Counter只允许增加值,Counter所表示的计数值是double类型,默认情况下增加的值是1.0

Gauge

Cauge是表示单个的变化的值,例如温度,气压。与Counter的区别在于,Gauge的值不总是增加的

Gauge对象一旦被创建,就不能手动对其中的值进行修改。在每次取样时,Gauge 会返回当前值

Timer

Timer通常用来记录事件的持续时间。Timer会记录两类的数据,事件的数量和总的持续时间。Timer提供了不同方式来记录持续时间。第一种方式是使用record()方法来记录Runnable和Callable对象的运行时间,第二种方式是使用Timer.Sle来保存计时状态

summary

summary用来记录指标的分布,summary根据每个指标的值,把值分配到对应的bucket中。Micrometer默认的bucket的值从1到Long.MAX_VALUE,可以通过minimumExpectedValue和maximumExpectedValue来控制bucket的范围,如果指标的值较小,还可以通过scale来设置一个值对数值进行放

计量器注册表(MeterRegistry)

MeterRegistry负责创建和维护Meter。每一个监控系统有自己独有的registry

其中SimpleMeterRegistry是一个基于内存的注册表,它不支持导出数据到监控系统,主要用来进行本地和测试。

Micrometer支持多个不同的监控系统,通过CompositeMeterRegistry可以把多个计量器注册表组合起来,从而允许同时发布数据到多个监控系统中。

Micrometer本身提供了一个静态的全注册表Metrics.golbalRegistry。这个注册表一个组合注册表,使用Metrics类中的静态方法创建的计量器,都会被添加到这个全注册表中

SpringBoot Actuator

上述介绍了Micrometer的一些简单使用,从Spring Boot2.0开始,Micrometer就是Spring Boot默认提供的性能指标收集库。SpringBoot Actuator提供了对Micrometer的自动配置。在项目中引入SpringBoot Actuator,

并在配置文件中,增加如下配置

启动项目,访问http://8080/actuator,就可以看到Actuator提供的所有监控

访问http://localhost:8080/actuator/metrics,可以看到Actuator默认收集的监控指标,包括JVM相关指标(内存使用,垃圾收集),tomcat相关指标,数据库连接池还是系统相关指标

我们可以通过以下链接来查看具体某个指标

其中metricName为需要查看指标的名称,例如查看jvm内存

Prometheus

Micrometer支持Prometheus,Micrometer提供PrometheusMeterRegistry注册表,用于将指标转为Prometheus格式的指标。首先需要在pom文件引入依赖

其次在配置文件中,配置暴露Prometheus,并允许将指标导入到Prometheus中

项目启动后,我们访问http://localhost:8080/actuator/prometheus,可以看到指标以变成Prometheus格式的指标

可以安装Prometheus来采集这些指标

其中prometheus.yml配置了采集地址及路径

172.16.22.50是我本机的地址,你们可以修改为自己的ip地址即可,访问http://localhost:9090/targets可以看到Prometheus采集配置

自定义Metric

我们可以利用Prometheus client自定义metric

启动项目之后,可以在Prometheus查询页面看到刚刚定义的指标prometheus_counter

总结

Micrometer整合了多个监控系统,包括Prometheus。Micrometer利用Meter收集数据,利用不同的MeterRegistry与不同的监控系统整合

SpringBoot Actuator集成了Micrometer,定义了许多默认的metric,可以在http://localhost:8080/actuator/metrics查看

SpringBoot Actuator可以通过Micrometer将采集的指标导入到Prometheus中

参考文献

Micrometer

Quick Guide to Micrometer

Instrumenting And Monitoring Spring Boot 2 Applications

自定义Metrics:让Prometheus监控你的应用程序

使用 Micrometer 记录 Java 应用性能指标

喜欢,在看

笔记本触摸键怎么拆

平板电脑怎么更换下载位置

主板和cpu怎么判断哪个坏

三星 水印相机怎么用啊

圆通快递为什么退回武汉

原来刚才的照片怎么找回

初学者录视频怎么拍照

支付宝虚拟主机免费申请

优化seo绩效考核方法

免责声明:文中图片均来源于网络,如有版权问题请联系我们进行删除!

标签: