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

news/2024/5/18 21:51:25 标签: jvm, prometheus, grafana

目 录

      • 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.niftyadmin.cn/n/230133.html

相关文章

三天吃透Redis八股文

Redis连环40问&#xff0c;绝对够全&#xff01; Redis是什么&#xff1f; Redis&#xff08;Remote Dictionary Server&#xff09;是一个使用 C 语言编写的&#xff0c;高性能非关系型的键值对数据库。与传统数据库不同的是&#xff0c;Redis 的数据是存在内存中的&#xf…

LeetCode:剑指 Offer 58 - II. 左旋转字符串

&#x1f34e;道阻且长&#xff0c;行则将至。&#x1f353; &#x1f33b;算法&#xff0c;不如说它是一种思考方式&#x1f340;算法专栏&#xff1a; &#x1f449;&#x1f3fb;123 一、&#x1f331;剑指 Offer 58 - II. 左旋转字符串 题目描述&#xff1a;字符串的左旋转…

测试(注意事项)

1.时间为同一天时&#xff0c;数据不准确 2.数据未关联eg&#xff1a;表单开始时间大于结束时间&#xff1b;总金额不能随着单价、数量进行改变 3.数据未做校验&#xff1a;当金额与付款金额不同时&#xff0c;表单也能提交&#xff1b;暂存提交时必填项为空也能提交表单 4.权限…

GitHub 上诞生了一个可视化低代码神器

作为开发者&#xff0c;你是否早已厌倦了日复一日的“增删改查”&#xff0c;每天都在重复造轮子&#xff0c;今天给大家推荐一款开源、靠谱、实用的低代码开发平台 -- ILLA Builder。 产品介绍 ILLA Builder 是 ILLA 的核心产品&#xff0c;是一款开源的低代码开发工具。通过…

【0基础学爬虫】爬虫基础之数据存储

大数据时代&#xff0c;各行各业对数据采集的需求日益增多&#xff0c;网络爬虫的运用也更为广泛&#xff0c;越来越多的人开始学习网络爬虫这项技术&#xff0c;K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章&#xff0c;为实现从易到难全方位覆盖&#xff0c;特设【0基础学…

数据结构与常量(Java)

目录 1.字面常量 2. 数据类型 3. 变量 3.1 变量概念 3.2 语法格式 补充&#xff1a;变量 int long short double和float char boolean byte 4.类型转换 类型提升小结 5. 字符串类型 1. int 转成 String 2. String 转成 int 1.字面常量 类似System.Out.p…

week17--素数-相关习题整理

整理了几道素数筛法相关的几道练习题 [蓝桥杯 2021 省 AB2] 完全平方数 题目描述 一个整数 aaa 是一个完全平方数&#xff0c;是指它是某一个整数的平方&#xff0c;即存在一个 整数 bbb&#xff0c;使得 ab2ab^{2}ab2 。 给定一个正整数 nnn&#xff0c;请找到最小的正整数…

Flutter(六)可滚动组件

目录1.可滚动组件简介Sliver布局模型ScrollableViewportSliver可滚动组件的通用配置2.SingleChildScrollView3.ListView默认构造函数ListView.builderListView.separated固定高度列表ListView 原理无限加载列表&#xff0c;分页添加Header4.滚动监听及控制ScrollController滚动…