Prometheus Pushgateway 协议上报观测云最佳实践

Pushgateway 介绍

Pushgateway 是 Prometheus 生态系统中的一个组件,主要用于解决 Prometheus 默认的 pull(拉取)模式在某些情况下无法获取数据的问题,如监控源位于防火墙之后,Prometheus 无法穿透防火墙,目标服务没有可抓取监控数据的端点,即时任务执行时间端无法拉取监控指标等。在类似场景中,可通过部署 Pushgateway 的方式解决问题。当部署该组件后,监控源通过主动发送监控数据到 Pushgateway,再由 Prometheus 定时获取信息,实现资源的状态监控。

尽管 Pushgateway 在某些场景下非常有用,但它也有一些缺点需要考虑:

  • 单点故障风险:如果 Pushgateway 出现问题,整个采集到的数据都会受到影响。这意味着 Pushgateway 的稳定性和可用性对整个监控系统至关重要。
  • 数据清理问题:Pushgateway 可以持久化推送给它的所有监控数据,这意味着即使你的监控已经下线,Prometheus 还会拉取到旧的监控数据。这需要手动清理 Pushgateway 中不需要的数据,增加了维护的复杂性。
  • 监控状态不准确:Prometheus 拉取状态 up 只针对 Pushgateway,而不能对每个节点都有效。这可能导致监控数据的准确性受到影响。

使用 DataKit 替换 Pushgateway

DataKit 是观测云的统一采集器,利用 DataKit 上报 Pushgateway 协议的数据可以解决 Pushgateway 组件的缺点,实现高可用,监控状态一致的指标上报体验。

同 Prometheus 通过 pull 方式采集 Pushgateway 方式不同,观测云 DataKit 完全采用 push 方式上报指标,这样可以实现上报高可用,维护配置方便,监控状态和数据清理问题也不复存在。具体步骤如下:

安装 DataKit

  • 主机安装
  • k8s 安装

开启 Pushgateway 采集器

  • 主机环境
cd /usr/local/datakit/conf.d/pushgateway
cp pushgateway.conf.sample pushgateway.conf

pushgateway 配置修改如下:

[[inputs.pushgateway]]## Prefix for the internal routes of web endpoints. Defaults to empty.# 目标路由会变成 "/pushgateway/metrics"route_prefix = "/pushgateway"## Measurement name.## If measurement_name is not empty, using this as measurement set name.# measurement_name = "prom_pushgateway"## If job_as_measurement is true, use the job field for the measurement name.## The measurement_name configuration takes precedence.job_as_measurement = true## Keep Exist Metric Name.## Split metric name by '_', the first field after split as measurement set name, the rest as current metric name.## If the keep_exist_metric_name is true, keep the raw value for field names.keep_exist_metric_name = true

重启 DataKit

datakit service -R
  • k8s 环境
    # ..other..spec:containers:- name: datakitenv:- name: ENV_DEFAULT_ENABLED_INPUTSvalue: dk,cpu,container,pushgateway  # 添加 pushgateway,开启采集器- name: ENV_INPUT_PUSHGATEWAY_ROUTE_PREFIXvalue: /pushgateway               # 选填,指定 endpoints 路由前缀,目标路由会变成 "/pushgateway/metrics"- name: ENV_INPUT_PUSHGATEWAY_JOB_AS_MEASUREMENTvalue: "true"# ..other..

上报 Pushgateway 数据

使用如下命令上报 Pushgateway 协议数据。

i=100;
while true;
do## 定期使用 cURL 命令向 Datakit Pushgateway API 发送数据echo -e "# TYPE pushgateway_count counter\npushgateway_count{name=\"client\"} $i" | curl --data-binary @- http://127.0.0.1:9529/pushgateway/metrics/job/pushgateway;i=$((i+1));sleep 2;
done

实现效果

默认会上报至 pushgateway 指标集,通过观测云指标面板即可查询指标数据,也可通过 promQL 查询上报的指标数据。

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

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

相关文章

嵌入式C++、Raspberry Pi、LoRa和Wi-Fi技术、TensorFlow、ROS/ROS2:农业巡检数据导航机器人设计流程(代码示例)

随着科技的不断进步,农业领域也在逐渐向智能化发展。农业巡检机器人作为农业智能化的重要组成部分,能够自动化地监测农作物生长状况,提高农业管理的效率和精确度。本文将介绍一个基于Raspberry Pi和NVIDIA Jetson的农业巡检机器人&#xff0c…

3U/6U CPCI 系统核心模块,可应用于电力、轨道交通等领域

一、3U CPCI核心模块 提供CPCI系列产品,具有,高性能,应用扩展灵活,X86软件兼容,无风扇设计,宽工作温度范围,长嵌入式生命周期等特点,满足不同客户的需求。 产品特点 Intel Pentium …

微信Android一面凉经(2024)

微信Android一面凉经(2024) 笔者作为一名双非二本毕业7年老Android, 最近面试了不少公司, 目前已告一段落, 整理一下各家的面试问题, 打算陆续发布出来, 供有缘人参考。今天给大家带来的是《微信Android一面凉经(2024)》。 面试职位: 微信-客户端开发工程师-基础功能(广州) And…

力扣高频SQL 50 题(基础版)第四题

文章目录 力扣高频SQL 50 题(基础版)第四题584.寻找用户推荐人题目说明思路分析实现过程准备数据实现方式结果截图 力扣高频SQL 50 题(基础版)第四题 584.寻找用户推荐人 题目说明 表: Customer -------------------- | Colu…

【Code Complete2】Note-1 [启发式编程、管理复杂度、隐藏设计]

【Code Complete2】_Note-1 [启发式编程、管理复杂度、隐藏设计] 文章目录 【Code Complete2】_Note-1 [启发式编程、管理复杂度、隐藏设计]启发式编程管理复杂度隐藏设计--减少“改动所影响的代码量” 启发式编程 ​ **设计是一个启发的过程,充满了不确定性&#…

Golang | Leetcode Golang题解之第283题移动零

题目&#xff1a; 题解&#xff1a; func moveZeroes(nums []int) {left, right, n : 0, 0, len(nums)for right < n {if nums[right] ! 0 {nums[left], nums[right] nums[right], nums[left]left}right} }

Anaconda +Pytorch安装教程

Anaconda Pytorch安装教程 Anaconda安装 小土堆的安装教程&#xff1a;PyTorch深度学习快速入门教程&#xff08;绝对通俗易懂&#xff01;&#xff09;【小土堆】_哔哩哔哩_bilibili Free Download | Anaconda 这里自己选一个文件夹安装即可 第一个红框表示添加图标到开始菜…

pytorch-scheduler(调度器)

scheduler简介 scheduler(调度器)是一种用于调整优化算法中学习率的机制。学习率是控制模型参数更新幅度的关键超参数,而调度器根据预定的策略在训练过程中动态地调整学习率。 优化器负责根据损失函数的梯度更新模型的参数,而调度器则负责调整优化过程中使用的特定参数,通…

【C++笔试强训】day03

简写单词 思路 首先把第一个字符&#xff08;转大写&#xff09;加到答案t中。 遍历字符串s的同时&#xff0c;如果遇到了空格&#xff0c;就把空格后面的字符&#xff08;转大写&#xff09;加到t中。 代码 #include <bits/stdc.h>using namespace std;int main() {…

The conversion of the nvarchar value ‘10033121171441‘ overflowed an int column

The conversion of the nvarchar value ‘10033121171441‘ overflowed an int column 目录 The conversion of the nvarchar value ‘10033121171441‘ overflowed an int column 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎…

Linux冯诺依曼体系、操作系统、进程概念、进程状态、进程切换

个人主页&#xff1a;仍有未知等待探索-CSDN博客 专题分栏&#xff1a;Linux 目录 一、冯诺依曼体系结构 二、操作系统 1、概念 2、为什么要有操作系统&#xff1f; 3、理解操作系统 1.管理的本质 2.管理的概念 3.操作系统结构图 4.为什么要有操作系统&#xff1f; 三…

扁平化Tree组件Vue3过渡动画

本小节在巧用Vue3 composition api的计算属性实现扁平化tree连线 的基础上实现动画效果。 看下目前的实现&#xff0c;展开折叠比较生硬&#xff0c;正好我们用vue提供的过渡动画特性来优化用户体验。 模板应用动画 在for循环渲染外面应用过渡组标签&#xff0c;对每个节点的…

【全面介绍Pip换源】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

【QT】UDP

目录 核心API 示例&#xff1a;回显服务器 服务器端编写&#xff1a; 第一步&#xff1a;创建出socket对象 第二步&#xff1a; 连接信号槽 第三步&#xff1a;绑定端口号 第四步&#xff1a;编写信号槽所绑定方法 第五步&#xff1a;编写第四步中处理请求的方法 客户端…

Linxu系统:hwclock命令

1、命令详解&#xff1a; hwclock命令用于显示与设定硬件时钟。它是一种访问硬件时钟的工具&#xff0c;可以显示当前时间&#xff0c;将硬件时钟设置为指定的时间&#xff0c;将硬件时钟设置为系统时间&#xff0c;以及从硬件时钟设置系统时间。您还可以定期运行hwlock以插入或…

C++迈向精通:STL-iterator_traits迭代器类型萃取解析

STL-iterator_traits迭代器类型萃取解析 源码 在阅读STL源码的时候遇到了这样的一行代码&#xff1a; 通过ctags跳转到对应的定义区域&#xff1a; 下面还有两个特化版本&#xff1a; 根据英文释义&#xff0c;发现模板中需要传入的是一个迭代器类型&#xff0c;在上面找到源…

Platform Designer 自定义IP(用于纯RTL设计)

在开始菜单找到Quartus Prime工具&#xff0c;点击并打开。 点击Quartus菜单File——New&#xff1a; 选择Verilog HDL File&#xff0c;点击OK&#xff1a; 这是新建的.v文件如下&#xff1a; 在新建的.v文件中键入如下Verilog代码&#xff1a; module mux2x1( //模块的开头…

第二证券:特斯拉Robotaxi将于10月发布 煤炭高景气有望延续

煤炭高景气有望延续 2022年以来随着国内煤炭稳价政策逐步落地&#xff0c;动力煤价格逐步回归&#xff0c;特别自2023年下半年以来&#xff0c;国内动力煤价格坚持高位窄幅轰动。炼焦煤方面&#xff0c;2021年国内炼焦煤价格总体亦出现宽幅轰动走势&#xff0c;2022年以来国内…

kettle从入门到精通 第八十一课 ETL之kettle kettle中的json对象字段写入postgresql中的json字段正确姿势

1、上一节可讲解了如何将json数据写入pg数据库表中的json字段&#xff0c;虽然实现了效果&#xff0c;但若客户继续使用表输出步骤则仍然无法解决问题。 正确的的解决方式是设置数据库连接参数stringtypeunspecified 2、stringtypeunspecified 参数的作用&#xff1a; 当设置…

大模型将在医疗、教育领域发力,北京发布“人工智能 +”行动计划

IT之家 7 月 26 日消息&#xff0c;北京市发展和改革委员会、北京市经济和信息化局北京市科学技术委员会、中关村科技园区管理委员会今日发布了《北京市推动“人工智能 ”行动计划&#xff08;2024-2025 年&#xff09;》。 《行动计划》提出了发展目标&#xff1a;2025 年底&…