【prometheus】Pushgateway安装和使用

目录

一、Pushgateway概述

1.1 Pushgateway简介

1.2 Pushgateway优点

1.3 pushgateway缺点

二、测试环境

三、安装测试

3.1 pushgateway安装

3.2 prometheus添加pushgateway

3.3 推送指定的数据格式到pushgateway

1.添加单条数据

2.添加复杂数据

3.SDk-prometheus-client使用



【Prometheus】概念和工作原理介绍_prometheus工作原理-CSDN博客

【Prometheus】k8s集群部署node-exporter_kubectl 安装 promethues node-exporter-CSDN博客

【prometheus】k8s集群部署prometheus server-CSDN博客

【prometheus】k8s集群部署Grafana安装和配置|Prometheus监控K8S

【prometheus】k8s集群部署AlertManager实现邮件和钉钉告警-CSDN博客

【prometheus】监控MySQL并实现可视化-CSDN博客

【prometheus】监控nginx-CSDN博客


一、Pushgateway概述


1.1 Pushgateway简介


Pushgateway是prometheus的一个组件,prometheus server默认是通过exporter主动获取数据(默认采取pull拉取数据),pushgateway则是通过被动方式推送数据到prometheus server,用户可以写一些自定义的监控脚本把需要监控的数据发送给pushgateway, 然后pushgateway再把数据发送给Prometheus server。

1.2 Pushgateway优点


  • Prometheus 默认采用定时pull 模式拉取targets数据,但是如果不在一个子网或者防火墙,prometheus就拉取不到targets数据,所以可以采用各个target往pushgateway上push数据,然后prometheus去pushgateway上定时pull数据
  • 在监控业务数据的时候,需要将不同数据汇总, 汇总之后的数据可以由pushgateway统一收集,然后由 Prometheus 统一拉取。

1.3 pushgateway缺点


  • Prometheus拉取状态只针对 pushgateway, 不能对每个节点都有效;
  • Pushgateway出现问题,整个采集到的数据都会出现问题
  • 监控下线,prometheus还会拉取到旧的监控数据,需要手动清理 pushgateway不要的数据。

二、测试环境


IP

主机名

192.168.2.139

master1

192.168.40.140

node1


三、安装测试


3.1 pushgateway安装


在node1节点操作

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

在浏览器访问192.168.2.140:9091出现如下ui界面

3.2 prometheus添加pushgateway


修改prometheus-cfg.yaml文件

- job_name: 'pushgateway'scrape_interval: 5sstatic_configs:- targets: ['192.168.2.140:9091']honor_labels: true

更新

kubectl apply -f prometheus-alertmanager-cfg.yaml
kubectl delete -f prometheus-alertmanager-deploy.yaml
kubectl apply  -f prometheus-alertmanager-deploy.yaml

登录prometheus http://192.168.2.139:30242/targets

3.3 推送指定的数据格式到pushgateway


1.添加单条数据

# 向 {job="test_job"} 添加单条数据:
echo " metric 3.6" | curl --data-binary @- http://192.168.2.140:9091/metrics/job/test_job

这里需要注意的是将<key & value>推送给pushgateway,curl --data-binary是将HTTP POST请求中的数据发送给HTTP服务器(pushgateway),和用户提交THML表单时浏览器的行为是一样的,HTTP POST请求中的数据为纯二进制数据。

prometheus web中查询

2.添加复杂数据

# 添加复杂数据
cat <<EOF | curl --data-binary @- http://192.168.2.140:9091/metrics/job/test_job/instance/test_instance
# TYPE node_memory_usage gauge
node_memory_usage 26
# TYPE memory_total gauge
node_memory_total 26000
EOF

这条连接主要分为三个部分:

  • http://192.168.2.143:9091/metrics/job/test_job:这是URL的主location,发送到哪个URL
  • job/test_job:表示是推送到哪个prometheus定义的job里面,上面我们定义的job_name为pushgateway
  • instance/test_instance:表示推送后显示的主机名称是什么,从上面pushgateway图也可以看出

如下是删除某个实例

# 删除某个组下某个实例的所有数据
curl -X DELETE http://192.168.2.140:9091/metrics/job/test_job/instance/test_instance# 删除某个组下的所有数据:
curl -X DELETE http://192.168.2.140:9091/metrics/job/test_job

3.SDk-prometheus-client使用


python安装 prometheus_client

使用 pip 工具可以非常方便地安装 prometheus_client:

测试脚本

# -*- coding: utf-8 -*-# 导入所需的库
from prometheus_client import CollectorRegistry, Gauge, push_to_gatewayif __name__ == '__main__':# 定义和注册指标registry = CollectorRegistry()labels = ['req_status', 'req_method', 'req_url']g_one = Gauge('requests_total', 'url请求次数', labels, registry=registry)g_two = Gauge('avg_response_time_seconds', '1分钟内的URL平均响应时间', labels, registry=registry)# 收集和记录指标数据g_one.labels('200','GET', '/test/url').set(1) #set设定值g_two.labels('200','GET', '/test/api/url/').set(10) #set设定值# 推送指标数据到Pushgatewaypush_to_gateway('http://192.168.2.140:9091', job='SampleURLMetrics', registry=registry)

在这个示例中,我们定义了一个名为requests_total的指标,记录了一个值为1和10的示例数据,并将指标数据推送到了名为example_job的job中。

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

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

相关文章

[Django 0-1] Core.Serializers 模块

Core.Serializers 模块 Django 序列化模块 模块结构 . ├── __init__.py ├── base.py ├── json.py ├── jsonl.py ├── python.py ├── pyyaml.py └── xml_serializer.py1 directory, 7 files自定义序列化器 通过继承django.core.serializers.base.Serial…

C语言 举例说明循环嵌套

今天 我们来说循环的嵌套 如果一个循环体内 又包含了另一个循环结构 我们称之为循环的嵌套 我们之前学的 While do-while for 都可以进行相互的嵌套 如下图 在 While 循环语句中再嵌套一个 While 循环语句 do-while 中嵌套 do-while for中嵌套 for 例如 我们做一个九九乘法…

Vue3 + Pinia + Vite5 仿抖音的项目

github地址 https://github.com/zyronon/douyin 这个项目其实在我收藏夹里好多天了&#xff0c;实在没得写了&#xff0c;简单写一下他。 官方介绍 douyin-vue 是一个模仿 抖音|TikTok 的移动端短视频项目。Vue 在移动端的"最佳实践"&#xff0c;媲美原生 App 丝…

Oracle Database 23ai 正式发布,超级巨兽(集关系型、向量、文档、图、缓存、分布式数据库一体的全能数据库)

Oracle23c改名为Oracle23ai&#xff0c;也意味着Oracle数据库正式从Cloud进入AI时代。Oracle23ai版本是一个超级巨兽&#xff0c;简单总结下&#xff1a; AI能力&#xff1a;内置向量数据库&#xff0c;内置ONNX模型数据处理&#xff0c;内置Text2SQL&#xff0c;内置的机器学习…

QT5之lambda+内存回收机制

使用lambda需要 配置c11 所以在点.pro文件里面配置添加如下 CONFIG c11 使用到qDebug 打印包含头文件 #include<QDebug> lambda 表达式使用 代替槽如下 #include "mainwidget.h" #include<QPushButton> #include<QDebug> mainWidget::mainWid…

js模块化:修改导入模块的内容,会有影响吗?

起因 element-ui的popper组件相关的层级&#xff0c;是使用popup-manager来统一管理的。 之前试图在自己的组件里导入并使用element-ui的popup-manager&#xff0c;但是层级老是和element-ui组件的层级冲突&#xff0c;看了下源码&#xff0c;竟意外发现&#xff0c;使用popu…

毕业设计参考-PyQt5-YOLOv8-鱼头鱼尾鱼长测量程序,OpenCV、Modbus通信、YOLO目标检测综合应用

“PyQt5-YOLOv8-鱼头鱼尾鱼长测量程序”是一个特定的软件程序&#xff0c;用于通过图像处理和目标检测技术来测量鱼类的长度。 视频效果&#xff1a; 【毕业设计】基于yolo算法与传统机器视觉的鱼头鱼尾识别_哔哩哔哩_bilibili 这个程序结合了多种技术&#xff1a; 1. OpenCV…

【Linux极简教程】常见实用命令不断更新中......

【Linux极简教程】常见实用命令不断更新中...... 常见问题1.Waiting for cache lock: Could not get lock /var/lib/dpkg/lock. It is held by process xxxx(dpkg) 常见问题 1.Waiting for cache lock: Could not get lock /var/lib/dpkg/lock. It is held by process xxxx(dp…

纳米体育数据足球数据接口:体彩数据包接口文档API示例②

纳米体育数据的数据接口通过JSON拉流方式获取200多个国家的体育赛事实时数据或历史数据的编程接口&#xff0c;无请求次数限制&#xff0c;可按需购买&#xff0c;接口稳定高效&#xff1b;覆盖项目包括足球、篮球、网球、电子竞技、奥运等专题、数据内容。 纳米数据API2.0版本…

【Docker】★★★

docker 的网络模式 ●host模式&#xff1a;使用 --nethost 指定 容器与宿主机共享网络命名空间、ip和端口 ●container模式&#xff1a;使用 --netcontainer:NAME_or_ID 指定 新建的容器共享已有容器的网络命名空间、ip和端口 ●none模式&#xff1a;使用 --netnone 指定 不进行…

05. 基于Verilog的呼吸灯程序设计

05_led_breath_v0 一个基于Verilog的呼吸灯程序示例&#xff0c;该程序通过PWM&#xff08;脉冲宽度调制&#xff09;技术来模拟呼吸灯的效果&#xff0c;逐渐变亮再逐渐变暗的LED灯&#xff0c;给人一种灯光在“呼吸”的感觉。 原理解释&#xff1a; PWM(脉冲宽度调制)&…

阿里实习生:面试阿里其实并没有那么难。

愉快的五一假期已经结束了, 又要投入到学习和工作当中了。 今天分享一位同学在阿里的Go后端实习面经详解, 希望对你有帮助。 Go里有哪些数据结构是并发安全的&#xff1f; 并发安全就是程序在并发的情况下执行的结果都是正确的&#xff1b; Go中数据类型分为两大类&#xff…

Python 连接 Oracle 数据库加入超时处理机制

Python 连接 Oracle 数据库加入超时处理机制 0. 引言1. 示例代码 0. 引言 Python 连接 Oracle 数据库&#xff0c;如何 SQL 语句有问题时还不加入超时机制&#xff0c;就会一致执行停止在那里。 1. 示例代码 1-1. 代码讲解 下面的代码展示了如何在 Python 中使用多线程来处…

24年最新抖音、视频号0成本挂机,单号每天收益上百,可无限挂

详情介绍 这次给大家带来5月份最新的短视频挂机项目&#xff0c;简单易上手&#xff0c;而且不需要任何投入&#xff0c;经过测试收益非常可观&#xff0c;软件完全免费&#xff0c;特别适合没有时间但是想做副业的家人们

ai生图什么软件好?推荐7个不错的AI绘画软件

ai生图什么软件好&#xff1f;推荐7个不错的AI绘画软件&#xff01;小编带你进入一个创意与科技交融的奇妙世界——AI绘画&#xff0c;让我们一同领略其中的魅力吧~ 一、爱制作AI 这款AI人工智能软件是一款多功能的工具平台&#xff0c;集合了AI问答、AI绘画和AI智能写作等功能…

在离线环境中将运行 Oracle DB 12c 的 CentOS 7.5 原地升级并迁移至 RHEL 7.9

《OpenShift / RHEL / DevSecOps 汇总目录》 说明 本文只是说明如何在 CentOS 7.5 上准备 Oracle DB 12c 验证环境&#xff0c;而将该环境升级并迁移至 RHEL 7.9 的操作过程请参见&#xff1a;《在离线环境中将 CentOS 7.5 原地升级并迁移至 RHEL 7.9》一文。 另外&#xff…

我希望未来10年,人工智能可以帮我解决这4件小事

生活在一线大城市的我&#xff0c;现在几乎整天被大数据、人工智能、机器学习、智慧生活的词汇环绕立体包围着&#xff0c;让我时刻感觉到&#xff0c;再过10年&#xff0c;我们五一假期真的可以摆脱现在擦肩接踵的旅游盛况了。但我其实要求倒是没这么高&#xff0c;我真心希望…

生产者与消费者 PV操作 与 阻塞队列

文章目录 普通方式 wait 与 notifyAll消费者生产者桌子测试类运行结果 阻塞队列Cook生产者Customer消费者测试类 普通方式 wait 与 notifyAll 消费者 package abc;public class Customer extends Thread{Overridepublic void run() {while (true) {synchronized (Desk.lock) {…

音频文件转文字怎么操作?3个方法手把手教你

音频文件转文字怎么操作&#xff1f;音频文件转文字&#xff0c;即将音频中的语音内容转换为可编辑和搜索的文本格式&#xff0c;是一项在多个场景中都非常实用的技术。无论是在会议记录、采访整理、学习笔记&#xff0c;还是视频字幕制作等场景中&#xff0c;音频转文字技术都…

吴恩达机器学习笔记:第 8 周-14降维(Dimensionality Reduction) 14.6-14.7

目录 第 8 周 14、 降维(Dimensionality Reduction)14.6 重建的压缩表示14.7 主成分分析法的应用建议 第 8 周 14、 降维(Dimensionality Reduction) 14.6 重建的压缩表示 在以前的视频中&#xff0c;我谈论 PCA 作为压缩算法。在那里你可能需要把 1000 维的数据压缩100 维特…