运维别卷系列 - 云原生监控平台 之 06.prometheus pushgateway 实践

news2024/12/26 11:33:36

文章目录

    • @[toc]
    • Pushgateway 简介
    • Pushgateway 部署
      • 创建 svc
      • 创建 deployment
    • Pushgateway 测试
      • 删除 Pushgateway 上对应 lable 的数据

Pushgateway 简介

WHEN TO USE THE PUSHGATEWAY

  • Pushgateway 是一种中介服务,允许您从无法抓取的作业中推送指标。
    • The Pushgateway is an intermediary service which allows you to push metrics from jobs which cannot be scraped. For details, see Pushing metrics.
    • Pushgateway 是一种中介服务,允许您从无法抓取的作业中推送指标。有关详细信息,请参阅推送指标。
  • 官方建议在某些有限的情况下使用 Pushgateway。盲目地使用 Pushgateway 而不是 Prometheus 通常的拉取模型进行常规指标收集时,存在几个陷阱:
    • 当通过单个 Pushgateway 监控多个实例时,Pushgateway 既是单点故障,又是潜在的瓶颈。
    • 将失去 Prometheus 通过 up 指标(每次抓取生成)的自动实例运行状况监控。
    • Pushgateway 永远不会清除推送给它的时间序列,并将永远将它们暴露给 Prometheus,除非通过 Pushgateway 的 API 手动删除这些时间序列。

所以,一般在 Prometheus 无法主动采集的情况下才会使用 Pushgateway,比如一些 shell 脚本,不存在客户端可以提供给 Prometheus 采集,就可以按照 Prometheus 的指标内容格式推送给 Pushgateway 来实现指标的采集,但是一定要对 Pushgateway 里面的历史数据做清理

Pushgateway 部署

同样也是在 k8s 内部署,并且开放 nodeport 端口给外部采集使用,部署的版本是:v1.8.0

创建 svc

---
apiVersion: v1
kind: Service
metadata:
  annotations:
  labels:
    app: pushgateway
  name: pushgateway-svc
  namespace: monitor
spec:
  type: NodePort
  ports:
  - name: gateway
    port: 9091
    protocol: TCP
    targetPort: 9091
    nodePort: 31091
  selector:
    app: pushgateway

创建 deployment

---
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
  labels:
    app: pushgateway
  name: pushgateway
  namespace: monitor
spec:
  replicas: 1
  selector:
    matchLabels:
      app: pushgateway
  template:
    metadata:
      annotations:
        prometheus.io/path: /metrics
        prometheus.io/port: "9091"
        prometheus.io/scrape: "true"
        prometheus.io/type: pushgateway
      labels:
        app: pushgateway
    spec:
      containers:
      - args:
        - "--web.listen-address=:9091"
        image: prom/pushgateway:v1.8.0
        livenessProbe:
          failureThreshold: 60
          initialDelaySeconds: 5
          periodSeconds: 10
          successThreshold: 1
          tcpSocket:
            port: gateway
          timeoutSeconds: 1
        name: pushgateway
        ports:
        - containerPort: 9091
          name: gateway
          protocol: TCP
        readinessProbe:
          failureThreshold: 60
          initialDelaySeconds: 5
          periodSeconds: 10
          successThreshold: 1
          tcpSocket:
            port: gateway
          timeoutSeconds: 1
      terminationGracePeriodSeconds: 0

因为之前在 Prometheus 里面做了针对 pod 的服务发现,所以可以直接从 Prometheus 的 targets 页面的 kubernetes-pod 里面找到 Pushgateway

在这里插入图片描述

Pushgateway 测试

http://<pushgateway ip>:<pushgateway prod>/metrics/job/<job name>/<label name>/<label value>

  • job name 可以自定义的,但是前面的 job 是固定的,不能修改,这个也是属于 label 之一的,后面的 <label name>/<label value> 也是自己自定义的 label,都是会存在 TSDB 里面可以查询的
  • 下面就是往 Pushgateway 里面推送一个指标名为 hello_world,值为 2024,label 有 {exported_job="test-pushgateway",instance="192.168.11.167",study="pushgateway"} 的数据
echo "hello_world 2024" | curl --data-binary @- http://192.168.11.167:31091/metrics/job/test-pushgateway/instance/192.168.11.167/study/pushgateway

从 pushgateway 看到,已经有数据存在了

在这里插入图片描述

从 Prometheus 查看指标信息,由于我的服务发现里面配置过 job 和 instance 这两个 label,导致进入 Prometheus 之后,从 Pushgateway 采集的这两个 label 变成了 exported_instance 和 exported_job

在这里插入图片描述

删除 Pushgateway 上对应 lable 的数据

先去生成一个不同 label 的数据

echo "hello_world_2024 2024" | curl --data-binary @- http://192.168.11.167:31091/metrics/job/test-pushgateway/instance/192.168.11.167/study/test_delete
echo "hello_world_2025 2025" | curl --data-binary @- http://192.168.11.167:31091/metrics/job/test-pushgateway/instance/192.168.11.167/study/test_delete
echo "hello_world_2025 2025" | curl --data-binary @- http://192.168.11.167:31091/metrics/job/test-pushgateway/instance/192.168.11.167/study/test_delete_2

可以看出来,pushgateway 是相同 label 为一组,一组里面可以有多个指标

在这里插入图片描述

  • Pushgateway 只能删除一个组里面的所有指标内容,没法针对某个组里面的指定指标删除,所以只能把组删了,重新写入才能实现指标名称的替换,或者新写一个组
  • 一个组有几个 label,就要把路径写完整,少一个 label 就不会删除这组数据
curl -XDELETE http://192.168.11.167:31091/metrics/job/test-pushgateway/instance/192.168.11.167/study/test_delete

在这里插入图片描述

  • 所以我们删除 study/test_delete 这个标签,不会影响另外两个组,即时剩下的两个组,都存在 job/test-pushgateway,我们执行的命令是 curl -XDELETE http://192.168.11.167:31091/metrics/job/test-pushgateway ,也不会把这两个组给删了,必须把剩余的 label 补齐了,才可以删除这个组
  • 删除了组之后,Prometheus 再次扫描没有这个指标,也将无法通过 PromQL 来查询到相关的指标了

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

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

相关文章

深入理解 npm、cnpm、npx、yarn 和 pnpm:JavaScript 包管理器的对比

在 JavaScript 的世界中&#xff0c;包管理器是一个重要的工具&#xff0c;它帮助我们管理、安装和升级项目的依赖。在这篇文章中&#xff0c;我们将深入探讨三个最流行的 JavaScript 包管理器&#xff1a;npm、yarn 和 pnpm。 npm&#xff08;Node Package Manager&#xff0…

未来IT行业的模块化、学习与跨界融合

随着技术的快速发展&#xff0c;IT行业已成为推动全球经济和社会发展的核心动力。从云计算和大数据到人工智能&#xff08;AI&#xff09;和物联网&#xff0c;这些创新技术正在彻底改变我们的生活方式和工作模式。而在AI领域&#xff0c;尤其是人工智能生成内容&#xff08;AI…

怎么识别数学公式?分享简单识别方法

怎么识别数学公式&#xff1f;在学术研究和日常工作中&#xff0c;数学公式无疑是一个常见且重要的元素。然而&#xff0c;手动输入复杂的数学公式往往既耗时又容易出错。幸运的是&#xff0c;随着科技的发展&#xff0c;现在我们有了一些高效的软件工具&#xff0c;可以帮助我…

奥维地图下载高清影像的两种方式!以及ArcGIS、QGIS、GlobalMapper、自编工具下载高清影像的方法推荐!

今天来介绍一下奥维互动地图是如何下载高清影像的&#xff0c;也不是多了不起的功能&#xff01;有朋友问&#xff0c;加上这个软件确实用的人多。 下载的高清数据在ArcGIS中打开的效果&#xff01; 开始介绍奥维之前我们也介绍一下我们之前介绍的几个方法&#xff0c;没有优劣…

IP代理网络协议介绍

在IP代理页面上&#xff0c;存在HTTP/HTTPS/Socks5三种协议。它们都是客户端与服务器之间交互的协议。 HTTP HTTP又称之为超文本传输协议&#xff0c;在因特网使用范围广泛。它是一种请求/响应模型&#xff0c;客户端向服务器发送请求&#xff0c;服务器解析请求后对客户端作出…

四信5G全连接工厂一站式解决方案上线,打造可持续发展工业未来

政策背景 2022年9月&#xff0c;为进一步加快“5G工业互联网”新技术新场景新模式向工业生产各领域各环节深度拓展&#xff0c;工信部印发《5G全连接工厂建设指南》&#xff0c;明确提出&#xff0c;推动万家企业开展5G全连接工厂建设&#xff0c;建成1000个分类分级、特色鲜明…

#Docker | Ngrok# 使用Ngrok和Docker进行内网穿透

一、注册 Ngrok官网注册&#xff0c;可以使用gmail或者outlook邮箱&#xff0c; 正常填写后你会收到一封电子邮件&#xff0c;点击邮件中链接即注册成功 二、获取密钥 登录&#xff0c;点击Your Authtoken&#xff0c;最上面copy左边就是你得密钥 三、使用内网穿透启动docker…

C++面向对象程序设计-北京大学-郭炜【课程笔记(九)】

C面向对象程序设计-北京大学-郭炜【课程笔记&#xff08;九&#xff09;】 1、输入输出流相关的类1.1、标准输出重定向1.2、标准输入重定向1.3、判断输入流结束1.3.1、强制类型转换符重载 1.4、istream类的成员函数1.4.1、cin.getline()函数 2、流操纵算子控制输出格式2.1、流操…

「51媒体」家居生活发布会,展览展会有哪些媒体邀约资源

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 家居生活类媒体包括多种类型&#xff0c;包括门户网站家居生活消费频道&#xff0c;专业的家居消费生活门户&#xff0c;以及行业媒体&#xff0c;平面媒体&#xff0c;KOL和意见领袖。下…

类人速度超快语音响应!OpenAI推出新旗舰模型GPT-4o,图文音频手机AI搞定

内容概述 虽然没有带来备受期待的人工智能&#xff08;AI&#xff09;搜索引擎&#xff0c;但OpenAI在主打产品AI模型上花了更多心思&#xff0c;拓展多模态功能&#xff0c;让用户可以免费玩转文字、图片和语音输入。 美东时间5月13日周一&#xff0c;OpenAI首席技术官Mira …

绝地求生:一穿四教学,绿色玩家也能轻松一穿四

PUBG一穿四速成班开课啦&#xff01;我这里只做PUBG干货分享&#xff0c;不搬运&#xff01;不搬运&#xff01;&#xff01;不搬运&#xff01;&#xff01;&#xff01; 有很多朋友是否在排位里kd不高&#xff0c;开局不是扎堆roll点就是一直搜东西然后一波就没&#xff1f;这…

《灵摆疗法》PDF完整版阅读

译者序 神奇丶快速又有效的灵摆疗法 2008年当我开始走上自己的灵性道路时就与灵摆结下了不解之缘当时我非常热衷于水晶疗愈所以疯狂地搜集各种不同的矿石学习如何将矿石 和水晶灵摆连结起来做能量疗愈后来在我开设马雅心能量课程时也会教大家如何使用水晶灵摆 …然而这两年来不…

09.Hadoop的安装

Hadoop的安装 1.拖拽安装包上传到/opt/software 2.解压文件到/opt/module [itwisenode2 software]$ tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/3查看文件 drwxr-xr-x. 2 itwise itwise 4096 9月 12 2019 bin drwxr-xr-x. 3 itwise itwise 4096 9月 12 2019 etc …

企业计算机服务器中了rmallox勒索病毒怎么解密,rmallox勒索病毒解密工具流程

在当今数字化时代&#xff0c;越来越多的企业依赖计算机服务器进行办公开展业务&#xff0c;计算机服务器犹如企业的心脏&#xff0c;能够为企业存储许多重要的核心信息&#xff0c;帮助企业有效的开展各项工作业务&#xff0c;提高企业的生产效果&#xff0c;但网络是一把双刃…

守护长者安全,平安养老险携手福海街道开展防灾减灾活动

在构建和谐社会、倡导人文关怀的当下&#xff0c;平安养老险以高度的社会责任感和深厚的人文情怀&#xff0c;持续关注老年人的健康与安全。在今年“5.12防灾减灾日”来临之际&#xff0c;平安养老险深圳分公司积极响应倡议&#xff0c;于5月10日携手福海街道举办了在福海街道举…

java项目之企业资产管理系统(springboot+vue+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的企业资产管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 管理员功能有个人中心&…

Flutter 3.22 发布,快来看看有什么更新吧?

Flutter 3.22 发布&#xff0c;快来看看有什么更新吧&#xff1f; 本次 Flutter 跟随 Google I/O 发布的版本是 3.22 &#xff0c;该版本主要还是带来了 Vulkan backend 和 Wasm Native 的落地&#xff0c;另外还有一个重点就是 Dart macros &#xff0c;但是它更多只是一个预…

Warning logs 2024-05-15

mysql数据库中文模糊查询时出现异常 Error querying database. Cause: java.sql.SQLException: Illegal mix of collations for operation like Select("select f.* from fundDetails f" " where (case when #{keyword} is not null then f.operateTime like c…

AXI GPIO IP核配置详解

AXI GPIO&#xff08;AXI General-Purpose Input/Output&#xff09;设计提供了一个通用的输入/输出接口&#xff0c;该接口连接到一个AXI4-Lite接口。AXI GPIO可以被配置为单通道或双通道设备&#xff0c;每个通道的位宽可以独立配置。 端口&#xff08;即GPIO引脚&#xff0…

鸿蒙ArkUI开发:常用布局【相对布局】

相对布局&#xff08;RelativeContainer&#xff09; 相对布局可以让子元素指定兄弟元素或父容器作为锚点&#xff0c;基于锚点做位置布局必须为RelativeContainer及其子元素设置ID&#xff0c;用于指定锚点信息。未设置ID的子元素不会显示RelativeContainer ID为“__containe…