基于Promethus+Grafana搭建监控系统

news/2024/12/27 23:50:34/

简介

● 监测数据类型:JVM数据、在线人数、消息时延等
● 接入Prometheus性能监测工具,暴露服务器性能监测数据
○ 模式:pull/push
● 接入Grafana可视化数据
在这里插入图片描述

搭建流程

准备环境

Java客户端配置

<!-- The client -->
<dependency><groupId>io.prometheus</groupId><artifactId>simpleclient</artifactId><version>${prometheus.version}</version>
</dependency>
<!-- Hotspot JVM metrics-->
<dependency><groupId>io.prometheus</groupId><artifactId>simpleclient_hotspot</artifactId><version>${prometheus.version}</version>
</dependency>
<!-- Exposition HTTPServer-->
<dependency><groupId>io.prometheus</groupId><artifactId>simpleclient_httpserver</artifactId><version>${prometheus.version}</version>
</dependency>
<!-- Pushgateway exposition-->
<dependency><groupId>io.prometheus</groupId><artifactId>simpleclient_pushgateway</artifactId><version>${prometheus.version}</version>
</dependency>
<!-- JMX Collector-->
<dependency><groupId>io.prometheus.jmx</groupId><artifactId>collector</artifactId><version>${prometheus.jmx.version}</version>
</dependency>

配置文件

在本文的背景下,需要配置俩个文件:
1.jmx 的yaml文件,主要用于管理JMX Exporter的数据,即需要暴露的JVM参数;
jmx 的yaml文件
其中hostPort,username,password可以选择先屏蔽掉

#hostPort: ${JMX_HOSTPORT}
#username:
#password:

2.prometheus服务器的运行配置文件,注意替换配置文件中的ip和port
● ip直接设置为本机IP, windows下ipconfig可以查询,Mac下ipconfig
● 在pull模式下,配置的port1为暴露的Http端口
● 在push模式下,配置的port2为push-gateway运行的端口

global:scrape_interval:     15sevaluation_interval: 15sscrape_configs:# pull mode- job_name: game-pullstatic_configs:- targets: ['ip:port1']labels:instance: app-pull# push mode- job_name: game-pushstatic_configs:- targets: ['ip:port2']labels:instance: app-push

部署 Prometheus

docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus
#指定prometheus配置文件运行
docker run -d -p 9090:9090 -v E://project//hotel//hotel-script//prometheus.yml:/etc/prometheus/prometheus.yml  prom/prometheus

部署 Prometheus-PushGateWay

Prometheus-PushGateWay

docker pull prom/pushgateway
docker run -d -p 9091:9091 prom/pushgateway

部署 Grafana

docker run -d -p 3000:3000 --name=grafana  grafana/grafana

启动后,访问:http://localhost:3000,默认用户名密码 admin/admin。

添加 Prometheus 数据源

Settings->Data sources -> Add data source -> Prometheus

● 在HTTP URL中填写本机IP+Prometheus服务器运行的port.
● HTTP Method选择Get方法

常见问题

1.Error reading Prometheus: An error occurred within the plugin
将添加数据源的ip设置为本机ip,当设置为localhost时由于容器环境运行的grafana,所以localhost在容器内部可能有自己的定义。

2.prometheus有数据 grafana无数据
grafana可以通过PromeSQL语句查询对应的参数

Prometheus | Grafana导入模板后发现没有数据排查步骤 - 墨天轮
prometheus+grafana监控jvm,grafana上没有数据_吃葡萄不吐西瓜皮~的博客-CSDN博客_grafana没有监控数据
在这里插入图片描述

3 Prometheus Histogram
prometheus的histogram是一个累计直方图,正常理解直方图的桶内时对应范围(a<x<b)的数据,prometheus的直方图的桶是累计的值,即当前这个桶的数据包含前一个桶,方便函数筛选,用户最后自己想要啥数据,自己用函数筛选;使用计时相关的api单位默认就是秒,自定义的数据类型就是自定义的数据类型对应的单位。
rate(histogram_showcase_metric_bucket[1m]) 查看每个 bucket 的每秒变化率来了解这些 bucket 是如何随时间变化;histogram_quantile() 可以计算出哪个 bucket 标签包含给定的分位数(例如第 95 个百分位数)。
在这里插入图片描述

histogram_quantile(0.95,rate(requests_latency_seconds_bucket[1m]))

一文搞懂 Prometheus 的直方图 - 腾讯云开发者社区-腾讯云
深入理解和使用 Prometheus 的 Histogram 指标类型 - 掘金
PromQL 直方图 跟踪请求的延迟或响应大小 99%的请求是在多少延迟下完成的?_富士康质检员张全蛋的博客-CSDN博客_promql 直方图

4.这俩行代码不在一个线程好像没法用?

new PerfCustomCollector().register();
HTTPServer server = new HTTPServer(1234);

5. windows install curl
假设您是从https://curl.haxx.se/download.html获得的,只需将其解压缩到您想要的任何位置。无需安装。如果您打算使用 SSL,则需要下载 OpenSSL DLL,可从 curl 的网站获得。
下载卷曲压缩包
提取内容(如果您下载了正确的版本,您应该找到 curl.exe)
将 curl.exe 放在您保存软件的文件夹中(例如 D:\software\curl\curl.exe)
从命令行运行 curl
a) 右击“我的电脑”图标
b) 选择属性
c) 点击“高级系统设置”链接
d) 转到选项卡 [高级] - “环境变量”按钮
e) 在系统变量下选择“路径”和“编辑”按钮
f) 添加一个分号,后跟放置 curl.exe 的路径(例如;D:\software\curl)
现在您可以通过键入以下命令从命令行运行:

curl www.google.com

参考文档

https://juejin.cn/post/6844904062157062151


http://www.ppmy.cn/news/10654.html

相关文章

模拟实现list和vector反向迭代器

学习这部分知识&#xff0c;需要你了解vector和list的正向迭代器知识以及容器适配器知识&#xff0c;可以阅读我写的另外三篇vector、list、容器适配器 知识的博客&#xff01;其中list知识内容尤其重要且难度要求很高&#xff01; 反向迭代器&#xff0c;顾名思义是与正向迭代…

【Python】基于高德地图API的坐标转换函数

【Python】基于高德地图API的坐标转换函数 API申请&#xff1a; lbs.amap.com/api/webservice/guide/api/convert/产品介绍 坐标转换是一类简单的HTTP接口&#xff0c;能够将用户输入的非高德坐标&#xff08;GPS坐标、mapbar坐标、baidu坐标&#xff09;转换成高德坐标。 …

[Linux]Linux调试器-gdb

&#x1f941;作者&#xff1a; 华丞臧. &#x1f4d5;​​​​专栏&#xff1a;【LINUX】 各位读者老爷如果觉得博主写的不错&#xff0c;请诸位多多支持(点赞收藏关注)。如果有错误的地方&#xff0c;欢迎在评论区指出。 推荐一款刷题网站 &#x1f449; LeetCode刷题网站 文…

智引未来,深兰科技机器人家族首次亮相TechG

12月31日&#xff0c;首届上海国际消费电子技术展(简称TechG)在南京国际博览中心圆满落下帷幕。作为全球消费电子技术领域的顶级行业盛会&#xff0c;本届展会共吸引了来自全球的300余家企业出席&#xff0c;共计逾2万名专业人士到场参观。阿里巴巴、蚂蚁科技、海尔、科大讯飞、…

基于Android的课堂评分系统

需求信息&#xff1a; 管理员 1&#xff1a;登录 2&#xff1a;学生教师课程管理&#xff0c;可以增加 教师 1&#xff1a;登录 2&#xff1a;选择要上课的学生&#xff0c;设置该课程成绩比例 3&#xff1a;出勤管理 请假-2&#xff0c;旷课-3&#xff0c;迟到早退-1 4&#x…

KMP算法--子串查找问题

目录 一.前言 二.KMP算法简介 三.关键概念1&#xff1a;字符串的前后缀 四. 关键概念2&#xff1a;字符串相等前后缀与最长相等前后缀长度 五.关键概念3&#xff1a;Next数组 六.Next数组在算法中的应用&#xff1a; 七.模式串Next数组的构建 先膜拜一下三位神仙&#x…

【dp】排列问题

文章目录零钱兑换组合总和IV零钱兑换 很明显&#xff0c;本题使用完全背包算法&#xff0c;求解的是组合数&#xff0c;直接使用完全背包算法即可&#xff0c;为什么是组合数呢&#xff1f; 如果题目说 amount5&#xff0c;coins[1,2,5] 有9种方法&#xff0c;那就是排列数&am…

天然气井远程监控解决方案

天然气井&#xff08;也称天然气计量井&#xff09;&#xff0c;是一种主要以气体计量为主的一种能源设备&#xff0c;也可以称为储气装置。 由于天然气在开采、运输、生产、使用过程中都会产生大量的热能&#xff0c;同时也会消耗大量的能量&#xff0c;因此在开采天然气过程中…