当前位置: 首页 > news >正文

Prometheus入门

Prometheus(普罗米修斯) 是一种 新型监控告警工具,Kubernetes 的流行带动了 Prometheus 的应用。

全文参考自 prometheus 学习笔记(1)-mac 单机版环境搭建[1]



Mac 上安装 Prometheus


brew install prometheus

安装路径在 /usr/local/Cellar/prometheus/2.20.1,

配置文件在 /usr/local/etc/prometheus.yml:

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: "prometheus"
    static_configs:
    - targets: ["localhost:9090"]

切换到安装目录的 bin 文件夹,

cd /usr/local/Cellar/prometheus/2.20.1/bin

执行:

./prometheus --config.file=/usr/local/etc/prometheus.yml

alt

此时可访问localhost:9090,有如下页面:

alt

Status中可以看到若干元信息.

alt



安装 grafana


brew install grafana

安装路径在 /usr/local/Cellar/grafana/7.1.5,

配置文件在 /usr/local/etc/grafana/grafana.ini,

可在此修改默认的端口等信息


启动:

grafana-server --config=/usr/local/etc/grafana/grafana.ini --homepath /usr/local/share/grafana --packaging=brew cfg:default.paths.logs=/usr/local/var/log/grafana cfg:default.paths.data=/usr/local/var/lib/grafana cfg:default.paths.plugins=/usr/local/var/lib/grafana/plugins

访问localhost:3000,有如下页面:

(默认的用户名/密码均为 admin,首次登陆必须修改密码)

alt

Grafana 是一个单纯的前端图表展示工具, 必须为其添加数据源,才能读取到数据进而进行展示, 参考下图:

alt

Grafana 支持非常多的数据源.

alt

选择Prometheus数据源, 指定 URL 地址, 然后保存即可

alt


安装 pushgateway


Prometheus 官网[2]搜索pushgateway, 下载 pushgateway-1.2.0.darwin-amd64.tar.gz[3]

本地解压,运行

./pushgateway

alt

此时, 在localhost:9091/页面Status这个 Tab 页,可见:

alt

pushgateway的作用:(图片来自网络)

alt

(图片来自煎鱼大佬的 Prometheus 快速入门[4])

alt

即 客户端(不管是通过代码, 还是直接终端敲命令行) 将数据 push 到网关(pushgateway), 然后 Prometheus 从网关 pull 数据



修改 Prometheus 的配置文件


vim /usr/local/etc/prometheus.yml

增加如下几行,重启 Prometheus,以让新的配置文件生效.

  - job_name: "push-metrics"
    static_configs:
    - targets: ["localhost:9091"]
    honor_labels: true

(Prometheus 提供了多种语言的 sdk, 最简单的方式是通过 shell)

推送一个指标:

echo "cui_metric 100" | curl --data-binary @- http://localhost:9091/metrics/job/dashen_blog

推送多个指标:

cat <<EOF | curl --data-binary @- http://localhost:9091/metrics/job/dashen_blog
blog_visit_total{blogid="12345",domain="dashen.tech",clientip="10.0.1.1"} 20
blog_visit_total{blogid="34567",domain="dashen.tech",clientip="10.0.1.2"} 30
blog_visit_total{blogid="56789",domain="dashen.tech",clientip="10.0.1.3"} 40
EOF

blog_visit_total 相当于指标名称,{ }中的内容相当于 tag,在查询时可根据 tag 进行过滤,最后的 20、30、40 相当于具体的指标值。

dashen_blog 是 job 名称, 可根据需要修改


此时http://localhost:9091上, 已能看到刚才 push 的数据:

alt

http://localhost:9090, Prometheus 里也能感知刚添加的数据

alt

Prometheus 本质上是一个时序数据库. curl 命令可以多执行几次, 相当于持续向时序数据库中写入数据.

alt


配置 Grafana


1.新建 Dashboard


alt

可在设置中进行相关修改

alt



2.添加图表

alt

(可以用 sum/max/min/avg 这类聚合函数统计指标)

alt
alt
alt



参考&进阶:

新型监控告警工具 prometheus(普罗米修斯)的入门使用[5]

Prometheus 快速入门[6]

Prometheus 四大度量指标的了解和应用[7]

使用 Prometheus 对 Go 程序进行指标采集[8]




Prometheus 推拉


Prometheus 是一个开源的监控系统,具有强大的查询语言和数据模型,用于收集和存储时间序列数据。Prometheus 通过 pull 模型从被监控的目标(如服务器、容器等)中获取数据,然后将其存储在本地数据库中。Prometheus 还提供了一种称为 pushgateway 的组件,用于允许被监控的目标通过 push 模型向 Prometheus 推送指标数据。

在 pull 模型中,Prometheus 通过 HTTP 协议从被监控的目标中拉取数据。被监控的目标必须运行一个称为 exporter 的组件,用于暴露指标数据的 HTTP 接口。Prometheus 定期通过该接口获取指标数据。

在 push 模型中,被监控的目标将指标数据推送到一个称为 pushgateway 的中间代理组件中。然后,Prometheus 定期从 pushgateway 中获取指标数据。推送数据的方式对于一些短暂存在的任务非常有用,比如批处理作业、临时性的任务等等,因为这些任务在 Prometheus 抓取数据之前就已经消失了,导致这些指标数据无法被 Prometheus 采集。




alt

5 分钟了解 Prometheus[9]

prometheus 架构[10]

Prometheus 核心组件[11]

[Prometheus 学习笔记(1)Prometheus 架构简介[12]]

参考资料

[1]

prometheus 学习笔记(1)-mac 单机版环境搭建: https://www.cnblogs.com/yjmyzz/p/how-to-install-prometheus-and-grafana.html

[2]

Prometheus 官网: https://prometheus.io/download/

[3]

pushgateway-1.2.0.darwin-amd64.tar.gz: https://github.com/prometheus/pushgateway/releases/download/v1.2.0/pushgateway-1.2.0.darwin-amd64.tar.gz

[4]

Prometheus 快速入门: https://eddycjy.com/posts/prometheus/2020-05-16-startup/

[5]

新型监控告警工具 prometheus(普罗米修斯)的入门使用: https://blog.csdn.net/lijiaocn/article/details/81865120

[6]

Prometheus 快速入门: https://eddycjy.com/posts/prometheus/2020-05-16-startup/

[7]

Prometheus 四大度量指标的了解和应用: https://eddycjy.com/posts/prometheus/2020-05-16-metrics/

[8]

使用 Prometheus 对 Go 程序进行指标采集: https://eddycjy.com/posts/prometheus/2020-05-16-pull/

[9]

5 分钟了解 Prometheus: https://blog.csdn.net/Dou_Hua_Hua/article/details/108535495

[10]

prometheus 架构: https://prometheus.kpingfan.com/01-introduction/01.prometheus%E6%9E%B6%E6%9E%84/

[11]

Prometheus 核心组件: https://yunlzheng.gitbook.io/prometheus-book/parti-prometheus-ji-chu/quickstart/prometheus-arch

[12]

[Prometheus 学习笔记(1)Prometheus 架构简介: https://www.cnblogs.com/linuxk/p/12017580.html

本文由 mdnice 多平台发布

相关文章:

Prometheus入门

Prometheus(普罗米修斯) 是一种 新型监控告警工具,Kubernetes 的流行带动了 Prometheus 的应用。 全文参考自 prometheus 学习笔记(1)-mac 单机版环境搭建[1] Mac 上安装 Prometheus brew install prometheus 安装路径在 /usr/local/Cellar/prometheus/2.20.1, 配置文件在 /usr…...

RISC-V云测平台:Compiling The Fedora Linux Kernel Natively on RISC-V

注释&#xff1a;编译Fedora&#xff0c;HS-2 64核RISC-V服务器比Ryzen5700x快两倍&#xff01; --- 以下是blog 正文 --- # Compiling The Fedora Linux Kernel Natively on RISC-V ## Fedora RISC-V Support There is ongoing work to Fedora to support RISC-V hardwar…...

Vim学习(三)—— Git Repo Gerrit

Git、Gerrit、Repo三者的概念及使用 三者各自作用&#xff1a; git&#xff1a;版本管理库&#xff0c;在git库中没有中心服务器的概念&#xff0c;真正的分布式。 repo&#xff1a;repo就是多个git库的管理工具。如果是多个git库同时管理&#xff0c;可以使用repo。当然使用…...

论坛项目之用户部分

注册接口 实现思路 1.特殊字段检查&#xff08;比如性别没有给出需要给出默认值&#xff09; 2.对比检查两次输入的密码是否一致&#xff0c;不一致报错 3.利用UUID生成随机‘盐’值&#xff0c;并使用密码进行MD5加密后与‘盐’进行拼接&#xff0c;生成加密后的密码 4.创建U…...

golang内存对齐

为什么要内存对齐&#xff1f; CPU访问内存时&#xff0c;以CPU的位数为单位进行访问。 如果访问未对齐的内存&#xff0c;处理器需要做两次内存访问&#xff0c;对齐的内存的访问可能仅需要一次&#xff0c;利用内存对齐后提升读取速度。 golang结构体内存对齐规则 在代码编译…...

【CheatSheet】Python、R、Julia数据科学编程极简入门

《Python、R、Julia数据科学编程极简入门》PDF版&#xff0c;是我和小伙伴一起整理的备忘清单&#xff0c;帮助大家10分钟快速入门数据科学编程。 另外&#xff0c;最近 TIOBE 公布了 2023 年 8 月的编程语言排行榜。 Julia 在本月榜单中实现历史性突破&#xff0c;成功跻身 …...

【golang】怎样判断一个变量的类型?

怎样判断一个变量的类型&#xff1f; package mainimport "fmt"var container []string{"zero", "one", "two"} func main() {container : map[int]string{0: "zero", 1: "one", 2: "two"}fmt.Printf…...

怎么学习AJAX相关技术? - 易智编译EaseEditing

学习AJAX&#xff08;Asynchronous JavaScript and XML&#xff09;相关技术可以让你实现网页的异步数据交互&#xff0c;提升用户体验。以下是一些学习AJAX技术的步骤和资源&#xff1a; HTML、CSS和JavaScript基础&#xff1a; 首先&#xff0c;确保你已经掌握了基本的HTML…...

JDK、JRE、JVM:揭秘Java的关键三者关系

文章目录 JDK&#xff1a;Java开发工具包JRE&#xff1a;Java运行环境JVM&#xff1a;Java虚拟机关系概述 案例示例&#xff1a;Hello World结语 在Java世界中&#xff0c;你可能经常听到JDK、JRE和JVM这几个概念&#xff0c;它们分别代表了Java开发工具包、Java运行环境和Java…...

【reactNative混合安卓开发~使用问题持续更】

reactNative混合安卓开发 reactNative开发移动端reactNative界面开发前端init.bat文件部分组件第三方组件解析1、定义theme主题shopify/restyle&#xff1b;菜单导航react-navigation/drawer、react-navigation/native&#xff1b; RN问题记录1、使用theme.js写的公共组件报错&…...

OCR的发明人是谁?

OCR的发明背景可以追溯到早期计算机科学和图像处理的研究。随着计算机技术的不断发展&#xff0c;人们开始探索如何将印刷体文字转换为机器可读的文本。 OCR&#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;的发明涉及多个人的贡献&#xff0c…...

笔记本电脑连上WiFi之后的IP为什么会变?如何让它不变固定住?

笔记本连上WiFi后获取IP地址的过程&#xff0c;通常是通过DHCP (动态主机配置协议) 来完成的。默认情况下&#xff0c;DHCP会根据连接设备和网络状态动态地分配IP地址&#xff0c;因此你会看到IP地址可能经常改变。 如果你希望电脑的IP地址固定&#xff0c;可以尝试设置静态IP…...

【数学建模】--因子分析模型

因子分析有斯皮尔曼在1904年首次提出&#xff0c;其在某种程度上可以被看成时主成分分析的推广和扩展。 因子分析法通过研究变量间的相关稀疏矩阵&#xff0c;把这些变量间错综复杂的关系归结成少数几个综合因子&#xff0c;由于归结出的因子个数少于原始变量的个数&#xff0c…...

RAM不够?CUBEIDE使用CCMRAM

RAM不够&#xff1f;使用CCMRAM 文章目录 RAM不够&#xff1f;使用CCMRAM打开连接LD文件&#xff1a;添加代码添加标识宏使用 打开连接LD文件&#xff1a; 添加代码 在SECTIONS段最后加上下面代码&#xff1a; _siccmram LOADADDR(.ccmram); /* CCM-RAM section * * IMPORTAN…...

npm ERR! code ERESOLVEnpm ERR! ERESOLVE unable to resolve dependency tree

拉取项目到本地 执行 npm install 报错 遇到这个问题首先确认的就是版本是不是太高了&#xff0c;降一下版本。或者通过yarn命令替代npm install命令安装&#xff0c;同理&#xff0c;启动也可以采用yarn dev 启动代替npm run dev 下面教大家用一个NVM工具&#xff0c;这个工…...

使用 prometheus client SDK 暴露指标

目录 1. 使用 prometheus client SDK 暴露指标1.1. How Go exposition works1.2. Adding your own metrics1.3. Other Go client features 2. Golang Application monitoring using Prometheus2.1. Metrics and Labels2.2. Metrics Types2.2.1. Counters:2.2.2. Gauges:2.2.3. …...

Jmeter之BeanShell取出参数进行四则运算,并判断是否正确

首先调用余额接口&#xff0c;使用正则提取响应中的余额字段&#xff0c;记作变量acctBal1做支付交易再次调用余额接口&#xff0c;使用正则提取响应中的余额字段&#xff0c;记作变量acctBal2最后在结果树中可以看到断言错误的信息&#xff0c;断言正确时没有提示以下是beansh…...

PYTHON 斗地主发牌 (简易版)

利用方法&#xff1a; 1. random.randint( ) 随机抽取数字 方法 2.random.sample((抽取范围的参数),(抽取的个数)) 返回的是列表 所以用[0]可以输出里面的元素 import random# 1. 创建牌 # 花色 color ["\u2660", "\u2663", "\u2665", "\…...

CSS文本裁剪

对于单行文本裁剪&#xff1a; span {text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block; } 对于多行文本裁剪&#xff1a; 在文本容器上定义 CSS Flexbox 属性 display: -webkit-box; 定义要显示的文本行数 -webkit-line-clamp: 4; 添加 -webkit-…...

ClickHouse常见的引擎和使用

1.日志引擎 日志引擎特点 1.数据存储在磁盘上 2.写入时将数据追加在文件末尾 3.不支持突变操作 4.不支持索引 5.非原子地写入数据 6.引擎不支持 ALTER UPDATE 和 ALTER DELETE 操作 建表语法示例 CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] ( …...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容&#xff1a;参考网站&#xff1a; PID算法控制 PID即&#xff1a;Proportional&#xff08;比例&#xff09;、Integral&#xff08;积分&…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...