【监控系统】Promethus监控SpringBoot微服务应用配置实战

news2024/11/26 12:52:58

我们本节要实现的是Java服务级监控用于对每个应用占用的内存、线程池的线程数量、restful调用数量和响应时间、JVM状态、GC信息等进行监控,并可将指标信息同步至Prometheus中集中展示和报警。

首先我们先了解下什么是actuator?

Spring Boot Actuator 模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP 跟踪等,帮助我们监控和管理Spring Boot 应用。

Spring Boot Actuator 做度量统计收集,使用Prometheus进行数据收集,Grafana进行数据展示,用于监控生成环境机器的性能指标和业务数据指标。一般,我们叫这样的操作为”埋点”。SpringBoot中的依赖spring-actuator中集成的度量统计API使用的框架是Micrometer,官网是Micrometer.io。在实践中发现了业务开发者滥用了Micrometer的度量类型Counter,导致无论什么情况下都只使用计数统计的功能。这篇文章就是基于Micrometer分析其他的度量类型API的作用和适用场景。

OK,如果要使用 SpringBoot Actuator提供的监控功能,首先我们要先在Spring Boot程序中加入依赖。我们这里采用Spring Boot2.X的版本。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

只要加上了这个依赖,SpringBoot 在运行时就会自动放开/actuator/health和/actuator/info这两个endpoint,我们就可以通过这两个 endpoint 查看当前 SpringBoot 运行的情况。

在这里插入图片描述

我这里用一个之前我做测试的SpringBoot项目。

在这里插入图片描述

浏览器访问 http://localhost:8080/actuator ,这里由于我是本地启动的8080的服务,大家可以根据你们自己的服务的IP地址➕端口进行访问。

在这里插入图片描述

默认只暴露 health 端点,如果想要看到更多,可以配置更多端点。application.yml或者application.properties中进行配置。

#暴露指定端点
management.endpoints.web.exposure.include=env,info,config,health

#暴露全部
management.endpoints.web.exposure.include=*

在这里插入图片描述

在这里插入图片描述

拼上health我们来看下服务的运行情况,http://localhost:8080/actuator/health

在这里插入图片描述

health 端点中常见的状态值及其含义:

  • “UP”: 应用程序健康状态良好,所有依赖项都处于可用状态。
  • “DOWN”: 应用程序健康状态不佳,至少有一个依赖项处于不可用状态。
  • “OUT_OF_SERVICE”: 应用程序无法提供服务,所有依赖项都处于离线状态。
  • “UNKNOWN”: 应用程序健康状态未知,无法确定依赖项的状态。

在这里插入图片描述

当我们有自研组件的不满足的情况下,需要自定义,参考实现 DataSourceHealthIndicator

/**
 * @author lixiang
 * @date 2023/7/17 17:52
 */
@Component
public class CustomHealthIndicator extends AbstractHealthIndicator {

    /**
     * 这个方法写检测的逻辑,测试中间件服务是否正常启动
     * @param builder
     * @throws Exception
     */
    @Override
    protected void doHealthCheck(Health.Builder builder) throws Exception {
        //builder.down().withDetail("custom","自定义中间件");
        builder.up().withDetail("custom","自定义中间件");
    }
}

在这里插入图片描述

OK。关于SpringBoot整合Actuator我们先介绍到这里,主要是我们用health端点去查看服务的运行情况,下面我们来将服务整合到Promethus上。

首先,加入依赖包。

<!--整合prometheus-->
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

重启服务,访问接口: http://localhost:8080/actuator,会发现prometheus的端点。

在这里插入图片描述

访问: http://localhost:8080/actuator/prometheus,我们会看到prometheus的格式数据。

在这里插入图片描述

然后将SpringBoot程序打包,上传到linux服务器启动。

mvn clean package

守护进程启动 nohup java -jar xxxx.jar &

在这里插入图片描述

prometheus整合配置,编辑文件 prometheus.yml

  - job_name: "order-service"
    scrape_interval: 15s
    scrape_timeout: 10s
    metrics_path: '/actuator/prometheus'
    static_configs:
      - targets: ['192.168.140.134:8080']

热更新配置 curl -X POST http://localhost:9090/-/reload

在这里插入图片描述
在这里插入图片描述

好啦,关于Promethus监控SpringBoot微服务应用配置实战,就到这里啦,记得三连➕关注哦!

在这里插入图片描述

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

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

相关文章

从头开始:自定义类型入门指南(结构体、位段、枚举、联合)

目录 文章目录 前言 结构体 结构体类型的声明 结构体的自引用 结构体变量的定义和初始化 结构体变量定义 初始化 结构体大小 结构体传参 位段 什么是位段 枚举 枚举的定义 枚举的优点 枚举的使用 联合&#xff08;共用体&#xff09; 联合类型的定义 联合大小的计算 总结 前…

基于Nginx的web集群项目

目录 nginx介绍代理集群 安装配置文件http 使用master和worker升级问题 基于域名的虚拟主机隐藏nginx的版本信息供别人下载的网站统计的信息的页面pv介绍 ngixn续nginx认证nginx的allow和denynginx限制并发数nginx限速限速的算法 nginx 限制请求数nginx 的 locationnginx 的 lo…

代码随想录算法训练营day4 | 24. 两两交换链表中的节点,19. 删除链表的倒数第 N 个结点,面试题 02.07. 链表相交,142. 环形链表 II

目录 24. 两两交换链表中的节点 19. 删除链表的倒数第 N 个结点 面试题 02.07. 链表相交 142. 环形链表 II 24. 两两交换链表中的节点 24. 两两交换链表中的节点 难度&#xff1a;medium 类型&#xff1a;链表 思路&#xff1a; 代码&#xff1a; class Solution {pub…

【目标检测】ROI Polling和ROI Align

ROI Pooling和ROI Align都是为了解决目标检测RPN任务后得到的一系列proposals大小不一致的问题。 ✨ 1 基本思想 &#x1f30a; 1.1 ROI Pooling 假设有一张特征图大小为8x8(原图大小sxs)&#xff0c;一个bbox坐标(0, 3, 7, 8)&#xff0c;我们目标是获得大小为2x2的特征图作…

PostgreSQL 考试认证指南:考前准备和考试概述

下面是关于考前准备和考试概述的指南&#xff1a; 考前准备&#xff1a; 1.确定考试内容&#xff1a;详细了解考试的内容范围和考试要求。可以查阅PostgreSQL官方网站或认证考试指南&#xff0c;以获取相关信息。 2.学习和实践&#xff1a;系统地学习和掌握与PostgreSQL相关…

Animboat Application Framework

SpringBoot的服务将部署在云端 管理云端数据和处理分布式的业务请求 本地基础服务将作为云端和终端中间媒介&#xff0c; 与局域网内其它dcc 插件或者app运行实例进行通信&#xff0c; 同时本地基础服务将负责本地数据的管理。 每个AppInstance都会有自己的FlaskSvr用于与Loc…

前端学习记录~2023.7.16~CSS杂记 Day8

前言一、正常布局流二、弹性盒子1、为什么是弹性盒子2、指定元素的布局为flexible3、flex 模型说明4、列还是行&#xff1f;5、换行6、flex-flow 缩写7、flex 项的动态尺寸8、flex&#xff1a;缩写与全写9、水平和垂直对齐&#xff08;1&#xff09;align-items 属性&#xff0…

[极客大挑战 2019]PHP(反序列化)

介绍说明&#xff0c;有备份的习惯&#xff0c;找常见的备份文件后缀名 使用dirsearch进行扫描 dirsearch -u http://f64378a5-a3e0-4dbb-83a3-990bb9e19901.node4.buuoj.cn:81/ -e php-e 指定网站语言 扫描出现&#xff0c;www.zip文件 查看index.php <?php include c…

C\C++ 使用socket判断ip是否能连通

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan 简介&#xff1a; 使用socket判断ip是否能联通 效果&#xff1a; 代码&#xff1a; #include <iostream> #include <cstdlib> #include <cstdio> #include &…

Openlayers实战:加载GPX文件

在OPenlayers的交互中,经常性的我们要加载一些数据,在这个实战中,演示的是加载GPX文件。 GPX(GPS eXchange Format,GPS交换格式)是一个XML格式,为应用软件设计的通用GPS数据格式。它可以用来描述路点、轨迹、路程。这个格式是免费的,可以在不需要付任何许可费用的前提…

字体反爬破解

1、通过 f12 查看网页相关信息① 搜索“python”相关岗位&#xff0c;想爬取下来作为分析&#xff0c;但是看到html源码为特殊字符&#xff0c;而不是页面上直观能看到的文字信息②点击对应的css样式查看css源码&#xff0c;通过源码解析字体加密过程 2、通过 DomainURI 获取到…

npm如何发包、测试以及删除发布包?

发包&#xff1a; 先在 npm 官网创个号 https://www.npmjs.com/ 2.创好了之后就先创建自己的文件夹&#xff0c;我用的vscode&#xff0c;也可以自己在命令行里面敲&#xff0c;比如我在F:// 前端学习-VUE项目 创建 my_firs_npm npm init -y创建之后&#xff0c;你能得到一个…

使用nginx部署前后端分离项目,处理跨域问题(共享cookie)

1.唠嗑 踩坑了&#xff0c;花费一天时间&#xff0c;开始对nginx配置不懂&#xff0c;老是弄错了配置文件&#xff0c;之前装的nginx ,cofnig有两个&#xff0c;nginx.config和nginx.config.def &#xff0c;开始配置我在nginx.config中配置的&#xff0c;后面一直在改def&…

scala学习手册

1. case class学习 样例类模式匹配 1.1 样例类&#xff08;case class&#xff09;适合用于不可变的数据。它是一种特殊的类&#xff0c;能够被优化以用于模式匹配。 case class MetaData(userId: String)case class Book(name: String) {def printBookName(): Unit {printl…

修改conda默认的环境安装位置

修改conda默认的环境安装位置

go语言终端交叉编译的事项windows编译其它平台软件包

交叉编译的终极版本[以此为准]&#xff1a; windows编译窗口目前分为cmd窗口&#xff0c;powershell窗口&#xff0c;这两个里面运行的命令不一样。 1.cmd窗口编译&#xff1b; 在windows10之前的系统版本上使用cmd命令行可以使用命令 CMD命令行中 在CMD命令行中编译&#…

C++-string类的模拟实现

本博客基于C官方文档当中给出的string类当中的主要功能实现&#xff0c;来作为参照&#xff0c;简单模拟实现 My-string 。 对于C当中的string类的介绍&#xff0c;在之前的几篇博客当中有说明&#xff0c;如有问题&#xff0c;请参照一下两个博客文章进行参考&#xff1a; (2…

CTF 1和0

一、 对于此类型数据&#xff0c;将其复制到excel中&#xff0c;将0所在位置背景色设置为白色&#xff0c;将1所在的位置设置为黑色 如图所示 二、添加定位符 对于定位符来说&#xff0c;同样可以在excel表中添加1&#xff0c;且1所在单元格为黑色表示定位符&#xff0c;如下…

07 - 线性表的类型定义 - 循环单向链表

前两节我们已经学习了单链表和双链表的概念以及具体的实现过程,其中有一个问题,值得注意,这样的链表有一个共同特征,就是尾节点指向 null,可以说是一次性的,像是糖葫芦。想象一下,如果此时,糖葫芦变成了手串,也就意味着头尾相连,形成闭环,这就是单向链表的另外一种形…

提高工作效率的文件管理软件实践方法

在现代社会中&#xff0c;高效的工作效率是保持竞争力的关键。随着信息技术的不断发展&#xff0c;文件管理软件成为提高工作效率的重要工具之一。 一个好的文件管理软件需要具备直观友好的用户界面。用户界面的清晰易操作让用户更便捷地找到所需文件。在软件开发的初期&#…