Prometheus+Grafana从0到1搭建jvm监控

news2024/11/13 3:37:56

目 录

      • 1. 准备工作
      • 2. 添加配置
        • 2.1 添加maven依赖
        • 2.2 application.properties增加配置
        • 2.3 新增配置类
        • 2.4 配置Prometheus
        • 2.5 配置Grafana
      • 3. 小结

在上一篇博客《 Prometheus+Mysqld_exporter+Grafana从0到1搭建MySQL的可视化监控》,我们完成了对数据库的可视化监控搭建,今天我们接着实现对 jvm 的监控,废话不多说,下面开整。

1. 准备工作

对于 jvm 的监控,我们不需要数据库数据采集工具 Mysqld_exporter ,因此如果只是搭建对 jvm 的监控,那这个东西是可以去掉。

  • 安装Prometheus
  • 安装Grafana
  • 使用 IDEA 新建一个 springboot 项目

由于在上一篇博客我已经安装了 Prometheus 和 Grafana ,这里就不再重复安装了,直接跳过。

至于 springboot 项目,我这里也直接使用一个我以前创建的项目《Springboot整合MybatisPlus》,服务能正常启动就行,不需要太复杂。

在这里插入图片描述

2. 添加配置

2.1 添加maven依赖

在 springboot 项目的 pom.xml 文件中,添加对普罗米修斯的依赖,将依赖包导入到项目中。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

在这里插入图片描述

2.2 application.properties增加配置

#搭建jvm监控的配置信息
spring.application.name=spring-boot-mybatis-plus
management.endpoints.web.exposure.include=*
management.metrics.tags.application=${spring.application.name}

在这里插入图片描述

2.3 新增配置类

新增一个配置类 JvmMonitorConfig.java ,如下所示

package com.yuhuofei.config;

import io.micrometer.core.instrument.MeterRegistry;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @Description jvm监控配置类
 * @ClassName JvmMonitorConfig
 * @Author yuhuofei
 * @Date 2023/4/16 18:12
 * @Version 1.0
 */
@Configuration
public class JvmMonitorConfig {

    @Value("${spring.application.name}")
    private String applicationName;

    @Bean
    public MeterRegistryCustomizer<MeterRegistry> getConfig() {
        return registry -> registry.config().commonTags("application", applicationName);
    }
}

在这里插入图片描述
配置类新增完成后,启动项目,我这个项目用的是 8081 端口,所以打开浏览器,输入 http://localhost:8081/actuator/prometheus ,如果看到下面的信息,就表示项目整合普罗米修斯监控 jvm 是成功的。

在这里插入图片描述
为了能以可视化的方式查看监控信息,下面我们还需要配置一下 Prometheus 和 Grafana。

2.4 配置Prometheus

在 prometheus.yml 文件中,加入以下的配置并保存

    #新增jvm监控任务  
  - job_name: "jvm"
    # 采集数据间隔时间
    scrape_interval: 5s
    # 采集时的超时时间
    scrape_timeout: 5s
    # 采集数据的路径
    metrics_path: '/actuator/prometheus'
    # 应用服务的地址
    static_configs:
      - targets: ['localhost:8081'] 

在这里插入图片描述
接着,双击 prometheus.exe ,启动普罗米修斯服务,在浏览器输入 http://localhost:9090/targets?search= ,如果看到下面这样的,表示添加成功。(如果一次没看到,可以多重启几次普罗米修斯服务,并刷新页面)

在这里插入图片描述

2.5 配置Grafana

双击 grafana.exe ,启动 Grafana 服务,然后在浏览器访问 http://localhost:3000,并登录进去,像之前一样,通过导入的方式配置 Dashboards ,可视化模板有很多,可以去 https://grafana.com/grafana/dashboards 选择

在这里插入图片描述
我这里直接搜 jvm ,然后点进去第一个,并将其地址复制出来 https://grafana.com/grafana/dashboards/4701-jvm-micrometer/ ,填入到导入栏进行导入。

在这里插入图片描述
配置一下数据来源,并确定完成,就能看到下面的图样了。

在这里插入图片描述
到这里,我们就完成了整个 jvm 监控的搭建。

3. 小结

搭建 jvm 的监控还是非常有必要的,有助于了解 jvm 的使用情况,及时做出调整,而且这个监控的指标也比较多,有堆、CPU、线程、非堆、元空间、Eden区、老年代、Survivor区等维度,用好监控工具,能给我们在排查问题时,省事不少。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/420623.html

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

相关文章

都说程序员就是吃青春饭,35岁就会被淘汰,我用自己的经历来告诉你事实

上个假期我回家了&#xff0c;遇到三姑六婆总会问我读研没读、工作怎么样、薪资多少等等问题&#xff0c;相信大家也都遇到过。我一般会用“在做程序员&#xff0c;写代码的这种话”来敷衍他们&#xff0c;但没想到他们懂得还挺多的&#xff0c;又搬出了一套关于程序员的理论&a…

当AI遇上元宇宙:智能科技如何助力虚拟世界的发展?

欢迎来到Hubbleverse &#x1f30d; 关注我们 关注宇宙新鲜事 &#x1f4cc; 预计阅读时长&#xff1a;10分钟 本文仅代表作者个人观点&#xff0c;不代表平台意见&#xff0c;不构成投资建议。 人工智能和元宇宙是21世纪最突出的技术之一。它们各自可以在许多方面提高人们…

MySQL、PostgreSQL、Oracle、SQL Server数据库触发器实现同步数据

数据库触发器是一种在数据库中设置的程序&#xff0c;当满足某些特定条件时&#xff0c;它会自动执行。触发器通常与数据表的操作&#xff08;例如插入、更新和删除&#xff09;相关联&#xff0c;它们可以帮助保证数据的完整性和一致性。在本篇博客中&#xff0c;我将介绍各种…

对SQL注入进行的一些总结

简介 SQL注入作为一种攻击方式最早可以追溯到20世纪90年代中期&#xff0c;当时Web应用程序开始流行并广泛使用数据库作为其后端数据存储。最早的SQL注入攻击是通过简单地在Web表单输入框中输入SQL代码来实现的&#xff0c;攻击者可以通过修改输入参数来篡改数据库查询的行为&a…

Pytorch 容器 - 2. Module的属性访问 modules(), children(), parameters(), buffers()等

目录 1. modules() 和 named_modules() 2. children() 和 named_children() 3. parameters() 和 named_parameters() 4. buffers() 和 named_buffers() Module类内置了很多函数&#xff0c;其中本文主要介绍常用的属性访问函数&#xff0c;包括&#xff1a; modules(), nam…

Spring事务源码-EnableTransactionManagement实现解析

Transactional注解 Transactional是spring中声明式事务管理的注解配置方式。Transactional注解可以帮助我们标注事务开启、提交、者回滚、事务传播、事务隔离、超时时间等操作。 而EnableTransactionManagement是开启Spring 事务的入口。 EnableTransactionManagement 标注启…

什么是数字人?数字人可以应用在哪些行业?

数字人指的是由计算机技术、人工智能技术和大数据技术等多种技术手段构建的一种虚拟的人类形态。数字人通常具备丰富的信息处理能力、模拟能力和学习能力&#xff0c;可以根据人们的需求进行智能化定制服务。 数字人 在很多行业领域&#xff0c;数字人都被广泛应用&#xff0…

【并发编程】ConcurrentHashMap源码分析(一)

ConcurrentHashMap源码分析CHM的使用CHM的存储结构和实现CHM源码put源码分析initTable 初始化tabletreeifyBin()和tryPresize()transfer 扩容和数据迁移高低位的迁移ConcurrentHashMap是一个高性能的&#xff0c;线程安全的HashMapHashTable线程安全&#xff0c;直接在get,put方…

spring security 的AuthenticationSuccessHandler 没有调用 ,无法生效

今天想不明白&#xff0c;我控制层写了一个登录的接口。结果验证成功了&#xff0c;我发现AuthenticationSuccessHandler 没有调用 &#xff0c;而且也不生效啊&#xff0c;最后研究终于发现是因为我们需要配置登录的url 这个url 我们访问&#xff0c;中间的什么控制器什么的框…

Win10怎么取消开机密码?这样做就可以!

集美们&#xff0c;我每次开电脑都要输入密码&#xff0c;感觉太麻烦了&#xff0c;想把开机密码取消掉&#xff0c;应该怎么做呀&#xff1f;感谢回答&#xff01;】 在Windows 10操作系统中&#xff0c;用户可以设置开机密码来保护计算机的安全性。然而&#xff0c;有时候用…

【CSS】使用绝对定位 / 浮动解决外边距塌陷问题 ( 为父容器 / 子元素设置内边距 / 边框 | 为子元素设置浮动 | 为子元素设置绝对定位 )

文章目录一、外边距塌陷描述1、没有塌陷的情况2、外边距塌陷情况二、传统方法解决外边距塌陷 - 为父容器 / 子元素设置内边距 / 边框三、使用浮动解决外边距塌陷 - 为子元素设置浮动四、使用绝对定位解决外边距塌陷 - 为子元素设置绝对定位一、外边距塌陷描述 在 标准流的父盒子…

AE开发20210601之绘制集合要素、绘制点、空间查询、属性查询、图形查询、选择集内容、符号化

AE开发之绘制集合要素绘制点步骤queryFilterQueryDefcursor查现有的SpatialRel可以有的空间关系有哪一些。Map类&#xff0c;对应的是FeatureSelection属性&#xff0c;SelectionCount属性&#xff0c;空间查询属性查询图形查询选择集内容符号化multiparrcolorRampLineSymbol下…

a标签 链接 target=”_blank” 为什么要增加 rel=”noopener noreferrer”

在<a></a>中使用target"_blank" 那么会得到以下错误提示&#xff1a; Using target"_blank" without rel"noopener noreferrer" is a security risk: see https://mathiasbynens.github.io/rel-noopener [react/jsx-no-target-blank…

Golang流媒体实战之七:hls拉流服务源码阅读

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)&#xff1a;https://github.com/zq2599/blog_demos 本篇概览 本文是《Golang流媒体实战》系列的第七篇&#xff0c;继续学习一个重要且通用的知识点&#xff1a;hls拉流在《体验开源项目lal》一文中&#xff0…

两种方法实现杨辉三角(java实现)

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了 博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点!人生格言&#xff1a;当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔&#x1f9be;&am…

AI 作图绘画的软件和网址

软件分享 分享软件一&#xff1a;NovelAI NovelAI是一个用于ai写文章的工具&#xff0c;大家可以给它文章标题框架&#xff0c;让它生成文章。后来这款工具进行功能拓展&#xff0c;完成了ai绘画功能&#xff0c;它支持我们上传草图生成图片&#xff0c;也支持我们通过画面描…

计算机网络思维导图,快快收藏学习啦!

第一章&#xff08;概述&#xff09; P0 - 计算机网络<思维导图> 第二章&#xff08;物理层&#xff09; P1 - 计算机网络<思维导图> 便签中的内容&#xff1a; ①香农公式&#xff1a;CW*Log2(1S/N) (bit/s) C:极限传输速率 W:信道带宽(单位Hz) S:信道内所传…

graylog实现日志监控

graylog graylog是一个轻量级的日志管理工具,依托elasticsearch作为日志存储中间件,MongoDB作为元数据信息存储中间件.自带WEB-UI界面,LDAP整合各种日志类型.提供了日志收集、日志查询、监控告警等相关功能。提供了graylog sidecar通过sidecar模式可以很方便的收集目标主机、容…

UEFI Protocol

一、概述 二、Protocol的定义 1、Protocol是服务器端和客户端之间的一种约定&#xff0c;在软件编程上称为接口&#xff0c;服务器端和客户端通过这个约定信息的互通。 2、服务器端和客户端在UEFI中都是可执行的二进制文件。 3、为了实现这些二进制文件之间的互通&#xff0c;…

nginx反向代理_负载均衡的配置

说明 两台虚拟机&#xff1a; 88节点是自己的虚拟机 66节点是小组成员的虚拟机&#xff0c;我们暂且叫同学机 tomcat端口&#xff0c;分别为8081和8082 总结就是&#xff1a; 自己虚拟机上面安装nginx和tomcat8082 同学机上安装tomcat8081 一、开始安装nginx&#xff08;只安装…