Prometheus+grafana监控nacos和spring-boot服务(增加自定义指标)(七)

前面记录了项目中常用的各种中间件的指标采集器的用法及搭建方式 ,

由于所有组件写一篇幅过长,所以每个组件分一篇方便查看,前六篇链接如下

Prometheus+grafana环境搭建方法及流程两种方式(docker和源码包)(一)-CSDN博客

Prometheus+grafana环境搭建rabbitmq(docker+二进制两种方式安装)(二)-CSDN博客

Prometheus+grafana环境搭建mysql(docker+二进制两种方式安装)(三)-CSDN博客

Prometheus+grafana环境搭建redis(docker+二进制两种方式安装)(四)-CSDN博客

Prometheus+grafana环境搭建MongoDB(docker+二进制两种方式安装)(五)-CSDN博客

 Prometheus+grafana环境搭建Nginx(docker+二进制两种方式安装)(六)-CSDN博客

本次主要记录如何使用prometheus监控Java微服务和nacos,以及自己发布指标到promethus

1. 监控nacos

由于nacos注册中心,本身也是基于Java开发的所以这里就放在一起对比着进行配置,对应nacos的监控非常简单,Prometheus官网上并没有提供exporter。

nacos 官方文档

Nacos 监控手册 | Nacos

1.1 首先打开nacos的metrics接口

打开nacos 配置文件 vim application.properties

增加 nacos.prometheus.metrics.enabled=true

验证结果 访问192.168.3.111:8848/nacos/actuator/prometheus

 1.2 添加Prometheus监控
  - job_name: 'nacos-exporter'scrape_interval: 15smetrics_path: '/nacos/actuator/prometheus' ## 默认不写为metrics 对特殊的路径需要自己填写static_configs:- targets: ['192.168.3.111:8848']labels:instance: 111-nacos服务器

 重载配置 curl -X POST http://localhost:9090/-/reload

查看效果

1.3 配置grafana监控

导入模板参见Prometheus+grafana环境搭建方法及流程两种方式(docker和源码包)(一)-CSDN博客

找到喜欢的模板id,13221

Dashboards | Grafana Labs

查看效果访问 http://192.168.3.112:3000/ 

2.监控spring-boot

对spring-boot的监控主要依赖于actuator组件

2.1 spring-boot引入依赖

1.引入actuator依赖,版本跟随spring-boot-starter-parent版本

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
 2.2 暴漏prometheu端点

修改application.yml文件,暴漏actuator 端点,

简单配置management:endpoints:web:exposure:include: '*' ##actuator暴漏的端口 * 为所有端口,也可以按需开放进阶配置
management:endpoints:web:exposure:include: '*' ##actuator暴漏的端口base-path: /actuator ## 默认 为 /endpoint:shutdown:enabled: truehealth:show-details: alwaysmetrics:tags:application: ${spring.application.name}export:prometheus:enabled: true # 是否启用prometheusserver:port: 7005 #自定义actuator端口 默认为服务端口
2.3.启动服务测试
http://localhost:7005/actuator/prometheus

2.4 配置 Prometheus监控

追加配置 vim ../prometheus/prometheus.yml

  - job_name: 'springboot-exporter'scrape_interval: 15smetrics_path: '/actuator/prometheus'static_configs:- targets: ['192.168.3.112:7005']labels:instance: 112-spring-boot微服务

重载配置 curl -X POST http://localhost:9090/-/reload

查看结果 访问 192.168.3.112:9090

2.5 配置grafana监控

导入模板参见Prometheus+grafana环境搭建方法及流程两种方式(docker和源码包)(一)-CSDN博客

找到喜欢的模板id,11378

Dashboards | Grafana Labs

查看效果访问 http://192.168.3.112:3000/ 

 

3. spring-boot 注册自定义指标

3.1 引入依赖

 引入依赖

  <!--         将指标转换成prometheus可使用的格式--><dependency><groupId>io.micrometer</groupId><artifactId>micrometer-registry-prometheus</artifactId></dependency>

prometheus总共有四种数据类型,用于不同类型的数据

这里实现 Counter 类型,注册一个counter 当index方法发生调用是,count会记录调用次数

package com.legendyun.prometheus.controller;import io.micrometer.core.instrument.Counter;
import io.micrometer.core.instrument.MeterRegistry;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.PostConstruct;/*** @title: IndexController* @description: TODO* @auther: zhangjianyun* @date: 2024/3/11 17:13*/
@RestController
@RequestMapping("/v1")
public class IndexController {@AutowiredMeterRegistry registry;private Counter counter_core;private Counter counter_index;@PostConstructprivate void init(){counter_core = registry.counter("app_requests_method_core", "method", "IndexController.core","legend-label","legend12333333");counter_index = registry.counter("app_requests_method_index", "method", "IndexController.index","legend-label","legend4566666");}@RequestMapping(value = "/index")public Object index(){try{
//            counter_index.increment();registry.counter("app_requests_method_index", "method", "IndexController.index","legend-label","legend4566666").increment();// 同名的数据类型再次注册只会有一个} catch (Exception e) {return e;}return counter_index.count() + " index of springboot2-prometheus.";}@RequestMapping(value = "/core")public Object coreUrl(){try{
//            counter_core.increment();// 可以根据标签进行过滤registry.get("app_requests_method_core").counter().increment();} catch (Exception e) {return e;}return counter_core.count() + " coreUrl Monitor by Prometheus.";}}

完整代码和其他类型数据可以查看我的GitHub

GitHub - ObstinateCloud/prometheus-test: 读取Prometheus数据

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

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

相关文章

LeetCode - 边积分最高的节点

2374. 边积分最高的节点 这是一个有向图&#xff0c;且每个节点都只有一条出边&#xff0c;指向0的边有1&#xff0c;2&#xff0c;3&#xff0c;4 10&#xff0c; 指向7的有5&#xff0c;6 11. 我们只需要一次遍历就可以解决&#xff0c;先搞一张哈希表&#xff0c;k存节点…

解决VScode中matplotlib图像中文显示问题

一、更改配置文件 参考这个文件路径找到自己Python环境下的matplotlibrc文件并用记事本打开。 用ctrl F寻找下面的这两行并将前面的#删除&#xff0c;保存并退出。 font.family: sans-serif font.serif: DejaVu Serif, Bitstream Vera Serif, Computer Modern Roman, N…

Day31|贪心算法part01:理论基础、455.分发饼干、376. 摆动序列、53. 最大子序和

理论基础 记得贪心没有规律即可&#xff01;解不出来就看题解。 455. 分发饼干 先把学生和饼干都排序&#xff08;Arrays.sort只能升序&#xff09;&#xff0c;然后都从后往前遍历&#xff0c;把最大的饼干给需求最大的孩子&#xff08;贪心&#xff09; class Solution {…

计算机提示msvcp120.dll怎么解决,7种详细有效修复方法分享

在Windows操作系统的庞大舞台上&#xff0c;每一个组件都扮演着其独特的角色。在这些不为人知的角色中&#xff0c;有一个名为msvcp120.dll的文件&#xff0c;它是Visual C运行时库的一部分&#xff0c;对于确保许多应用程序的正常运行至关重要。本文将深入探讨msvcp120.dll文件…

【项目实战】——商品管理的制作完整代码

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

逐步学习Go-WaitGroup【连字都懒得写了,直接Show my Code】

package waitgroup_testimport ("fmt""runtime""sync""testing""time""github.com/stretchr/testify/assert" )// 这是对Go语标准库中sync包下的WaitGroup的描述。// WaitGroup用于等待一组并发的goroutine结结束…

非关系型数据库-----------探索 Redis高可用 、持久化、性能管理

目录 一、Redis 高可用 1.1什么是高可用 1.2Redis的高可用技术 二、 Redis 持久化 2.1持久化的功能 2.2Redis 提供两种方式进行持久化 三、Redis 持久化之----------RDB 3.1触发条件 3.1.1手动触发 3.1.2自动触发 3.1.3其他自动触发机制 3.2执行流程 3.3启动时加载…

在深度学习模型中引入先验

当面对复杂问题的时候&#xff0c;在深度学习模型提取特征的过程中完全抛弃知识是非常不明智的策略。虽然有很多研究者在深度网络处理数据之前&#xff0c;利用具有某种知识的模型驱动方法对数据进行预处理&#xff0c;但是这种方法没有进行实质性地改造深度网络&#xff0c;且…

ms-前端八股文

1、暂时性死区 是指在 JavaScript 中使用 let 或 const 声明变量时&#xff0c;变量在其声明之前不能被访问或使用的特性。 var可以变量提升&#xff08;在 JavaScript 中&#xff0c;变量声明提升是指在执行代码之前&#xff0c;变量声明会被提升到作用域的顶部。&#xff0…

scRAN-seq|加权最近邻分析(1)

概述 本文[1]介绍了Seurat 5.0.0中的加权最近邻&#xff08;WNN&#xff09;分析方法&#xff0c;这是一种用于整合和分析多模态单细胞数据的无监督框架。 简介 多模态分析作为单细胞基因组学的一个新兴领域&#xff0c;它通过同时测量多种数据类型来精确描绘细胞状态&#xff…

idea的后端环境配置

首先&#xff0c;在你刚打开idea时红色箭头所指的是你进行配置的地方&#xff0c;接下来我把具体步骤说一下 1&#xff0c;直接点击箭头所指的地方就会出现如图界面&#xff0c;然后点击Tomcat server,使其展开点击第一个 第二步取消勾选&#xff0c;第三步选择bin的上一级然后…

C++ | Leetcode C++题解之第10题正则表达式匹配

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isMatch(string s, string p) {int m s.size();int n p.size();auto matches [&](int i, int j) {if (i 0) {return false;}if (p[j - 1] .) {return true;}return s[i - 1] p[j - 1];};vector<…

启智社区昇腾算力快速使用 ATC

快速使用 ATC 本文将详细介绍如何借助启智社区昇腾算力 910/910B 进行模型转换&#xff0c;彻底告别开发板上模型转换各种报错的痛苦。 TODO&#xff1a; 完成数据集、模型存储教程 完成训练&模型转换教程 完成 ATC 其他功能教程 Fork 仓库 打开仓库点击右上角的派生按钮…

活动回顾丨掘金海外,探寻泛娱乐社交APP出海新风口

3月中旬,Flat Ads携手声网、XMP在广州成功举办“泛娱乐社交APP出海新风口——广州站”的主题线下沙龙活动。 多位大咖与泛娱乐社交APP赛道的行业伙伴汇聚一堂。本次活动邀请到Flat Ads 市场VP 王若策、声网娱乐视频产品负责人 陈际陶、XMP资深产品运营专家 屈俊星等多位行业大…

基于SpringBoot Vue员工管理系统

一、&#x1f4dd;功能介绍 基于SpringBoot Vue员工管理系统 角色&#xff1a;管理员、用户 管理员&#xff1a;管理员进入主页面&#xff0c;主要功能包括系统首页、个人中心、员工管理、部门管理、请假申请管理、出勤记录管理、奖惩信息管理、工资信息管理等进行操作。 员…

上位机图像处理和嵌入式模块部署(qmacvisual之plc通信)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 传统的非标自动化设备当中&#xff0c;plc发挥了很大的作用。这里面如何对这些电机和机构进行控制&#xff0c;大多数场景下用的就是plc设备了。目…

LeetCode 热题 100 | 贪心算法

目录 1 121. 买卖股票的最佳时机 2 55. 跳跃游戏 3 45. 跳跃游戏 II 4 763. 划分字母区间 菜鸟做题&#xff0c;语言是 C 1 121. 买卖股票的最佳时机 解题思路&#xff1a; 维护一个变量 max_pricemax_price 用于存储排在 i 天之后的股票最高价格第 i 天的最高利润 …

【前端面试3+1】08 css选择器、在前端页面展示后端传来的图片数组、请求方法的常见类型、【搜索插入位置】

一、css选择器有哪些&#xff1f; 1.元素选择器&#xff1a; 通过元素名称选择元素。 示例&#xff1a;p 选择所有段落元素。 2.类选择器&#xff1a; 通过类名选择元素。 示例&#xff1a;.btn 选择所有类名为 btn 的元素。 3.ID选择器&#xff1a; 通过id属性选择元素。 示例…

Copilot for Microsoft365使用心得

从去年3月份的发布到上周获得的体验名额&#xff0c;关注copilot已经超过了一年&#xff0c; 实际体验了一周觉得微软这款产品真的挺厉害的&#xff0c;至少在我认知里面确实可以减少很多的工作量&#xff0c;在此感谢陈老师公众号的体验卡的活动&#xff08;活动真实有效&…

Windows11下Docker使用记录(一)

Docker使用记录&#xff08;一&#xff09; 简单介绍Docker安装Docker 常用命令Docker 可视化Docker 使用GPU可视化rviz、gazebo 在进行ROS项目开发时&#xff0c;如果只有一台Windows电脑&#xff0c;我们可以考虑使用WSL或Docker来搭建ROS环境。在尝试了两种方式后&#xff0…