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 {…省略代码…@BeanMeterRegistryCustomizer<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 /info GET 获取程序指定发布的信息,这些信息由配置文件中info打头的属性提供
3 /configprops GET 描述配置属性(包含默认值)如何注入到bean
4 /beans GET 描述程序中的bean,及之间的依赖关系
5 /env GET 获取全部环境属性
6 /env/{name} GET 根据名称获取指定的环境属性值
7 /mappings GET 描述全部的URI路径,及和控制器的映射关系
8 /metrics/{requiredMetricName} GET 统计程序的各种度量信息,如内存用量和请求数
9 /httptrace GET 提供基本的http请求跟踪信息,如请求头等
10 /threaddump GET 获取线程活动的快照
11 /conditions GET 提供自动配置报告,记录哪些自动配置通过,哪些没有通过
12 /loggers/{name} GET 查看日志配置信息
13 /auditevents GET 查看系统发布的事件信息
14 /caches/{cache} GET/DELETE 查看系统的缓存管理器,另可根据缓存管理器名称查询;另DELETE操作可清除缓存
15 /scheduledtasks GET 查看系统发布的定时任务信息
16 /features GET 查看Springcloud全家桶组件信息
17 /refresh POST 重启应用程序,慎用
18 /shutdown POST 关闭应用程序,慎用
19 /dump GET 获取线程活动的快照
20 /metrics GET 报告各种应用程序度量信息,比如内存用量和HTTP请求计数
21 /trace GET 提供基本的HTTP请求跟踪信息(时间戳、HTTP头等)

(END)

Spring Boot 集成 Prometheus相关推荐

  1. Spring Boot集成Swagger导入YApi@无界编程

    接口APi开发现状 现在开发接口都要在类似YApi上写文档,这样方便不同的团队之间协作,同步更新接口,提高效率. 但是如果接口很多,你一个个手工在YApi去录入无疑效率很低. 如果是使用Spring ...

  2. spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例...

    本文介绍spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例 集成swagger--对于做前后端分离的项目,后端只需要提供接口访问,swagger提供了接口 ...

  3. 6.3 Spring Boot集成mongodb开发

    6.3 Spring Boot集成mongodb开发 本章我们通过SpringBoot集成mongodb,Java,Kotlin开发一个极简社区文章博客系统. 0 mongodb简介 Mongo 的主 ...

  4. springboot(十八):使用Spring Boot集成FastDFS

    上篇文章介绍了如何使用Spring Boot上传文件,这篇文章我们介绍如何使用Spring Boot将文件上传到分布式文件系统FastDFS中. 这个项目会在上一个项目的基础上进行构建. 1.pom包 ...

  5. Spring Boot集成Hazelcast实现集群与分布式内存缓存

    2019独角兽企业重金招聘Python工程师标准>>> Hazelcast是Hazelcast公司开源的一款分布式内存数据库产品,提供弹性可扩展.高性能的分布式内存计算.并通过提供诸 ...

  6. Spring Boot 集成 Swagger 生成 RESTful API 文档

    原文链接: Spring Boot 集成 Swagger 生成 RESTful API 文档 简介 Swagger 官网是这么描述它的:The Best APIs are Built with Swa ...

  7. 【Java进阶】Spring Boot集成ES

    目录 spring boot集成ES ElasticSearchConfig 测试文档的基本操作 Elasticsearch Clients 文档 spring boot集成ES Java REST ...

  8. Spring Boot集成Jasypt安全框架

    Jasypt安全框架提供了Spring的集成,主要是实现 PlaceholderConfigurerSupport类或者其子类. 在Sring 3.1之后,则推荐使用PropertySourcesPl ...

  9. Spring Boot集成JPA的Column注解命名字段无效的问题

    偶然发现,Spring Boot集成jpa编写实体类的时候,默认使用的命名策略是下划线分隔的字段命名. Spring Boot版本:1.5.4.release 数据表: id int, userNam ...

  10. Spring Boot集成CKFinder

    2019独角兽企业重金招聘Python工程师标准>>> Spring Boot集成CKFinder,实现浏览功能. 前言 上一篇记录了Spring Boot集成CKEditor,这里 ...

最新文章

  1. 驱动编程中的头文件与内核源码的关系
  2. 解决 supervisor中stop django进程不能真正的停止 问题
  3. php读取csv指定行_PHP快速读取CSV大文件指定行
  4. oracle日志查看问题?
  5. Centos 7安装与配置nagios监控(一)
  6. Windows下DNS ID欺骗的原理与实现
  7. jquery-ajax的同步与异步
  8. Oracle删除重复数据并且只留其中一条数据
  9. 召回率(Recall),精确率(Precision),交除并(Intersection-over-Union(IoU)
  10. JSONObject跟JSONArray来自不同的包会有不同的功能
  11. php 页面上显示xls文档,phpExcel输出xls文档显示乱码的解决方法
  12. 7-7 找出总分最高的学生 (15 分)
  13. Django+MySQLDB配置
  14. 软考程序员资源免费分享
  15. 几种主流数据库类型简介
  16. 学位论文写作规范之论文选题、开题报告、毕业论文
  17. ahu-557容斥原理
  18. PCB设计中如何进行统一批量检测并生成错误报告
  19. 手把手教你做一个网页
  20. 日薪行-大龄程序员的绝对优势与绝对劣势-反观01

热门文章

  1. RISC-V from scratch 4: 写 UART 驱动
  2. [UE4]Viewport中摄像机镜头缩放速度修改
  3. 天神娱乐实控人朱晔宣布离职:暂时的离开是为更好相见
  4. 电脑技巧:加装SSD固态硬盘注意事项,电脑速度超流畅
  5. 【转录调控网络】基因转录调控网络——转录因子调控网络分析
  6. 什么是Zigbee,主要有哪些特点,主要应用于哪些领域?
  7. wma转mp3怎么弄_mp3格式转换器如何把wma转mp3格式(教程)
  8. pytorch-tenor-细节
  9. html太极旋转css,前端CSS技巧之太极旋转图详解
  10. ansi编码_刨根究底字符编码之零——前言