prometheus监控springboot应用简单使用介绍详解
作者:braveheart_07d6 发布时间:2023-02-24 03:49:00
对于springboot应用,需要以下几个步骤
springboot应用开启endpoint,添加actuator的以来和promethus的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
在yml文件或者properties文件中,加入以下配置:
management:
endpoints:
jmx:
exposure:
include: "*"
web:
exposure:
include: "*"
metrics:
export:
datadog:
application-key: ${spring.application.name}
这里需要注意是,*号是需要加双引号的。
以上两个步骤完毕后,剩下的就是要加registry了:
@Bean MeterRegistryCustomizer<MeterRegistry> configurer(
@Value("${spring.application.name}") String applicationName) {
return (registry) -> registry.
config().
commonTags("application", applicationName);
}
对于springboot的应用,到此基本完成了。接下来是启动promethus。
配置prometheus
首先要下在prometheus":Prometheus - Monitoring system & time series database"
在下载页面,选择何时的版本下载,推荐下载tar.gz包。下载好后,进行解压。在合适的路径下即可。
这里介绍下prometheus的目录和文件:
1、prometheus采用的都是yml文件的配置方式。
2、在根目录下,有个prometheus.yml配置文件,文件初始化的内容如下:
global:
scrape_interval: 15s # 这个是每次数据手机的频率
evaluation_interval: 15s # 评估告警规则的频率。
rule_files:
# - "first.rules"
# - "second.rules"
scrape_configs: # 通过这里的配置控制prometheus监控的资源
- job_name: prometheus # prometheus自身默认的
static_configs:
- targets: ['localhost:9090'] # 默认暴露的是9090端口服务
global是全局配置。具体见上面的注释说明。
3、添加我们的应用,对springboot进行监控
- job_name: 'spring-sample'
metrics_path: 'actuator/prometheus' # 这里我们springboot暴露出来的endpoint
scrape_interval: 5s # 信息收集时间是间隔5秒
static_configs:
- targets: ['localhost:8778'] # 这里是springboot暴露出来的地址和端口
4、这些配置完成后,可以启动prometheus,./prometheus --config.file=prometheus.yml,服务即可启动。具体访问产检官网。
配置grafana
下载grafana,直接启动即可。
1、启动命令参见官网:./grafana-server web
2、配置datasource,选择prometheus。这个里面有个很重要的注意点,我看网上很多人在转如何用prometheus监控springboot应用,估计自己没去实际搭建,在interval这个时间上,默认是数字,比如15,代表是15秒。在添加dashboard的时候,会发现监控图标左上角是个红点,报错:Invalid interval string, expecting a number followed by one of "Mwdhmsy" ,这个错的解决方案就是在这些时间间隔后面加个"s"。问题解决。
3、选择dashboard,import的里输入一个模板,可以去dashboards去找你对应的模板,我们这里选用jvm的4701模板,然后就能看到你的springboot的监控信息了。到此,整个搭建完成。
来源:https://www.jianshu.com/p/ed12dda024cc


猜你喜欢
- Java多线程下载网图案例此案例依赖——文件操作工具类(FileUtils)使用 apache 的commons-io包下的FileUtil
- 文档地址https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring
- 1. 数据构造索引2个文档到 hotel 索引中:PUT /hotel/_doc/1{ "title": &
- main.xml:<?xml version="1.0" encoding="utf-8"?&
- 相应的类库可在我的资源页面中找到,关于类成员的说明可通过对象浏览器查看函数说明Imports BitOperatorLibrary.Shif
- 1.定义指向非法的内存地址指针叫作野指针(Wild Pointer),也叫悬挂指针(Dangling Pointer),意为无法正常使用的指
- 前言RadioGroup是继承LinearLayout,只支持横向或者竖向两种布局。所以在某些情况,比如多行多列布局,RadioGroup就
- JVM管理两种类型的内存,堆和非堆。堆是给开发人员用的上面说的就是,是在JVM启动时创建;非堆是留给JVM自己用的,用来存放类的信息的。它和
- 简介单例指的是只能存在一个实例的类(在C#中,更准确的说法是在每个AppDomain之中只能存在一个实例的类,它是软件工程中使用最多的几种模
- 本文实例讲述了Android布局之LinearLayout自定义高亮背景的方法。分享给大家供大家参考,具体如下:首先创建linearlayo
- 之前写过3篇手势密码的demo,不过没有集成到真实的企业项目中,这几天正好领到一个手势密码项目,昨天刚好弄完,今天抽空整理下,目前还没有完善
- 问题描述问题原因出现该问题的原因是项目Project当中的jdk与电脑当中的jdk版本不一致造成的。解决方法1、查看本机的jdk版本:命令提
- 1、继承Thread类方式这种方式适用于执行特定任务,并且需要获取处理后的数据的场景。举例:一个用于累加数组内数据的和的线程。public
- MyBatis Example And与Or混合使用(条件1 and 条件2) or ( 条件3 and 条件4)  
- 1、线性表定义线性表是最基本、最简单、也是最常用的一种数据结构。线性表(linear list)是数据结构的一种,一个线性表是n个具有相同特
- 一. Window 分类应用 Window(ApplicationWindow: 对应一个 Acitivity)
- 本文以C#为例讲解木马程序的实现过程。要实现木马服务的程序,主要实现以下几个功能:后台的运行(隐藏技术),控制码的接收与注册表的修改,下面就
- Android 调用系统相机拍摄获取照片的两种方法实现实例在我们Android开发中经常需要做这个一个功能,调用系统相机拍照,然后获取拍摄的
- 概述冒泡排序是一种简单的排序算法。它重复地走访要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行
- 这一节我们将探索选择器(selectors)。选择器提供选择执行已经就绪的任务的能力,这使得多元 I/O 成为可能。就像在第一章中描述的那样