Spring Boot 集成 Prometheus

Prometheus是一个根据应用的metrics来进行监控的开源工具。其原理使用主动采集服务暴露的指标接口的方式拉取指标数据,所以需要给需要被监控的服务暴露数据指标接口,对于SpringBoot服务,集成起来非常简单,如下:

一、为pom添加依赖

		<!-- 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>

二、配置文件添加配置

management.endpoint.metrics.enabled=true
management.endpoints.web.exposure.include=*
management.endpoint.prometheus.enabled=true
management.metrics.export.prometheus.enabled=true
# 开启Micormeter
management.metrics.distribution.percentiles-histogram.http.server.requests=true
# Micormeter bucket指标配置,千分尺分段记录
management.metrics.distribution.sla.http.server.requests=100ms,200ms,400ms
# Micormeter quantile指标配置
management.metrics.distribution.percentiles.http.server.requests=0.5,0.9,0.95,0.99,0.999

三、访问验证
在这里插入图片描述
可以看到输出很多指标数据,表示完成。

四、集成 JVM (Micrometer)
JVM (Micrometer) 是一个 dashboard 模板,官网地址: https://grafana.com/grafana/dashboards/4701
SpringBoot 集成它只需要做一点简单的改动即可,添加 MeterRegistryCustomizer 如下:

public class StartApplication {

    …省略代码…

	@Bean
	MeterRegistryCustomizer<MeterRegistry> configurer(
	    @Value("${spring.application.name}") String applicationName) {
	    return (registry) -> registry.config().commonTags("application", applicationName);
	}
	
}

然后在 application 配置文件中添加配置:

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

特别提醒!!!
特别提醒!!!
特别提醒!!!
开启 actuator 后要注意要防护,请勿将开启 actuator 的服务直接对外。如果你需要这么做,可以新增一个过滤器对 /actuator 进行过滤,只允许内网IP地址访问。
(如果单纯的开启 security 可能为很多第三方监控系统带来麻烦,所以请选择适合自己的方案)


包含但不限于以下接口都是在开启 actuator 之后可以访问的(默认统一前缀 /actuator):

序号接口Method说明
1/health/{component}/{instance}GET报告程序的健康指标,这些数据由HealthIndicator实现类提供
2/infoGET获取程序指定发布的信息,这些信息由配置文件中info打头的属性提供
3/configpropsGET描述配置属性(包含默认值)如何注入到bean
4/beansGET描述程序中的bean,及之间的依赖关系
5/envGET获取全部环境属性
6/env/{name}GET根据名称获取指定的环境属性值
7/mappingsGET描述全部的URI路径,及和控制器的映射关系
8/metrics/{requiredMetricName}GET统计程序的各种度量信息,如内存用量和请求数
9/httptraceGET提供基本的http请求跟踪信息,如请求头等
10/threaddumpGET获取线程活动的快照
11/conditionsGET提供自动配置报告,记录哪些自动配置通过,哪些没有通过
12/loggers/{name}GET查看日志配置信息
13/auditeventsGET查看系统发布的事件信息
14/caches/{cache}GET/DELETE查看系统的缓存管理器,另可根据缓存管理器名称查询;另DELETE操作可清除缓存
15/scheduledtasksGET查看系统发布的定时任务信息
16/featuresGET查看Springcloud全家桶组件信息
17/refreshPOST重启应用程序,慎用
18/shutdownPOST关闭应用程序,慎用
19/dumpGET获取线程活动的快照
20/metricsGET报告各种应用程序度量信息,比如内存用量和HTTP请求计数
21/traceGET提供基本的HTTP请求跟踪信息(时间戳、HTTP头等)

(END)

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:猿与汪的秘密 设计师:我叫白小胖 返回首页

打赏作者

catoop

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值