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

news2024/11/25 12:59:49
  • 本示例通过spring boot自带的监控信息暴露出来,然后将数据收集到prometheus中,最后通过grafana的dashboard导入模板进行可视化。
  • 本示例分为四个部分,即prometheus、grafana部署、springboot示例和最后的集成。
  • 说明:本示例中的部署环境没有要求,即应用部署的机器根据实际情况而定,只要网络连通即可。

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

一、prometheus

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

二、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.json
    public 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链接是否可获取到相关监控的信息即可。出现如下图即表示完成。
在这里插入图片描述

四、grafana集成prometheus监控springboot应用

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)
在这里插入图片描述

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.coloradmin.cn/o/2123651.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ubuntu ifconfig只有lo

ubuntu当前状态&#xff1a; 1、ubuntu系统所用网络模式为桥接模式。 2、ubuntu能ping通主机。 3、Ubuntu中没有wired connected选项&#xff0c;无法设置网络。 解决方案&#xff1a; 1.在Ubuntu终端输入命令&#xff1a; sudo lshw -c Network 检查网络状况发现-network …

精密量测软件(仿KLA免费浏览器程序ProfilmOnline)

KLA在线软件分析图 软件仿KLA公司免费浏览器软件ProfilmOnline&#xff0c;软件地址ProfilmOnline - 用于3D轮廓仪和AFM的表面成像、分析和测量软件 可以直接从profilmonline上下载3D图加载对比分析&#xff0c;当前已完成的内容有 1、调平 2、尖峰去噪 3、能量密度图&…

PHP智驭未来悦享生活智慧小区物业管理小程序系统源码

智驭未来&#xff0c;悦享生活 —— 探索智慧小区物业管理小程序 一、引言&#xff1a;智慧生活的新篇章 在这个日新月异的时代&#xff0c;科技正以前所未有的速度改变着我们的生活。从智能家居到智慧城市&#xff0c;每一处都闪耀着智慧的光芒。而今天&#xff0c;我要带大家…

MacOS wine中文乱码问题

安装wine 1、brew update 执行失败&#xff0c;提示安装如下 2、git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow 3、git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow 3、brew update 4、brew in…

vue3+ts+vite搭建脚手架(一)根据菜单自动生成路由

自动生成路由 基础环境 vue 3.4 ts 5.5 vite 5.4 自动生成路由 只有一个基础的路由页面&#xff0c;根据菜单自动生成路由&#xff0c;不适用于所有的项目&#xff0c;可自行玩玩 1.文件目录结构 └── src/├── assets/ ├── layouts/ ├…

HarmonyOS学习(十)——网络编程

文章目录 1、通过HTTP请求网络2、Web组件2.1、加载本地网页2.2、加载在线网页2.3、网页缩放2.4、文本缩放2.5、web组件事件以及状态说明2.6、处理页面导航 1、通过HTTP请求网络 官方API文档地址&#xff1a;HTTP数据请求-Network Kit数据传输能力-Network Kit&#xff08;网络…

分类预测|基于雪消融优化BP神经网络的数据分类预测Matlab程序SAO-BP 多特征输入多类别输出 含基础程序

分类预测|基于雪消融优化BP神经网络的数据分类预测Matlab程序SAO-BP 多特征输入多类别输出 含基础程序 文章目录 一、基本原理二、实验结果三、核心代码四、代码获取五、总结 一、基本原理 SAO-BP模型结合了雪消融优化算法&#xff08;SAO&#xff09;和BP神经网络。以下是详细…

架空输电线路故障监测:可视精灵的导线全方位监测之道

集高科技与智能化于一身的“架空输电线路故障可视精灵”&#xff0c;以精准、高效、全面的监测能力&#xff0c;成为守护输电线路安全的得力助手&#xff0c;接下来&#xff0c;深圳鼎信智慧带您走近它&#xff1a; 技术概述 物联网&#xff08;IoT&#xff09;&#xff1a;通…

神卓互联NAS助手SPK套件安装与使用指南

目录 一、SPK套件简介 二、安装前准备 三、安装步骤 1. 下载SPK套件 2. 安装SPK套件 3. 登录套件 四、使用指南 1. 创建访问映射规则 2. 外网访问 一、SPK套件简介 神卓互联NAS助手SPK套件&#xff0c;是专为群晖NAS设备设计的一款软件扩展包。采用先进的WanGooeTunn…

SpringBoot2:请求处理原理分析-接口参数解析原理(argumentResolvers)

一、知识回顾 我们知道&#xff0c;接口的参数&#xff0c;一般都要配上注解来一起使用。 不同的参数注解&#xff0c;决定了传参的方式不同。 为什么会这样&#xff1f; 如果让你设计接口参数解析&#xff0c;你会怎么做&#xff1f; 首先&#xff0c;我们知道方法参数是形…

双指针(8)_单调性_四数之和

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 双指针(8)_单调性_四数之和 收录于专栏【经典算法练习】 本专栏旨在分享学习C的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 1. 题目…

QDY421F-16P-25液氨不锈钢液动紧急切断阀

一、产品概述 QDY421F-16P-25液氨不锈钢液动紧急切断阀&#xff0c;采用先进的液动驱动技术&#xff0c;结合高质量的不锈钢材质&#xff0c;专为满足液氨等腐蚀性介质的紧急切断需求而设计。该阀门的工作压力可达16MPa&#xff0c;适用于DN25&#xff08;即25毫米&#xff09;…

单向链表概述

文章目录 &#x1f34a;自我介绍&#x1f34a;单向链表概述数据域和指针域数据类型设计 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以&#xff1a;点赞关注评论收藏&#xff08;一键四连&#xff09;哦~ &#x1f34a;自我介绍 Hello,大家好&#xff0c;我是小珑也要…

高斯消元法

顾名思义就是我们初中所知的消元方程&#xff0c;用来解方程的&#xff0c;但是如果自己手动去实现的话&#xff0c;还是有一部分难度的&#xff0c;因此我们也会用到线代这门科目&#xff0c;因为这是实现计算自动化的关键步骤 现在这里放上高斯消元的板子&#xff08;可以用…

正点原子阿尔法ARM开发板-IMX6ULL(四)——汇编LED驱动实验-下

文章目录 一、驱动编写1.1 配置GPIO的电气属性1.2 配置GPIO的功能&#xff08;GDIR寄存器&#xff09;1.3 设置输出&#xff08;DR寄存器&#xff09;1.4 最终代码 二、编译程序2.1 编译程序2.2 链接文件2.3 格式转换成BIN文件2.4 反汇编 三、烧写bin到SD卡中并运行3.1 准备工作…

中介者模式mediator

学习笔记&#xff0c;原文链接 https://refactoringguru.cn/design-patterns/mediator 减少对象之间混乱无序的依赖关系。 该模式会限制对象之间的直接交互&#xff0c; 迫使它们通过一个中介者对象进行合作。

数据结构:树与二叉树(2)

1、线索二叉树 1.1线索二叉树的定义 &#xff08;1&#xff09;线索二叉树有啥用&#xff1f; 普通二叉树的节点包含左孩子和右孩子的信息&#xff0c;但并没有直接存储关于“直接前驱”和“直接后继”的信息&#xff0c;结点的前驱和后继只能在遍历过程中获得。 因此这里引…

Springboot中mybatis的使用

一.创建Springboot项目并加载依赖 1.利用IDEA创建SpringBoot项目&#xff0c;并勾选必须依赖&#xff0c;步骤如下&#xff08;IDEA版本为2024版&#xff09; 注意&#xff1a; 1.首先更换镜像源&#xff0c;否则加载配置环境比较慢&#xff0c;网上搜阿里的镜像源就行。 2…

关于在vue2中使用el-tree的记录

此文章会持续更新在使用el-tree过程中应用到的功能... 先看此效果&#xff1a; html&#xff1a; <el-tree :data"data" :props"defaultProps" node-click"handleNodeClick">//自定义节点内容<span slot-scope"{ data }"&g…

Leetcode面试经典150题-135.分发糖果

解法都在代码里&#xff0c;不懂就留言或者私信 阿里字节都考过 class Solution {/**对于每个孩子来说&#xff0c;我们试一下从左边开始它应该分几个糖果&#xff0c;然后看一下从右边开始它应该分几个糖果然后左右取最大值&#xff0c;每个位置求和就是我们要的答案 */publ…