【运维监控】Prometheus+grafana监控spring boot 3运行情况

news/2024/9/16 21:14:51/ 标签: 运维, prometheus, grafana, 运维监控, spring boot, linux, 后端
  • 本示例通过spring boot自带的监控信息暴露出来,然后将数据收集到prometheus中,最后通过grafana的dashboard导入模板进行可视化。
  • 本示例分为四个部分,即prometheusgrafana部署、springboot示例和最后的集成。
  • 说明:本示例中的部署环境没有要求,即应用部署的机器根据实际情况而定,只要网络连通即可。

关于java应用的监控本系列有文章如下:
运维监控】influxdb 2.0+telegraf 监控tomcat 8.5运行情况
运维监控】influxdb 2.0+grafana 监控java 虚拟机以及方法耗时情况
运维监控】Prometheus+grafana监控tomcat运行情况
运维监控】Prometheus+grafana监控spring boot 3运行情况

prometheus_10">一、prometheus

参考:【运维监控】prometheus+node exporter+grafana 监控linux机器运行情况关于prometheus的部署。

grafana_12">二、grafana

参考:【运维监控】prometheus+node exporter+grafana 监控linux机器运行情况 关于grafana的部署。

三、创建java应用及配置

本处使用的是一个简单spring boot 3的应用,对外开启2个restful接口,同时引入prometheus的包。

1、pom.xml

仅列出引入的版本、必须的依赖和编译器(根据你自己的环境而定)。

<properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.0.0</version>
</parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><scope>provided</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>io.micrometer</groupId><artifactId>micrometer-registry-prometheus</artifactId><version>1.12.5</version></dependency>
</dependencies>

2、application.properties

仅列出和本示例有关的内容,其他忽略或默认。

management.endpoints.web.exposure.include=*
management.endpoint.prometheus.enabled=true

3、java 类

App.java

package com.win;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class App {//url/abc.jsonpublic static void main(String[] args) {SpringApplication.run(App.class,args);}
}

TestController.java

package com.win.test;import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;import java.sql.Date;
import java.text.SimpleDateFormat;@Slf4j
@RestController
@RequestMapping("/test")
@CrossOrigin
public class TestController {SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss-SSSS");// http://localhost:8080/test/example// http://localhost:8080/test/example?message=test@GetMapping("/example")public String completion(@RequestParam(value = "message", defaultValue = "讲个笑话") String message) {try {Thread.sleep(100);} catch (InterruptedException e) {throw new RuntimeException(e);}log.info("当前时间:{},方法名称:{}", dateFormat.format(new Date(System.currentTimeMillis())), new Object() {}.getClass().getEnclosingMethod().getName());return message;}// http://localhost:8080/test/example/test.json?message=test@GetMapping("/example/test.json")public String completion2(@RequestParam(value = "message", defaultValue = "讲个笑话") String message) {try {Thread.sleep(100);} catch (InterruptedException e) {throw new RuntimeException(e);}log.info("当前时间:{},方法名称:{}", dateFormat.format(new Date(System.currentTimeMillis())), new Object() {}.getClass().getEnclosingMethod().getName());return message;}
}

4、验证

启动应用,查看http://localhost:8080/actuator/prometheus链接是否可获取到相关监控的信息即可。出现如下图即表示完成。
在这里插入图片描述

grafanaprometheusspringboot_130">四、grafana集成prometheus监控springboot应用

prometheus_131">1、修改prometheus配置及重启

prometheus的配置文件(prometheus.yml)中添加如下配置部分

  - job_name: "springboot_node_3.105"metrics_path: "/actuator/prometheus"# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ["192.168.3.105:8080"]

重启prometheus后,并验证是否收集到监控信息。
查看Prometheus是否监控到运行的spring boot应用如下图。
在这里插入图片描述
查看prometheus是否收集到监控信息如下图(查询jvm_memory_max_bytes)
在这里插入图片描述

grafana_148">2、导入grafana模板

导入过程不再赘述,参考文章:【运维监控】Prometheus+grafana监控tomcat8.5 运行情况
本示例导入的模板ID是12900和21319。

3、验证

以上所涉及的服务均能正常的运行,以及验证都通过。
本示例为了体现有更多的数据可验证,以便能更清楚的看到效果,建议自己多做一点接口的调用查看运行情况,否则不能直观的体现出监控的结果。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上,就完成了grafana集成prometheus监控springboot应用。
至此,关于java应用的监控本系列有文章如下:
运维监控】influxdb 2.0+telegraf 监控tomcat 8.5运行情况
运维监控】influxdb 2.0+grafana 监控java 虚拟机以及方法耗时情况
运维监控】Prometheus+grafana监控tomcat运行情况
运维监控】Prometheus+grafana监控spring boot 3运行情况


http://www.ppmy.cn/news/1523546.html

相关文章

什么是内存溢出,golang是如何解决内存溢出的

什么是内存溢出&#xff1f; 内存溢出&#xff08;Memory Overflow&#xff09;是指程序在运行时超出了分配给它的内存限制&#xff0c;从而导致程序异常或崩溃的现象。通常&#xff0c;内存溢出是由于以下原因引起的&#xff1a; 内存泄漏&#xff1a;程序分配了内存但没有及…

C# 特性(Attributes)和反射(Reflection)

特性 在C#中&#xff0c;特性&#xff08;Attributes&#xff09;是一种向代码添加元数据的机制。这些元数据可以在编译时被编译器读取&#xff0c;或者在运行时通过反射&#xff08;Reflection&#xff09;被读取。特性提供了一种灵活的方式来添加注释信息&#xff0c;并且可…

ICLR2024: 大视觉语言模型中对象幻觉的分析和缓解

https://arxiv.org/pdf/2310.00754 https://github.com/YiyangZhou/LURE 背景 对象幻觉&#xff1a;生成包含图像中实际不存在的对象的描述 早期的工作试图通过跨不同模式执行细粒度对齐&#xff08;Biten et al.&#xff0c;2022&#xff09;或通过数据增强减少对象共现模…

汽车电子行业知识:关于域控制器

车载域控制器&#xff08;Vehicle Domain Controller, VDC&#xff09;是现代汽车电子架构中的关键组件&#xff0c;负责整合和管理多个电子控制单元&#xff08;ECU&#xff09;&#xff0c;以提高车辆的智能化和自动化水平。 1. 定义与功能 车载域控制器是一个集中式的计算…

GaussDB关键技术原理:高弹性(三)

书接上文GaussDB关键技术原理&#xff1a;高弹性&#xff08;二&#xff09;从优化器剪枝、执行器两方面对hashbucket进行了解读&#xff0c;本篇将从段页式技术方面继续介绍GaussDB高弹性技术。 3 段页式 3.1 段页式存储 根据前文的介绍&#xff0c;hashbucket需要对文…

旅行商问题 | Matlab基于混合粒子群算法GA-PSO的旅行商问题TSP

目录 效果一览基本介绍建模步骤程序设计参考资料 效果一览 基本介绍 混合粒子群算法GA-PSO是一种结合了遗传算法&#xff08;Genetic Algorithm, GA&#xff09;和粒子群优化算法&#xff08;Particle Swarm Optimization, PSO&#xff09;的优化算法。在解决旅行商问题&#…

云计算之云原生(下)

目录 接上文 二、消息队列Kafka 2.1 消息队列 Kafka&#xff1a;企业级大数据消息通道 2.2 系统架构 2.3 更稳定Kafka – 自研双引擎支持 2.4 更高性能Kafka – 秒级分区扩容 2.5 客户端报错及解决方案 三、云原生可观测体系 3.1 可观测性是系统稳定性保障的必要手段 …

求两圆相交交点模板

代码&#xff1a; Point getpoint(Circle b,LD x) { return { b.o.xb.r * cos(x),b.o.yb.r * sin(x) }; } void Circle_insection(Circle a,Circle b)//两圆交点 { LD h getlen(a.o,b.o); if (sign(h - a.r - b.r) > 0) return; if (sign(a.r - b.r - h)…

pywin32库的安装与配置:在Windows环境下控制Office应用

目录 引言 pywin32库的安装 安装Python 安装pywin32 配置环境以控制Office应用 了解pywin32与Office的交互方式 示例&#xff1a;使用pywin32控制Excel 步骤一&#xff1a;找到Excel的窗口句柄 步骤二&#xff1a;模拟打开Excel文件 步骤三&#xff1a;模拟关闭Excel…

2024社区版IDEA springboot日志输出颜色

IDEA版本&#xff1a;IntelliJ IDEA 2024.1.4 (Community Edition) 1、纯白色终端 2、彩色终端 3、配置过程 1、打开配置 2、选择启动类 3、点击修改选项&#xff0c;勾选虚拟机选项 4、在虚拟机选项框输入以下代码 -Dspring.output.ansi.enabledALWAYS5、应用确定&#xff0…

SpringBoot自动装配中的Condition机制

SpringBoot自动装配中的Condition机制 在Spring Boot中&#xff0c;自动装配&#xff08;Auto-Configuration&#xff09;是一个核心特性&#xff0c;它极大地简化了Spring应用的配置过程。自动装配通过条件判断&#xff08;Condition&#xff09;机制&#xff0c;根据应用的环…

【Arcgis基础教程】GIS数据制备,空间分析与高级建模实践应用

随着信息技术的发展,数字地球、智慧地球等新概念的出现&#xff0c;人们对信息的需求日益提高&#xff0c;使得地理信息系统(GIS)在国民经济各个行业中获得了日益广泛的应用。尤其在当今大数据时代&#xff0c;面对海量的空间数据及个性化的地理信息服务&#xff0c;如何高效地…

【银河麒麟高级服务器操作系统】虚拟机服务器执行systemctl提示timeout——分析全过程及处理建议

了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer.kylinos.cn 文档中心&#xff1a;https://documentkylinos.cn 现象描述 产品信息 产品名称 银河麒麟高级服务…

软件测试学习笔记丨Postman基础使用

本文转自测试人社区&#xff0c;原文链接&#xff1a;https://ceshiren.com/t/topic/32096 一、Postman基础使用 1.1 简介 Postman是一款流行的API测试工具和开发环境&#xff0c;旨在简化API开发过程、测试和文档编制。优势&#xff1a; Postman可以快速构建请求&#xff0c…

k8s集群部署:建立第一个微服务-注册中心Eureka

1、建立eureka server微服务,打开启动类,添加@EnableEurekaServer package cn.iysworld.eurekaservice;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netf…

Ubuntu中安装Nginx实现靶场的端口转发及其过程中错误的处理

1、安装Nginx需要的配置文件和库&#xff1a; sudo apt-get update sudo apt-get install -y g libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev 2、下载Nginx: wget -c https://nginx.org/download/nginx-1.18.0.tar.gz 3、解压Nginx: tar -zxvf nginx-1.18.0.ta…

深度学习笔记15_TensorFlow实现运动鞋品牌识别

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 一、我的环境 1.语言环境&#xff1a;Python 3.9 2.编译器&#xff1a;Pycharm 3.深度学习环境&#xff1a;TensorFlow 2.10.0 二、GPU设置…

vim 安装与配置教程(详细教程)

vim就是一个功能非常强大的文本编辑器&#xff0c;可以自己DIY的那种 &#xff0c;不但可以写代码 &#xff0c;还可编译 &#xff0c;可以让你手不离键盘的完成鼠标的所有操作。 如果想要了解vim的的发展历史和详细解说&#xff0c;可以自行上网搜索&#xff0c;我主要是记录一…

M,儿母,阿母

英文字母M&#xff0c;音义通汉语&#xff1a;儿母。近单音“母”、“木”。 母&#xff0c;阴阳五行之阴阳之阴的典型代表&#xff0c;代表生化能力或生化之道&#xff0c;为成就者&#xff0c;象征生命缘起&#xff0c;代表生化之源。母&#xff0c;阴性&#xff0c;雌性&am…

小红书笔记数单日突破1.3万,8月全网都被这只猴子刷屏了!

8月20日早上10点&#xff0c;《黑神话&#xff1a;悟空》正式发布后立刻席卷全网&#xff0c;众多玩家在游戏正式发布后火速进入游戏界面&#xff0c;甚至有多家公司宣布放假让员工玩《黑神话悟空》&#xff0c;不论是玩游戏的、还是不玩游戏的&#xff0c;都为之献上巨大的关注…