基于Promethus+Grafana搭建监控系统

news2024/9/29 11:34:06

简介

● 监测数据类型: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:     15s
  evaluation_interval: 15s
 
scrape_configs:
	# pull mode
  - job_name: game-pull
    static_configs:
      - targets: ['ip:port1']
        labels:
          instance: app-pull
	# push mode
  - job_name: game-push
    static_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.coloradmin.cn/o/150196.html

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

相关文章

IDEA 的Http接口调试工具

简介 这个工具我们可以完成绝大部分http请求&#xff0c;是一个不错的post-man替代工具 插件安装 在使用之前先确保 HTTP Client插件的安装&#xff0c;如果已经安装请无视这一步 > 安装后记得重启IDE编辑器确保插件可以正常使用 插件使用 描述&#xff1a; 所有HTTP请求…

2023年1月6日星期五-PPP/BPP相关学习-旧版重写

1. 独立均匀分布 matlab的rand指令可以帮助我们生成[0,1]的均匀分布的数据&#xff0c;这样&#xff0c;如果我们想要[a,b]的分布数据&#xff0c;只需要a(b-a)*rand就可以了。 [a,b] 均值μ&#xff0c;标准差 均值 标准差 matlab代码&#xff1a; %% 生成一个n行p列的矩…

Excel 中合并单元格的快捷键(ALT+H+M+M)

要在 excel 中合并单元格,首先选择要合并到一个单元格中的单元格,然后可以使用从ALT开始的快捷键,然后同时按H+M+M。 一旦我们使用快捷键执行该函数,它将弹出一条警告消息“合并单元格时,仅保留左上角的值,而放弃其他值“。如果我们继续,单元格将被合并,只保留一个值。…

Nature chemistry|机器学习可以克服自组装肽发现中的人类偏见

题目&#xff1a;Machine learning overcomes human bias in the discovery of self-assembling peptides 文献来源&#xff1a;Nature Chemistry | Volume 14 | December 2022 | 1427–1435 代码&#xff1a;https://doi.org/10.5281/zenodo.6564202&#xff08;非商业化证书…

Java安全:SecurityManager与AccessController

前言 什么是安全&#xff1f; 程序不能恶意破坏用户计算机的环境&#xff0c;比如特洛伊木马等可自我进行复制的恶意程序。程序不可获取主机及其所在网络的私密信息。程序的提供者和使用者的身份需要通过特殊验证。程序所涉及的数据在传输、持久化后都应是被加密的。程序的操…

Hudi的核心概念 —— 文件布局(File Layout)

文章目录文件布局&#xff08;File Layout&#xff09;Hudi 存储分为两个部分文件布局&#xff08;File Layout&#xff09; Hudi 将一个表映射为如下文件结构 Hudi 存储分为两个部分 &#xff08;1&#xff09;元数据&#xff1a;.hoodie 目录对应着表的元数据信息&#xff…

Vivado综合设置之-no_lc

本文详细讨论了当勾选或者不勾选-no_lc时的差异&#xff0c;也详细介绍了using O5 and O6以及using O6 output only的具体含义。 -no_lc表示NO LUT Combining&#xff0c;即无LUT整合&#xff0c;默认不勾选&#xff0c;即默认有LUT整合。LUT整合可以减少对LUT的使用量&#x…

架构设计---数据库的存储优化

前言&#xff1a; 互联网系统架构中&#xff0c;承受着最大出力压力&#xff0c;最难以被伸缩的&#xff0c;就是数据存储部分&#xff0c;原因主要有两方面&#xff0c;一方面&#xff0c;数据存储需要使用硬盘&#xff0c;而硬盘的处理速度要比其他几种计算资源都要慢&#…

6、Servlet——网络协议、HTTP协议、HTTP报文格式

目录 一、网络协议 1、网络协议三要素 2、层次结构 3、层次划分 二、HTTP协议 1、HTTP工作原理 2、HTTP协议特点 3、 三次握手 4、四次挥手 三、HTTP报文格式 1、请求报文 2、响应报文 一、网络协议 网络协议&#xff0c;简称协议 &#xff0c;网络协议是通信计算…

【Python百日进阶-数据分析】Day150 - plotly使用日期类型轴的时间序列 1

文章目录一、使用轴类型的时间序列date1.1 使用 plotly.express1.2 使用 graph_objects二、Dash 中的时间序列三、日期轴上的不同图表类型3.1 相对股票代码值的条形图3.2 多面区域图四、配置刻度标签五、将刻度标签移动到期间的中间六、用直方图总结时间序列数据七、显示期间数…

macOS 上安装和配置 Flutter 开发环境

本文基于此&#xff1a; Flutter中文网 一、安装和运行Flutter的系统环境要求 想要安装并运行 Flutter&#xff0c;你的开发环境需要最低满足以下要求&#xff1a; 操作系统:macOS磁盘空间:2.8 GB(不包括IDE/tools的磁盘空间)。工具:Flutter使用git进行安装和升级。我们建议安…

vue3中的写法以及,一些语法糖

vue3新增setup&#xff0c;属性执行比 created更早,同时setup中this不会指向实例&#xff09;这个方法在onBeforeMounted之前被调用。定义数据需要在数据前面加ref&#xff0c;ref在vue3中是将数据转换成响应式数据结构的一种,因为vue3中没有了data(){ },那么就没办法劫持数据做…

PDF拆分成多个页面怎么办?这三个方法让你实现将文件拆分成多页

PDF是我们常见的文件格式之一&#xff0c;在日常办公中&#xff0c;我们经常会将WORD、PPT、EXCEL等文档转换成PDF的格式后再进行传输&#xff0c;这样不仅传输速度快&#xff0c;格式也不会出现乱码的情况&#xff0c;但在一些特殊的场景下&#xff0c;我们也需要将一份完整的…

Allegro174版本新功能介绍之锁定菜单栏设置

Allegro174版本新功能介绍之锁定菜单栏设置 用Allegro设计的时候,经常因为切换了Symphony team design模式导致菜单栏变化,使用的时候又需要重新去调用一次,十分麻烦 但是在Allegro升级到了174的时候,有一个锁定菜单栏的功能 具体操作如下 选择Setup选择User Prefrences

代谢组学喜讯|百趣生物与金域医学达成代谢组学战略合作

2023年1月4日&#xff0c;上海百趣生物医学科技有限公司&#xff08;“百趣生物”&#xff09;与广州金域医学检验集团股份有限公司&#xff08;“金域医学”&#xff09;在广州举行战略合作签约仪式。双方将在代谢组学科研服务和临床转化方面进行深度合作&#xff0c;共同致力…

2022年餐饮连锁行业研究报告

第一章 行业概况 餐饮连锁是餐饮的一种发展模式&#xff0c;指餐饮企业通过连锁经营和特许经营的方式进行扩张。根据商务部发布的《特许经营管理办法》&#xff1a;连锁企业必须具备2店1年才有出售特许经营权的权利。餐饮连锁是餐饮业发展到一定程度时的一个必然的产物&#x…

深度学习入门之ResNet食物图像分类

前言 参加了华为一个小比赛第四届MindCon-爱&#xff08;AI&#xff09;美食–10类常见美食图片分类&#xff0c;本来想实践机器学习课程的知识&#xff0c;后来发现图像分类任务基本都是用神经网络做&#xff0c;之前在兴趣课上学过一点神经网络但不多&#xff0c;通过这样一…

Android UI界面刷新机制

一 前言 作为严重影响 Android 口碑问题之一的 UI 流畅性差的问题&#xff0c;首先在 Android 4.1 版本中得到了有效处理。其解决方法即在 4.1 版本推出的 Project Butter。Project Butter 对 Android Display系统进行了重构&#xff0c;引入三个核心元素&#xff1a;VSYNC、T…

nmake文件学习记录(一)看《跟我一起写Makefile》

1、陈皓《跟我一起写Makefile》 makefile 带来的好处就是——“自动化编译”&#xff0c;一旦写好&#xff0c;只需要一个make 命令&#xff0c;整个工程完全自动编译&#xff0c;极大的提高了软件开发的效率。 make 是一个命令工具&#xff0c;是一个解释makefile 中指令的命…

线程池(ThreadPoolExecutor)

文章目录一、线程池标准库提供的线程池ThreadPoolExecutor自定义线程池一、线程池 为什么要引入线程池? 这个原因我们需要追溯到线程&#xff0c;我们线程存在的意义在于&#xff0c;使用进程进行并发编程太重了&#xff0c;所以引入了线程&#xff0c;因为线程又称为 “轻量…