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

@Pushgateway自定义脚本推送数据

文章目录

  • Pushgateway 自定义脚本推送数据
    • 1. 目的
    • 2. 适用范围
    • 3. 前提条件
    • 4. 操作流程
      • 4.1 确定指标类型和格式
      • 4.2 编写推送脚本
        • 方法一:使用 curl 命令行推送
        • 方法二:使用 Python 脚本推送
        • 方法三:使用 Python 客户端库推送
      • 4.3 设置定时任务
      • 4.4 验证数据
    • 5. 高级配置
      • 5.1 使用基本认证
      • 5.2 删除指标
    • 6. 注意事项
    • 7. 完整示例
      • Bash 完整示例
      • Python 完整示例
    • 8. 最佳实践
    • 9. 故障排除
    • 10.注意事项

Pushgateway 自定义脚本推送数据

1. 目的

本文档提供了使用自定义脚本向 Prometheus Pushgateway 推送监控数据的标准操作流程(SOP),包括完整的示例代码。

2. 适用范围

适用于需要将自定义监控数据通过 Pushgateway 推送到 Prometheus 的场景。

3. 前提条件

  • 已部署并运行 Pushgateway 服务
  • 已安装 curl 或编程语言相关 HTTP 客户端库
  • 了解基本的 Prometheus 指标类型和格式

4. 操作流程

4.1 确定指标类型和格式

选择适合的指标类型:

  • Counter: 累计计数,只增不减
  • Gauge: 可增可减的数值
  • Histogram: 直方图
  • Summary: 摘要

4.2 编写推送脚本

选择以下任意一种方法:

方法一:使用 curl 命令行推送
#!/bin/bash# 变量定义
PUSHGATEWAY_URL="http://pushgateway.example.com:9091"
JOB_NAME="custom_script"
INSTANCE_NAME="server01"# 指标数据
cat <<EOF | curl --data-binary @- ${PUSHGATEWAY_URL}/metrics/job/${JOB_NAME}/instance/${INSTANCE_NAME}
# TYPE custom_metric_counter counter
custom_metric_counter{label="value1"} 42
# TYPE custom_metric_gauge gauge
custom_metric_gauge{label="value2"} 3.14
EOF
方法二:使用 Python 脚本推送
#!/usr/bin/env python3
import requests
from datetime import datetime# 配置信息
PUSHGATEWAY_URL = "http://pushgateway.example.com:9091"
JOB_NAME = "custom_script_python"
INSTANCE_NAME = "server01"# 构造指标数据
metrics_data = """# TYPE python_custom_counter counter
python_custom_counter{label="python_value1"} 100
# TYPE python_custom_gauge gauge
python_custom_gauge{label="python_value2"} 2.718
# TYPE last_success_timestamp gauge
last_success_timestamp{} {timestamp}
""".format(timestamp=int(datetime.now().timestamp()))# 推送数据
response = requests.post(f"{PUSHGATEWAY_URL}/metrics/job/{JOB_NAME}/instance/{INSTANCE_NAME}",data=metrics_data
)print
http://www.lryc.cn/news/2396124.html

相关文章:

  • kubernate解决 “cni0“ already has an IP address different from 10.244.0.1/24问题
  • el-tree拖拽事件,限制同级拖拽,获取拖拽后节点的前后节点,同级拖拽合并父节点name且子节点加入目标节点里
  • day62—DFS—太平洋大西洋水流问题(LeetCode-417)
  • 《Python基础》第2期:环境搭建
  • WSL 安装 Debian 12 后,Linux 如何安装 curl , quickjs ?
  • [CSS3]vw/vh移动适配
  • Python进阶与常用库:探索高效编程的奥秘
  • nt!MiDispatchFault函数分析之nt!MiCompleteProtoPteFault函数的作用
  • YOLOX 的动态标签分类(如 SimOTA)与 Anchor-free 机制解析2025.5.29
  • 打卡day42
  • 小白的进阶之路系列之八----人工智能从初步到精通pytorch综合运用的讲解第一部分
  • 724.寻找数组的中心下标前缀和
  • 软考-系统架构设计师-第十六章 层次式架构设计理论与实践
  • 甘特图 dhtmlxGantt.js UA实例
  • Docker学习笔记:基础知识
  • 5.2 初识Spark Streaming
  • uv:一个现代化的 Python 依赖管理工具
  • Python趣学篇:交互式词云生成器(jieba + Tkinter + WordCloud等)
  • 理解解释器架构:原理、组成与运行机制全解析
  • 2025华为OD机试真题+全流程解析+备考攻略+经验分享+Java/python/JavaScript/C++/C/GO六种语言最佳实现
  • Python应用for循环临时变量作用域
  • 设计模式——桥接设计模式(结构型)
  • LLaDa——基于 Diffusion 的大语言模型 打平 LLama 3
  • Apache SeaTunnel部署技术详解:模式选择、技巧与最佳实践
  • 2. 数据结构基本概念 (2)
  • 鸿蒙5.0+ 多协议设备发现与分布式软总线技术实践
  • STM32F407寄存器操作(多通道单ADC+DMA)
  • 基于React和TypeScript的金融市场模拟器开发与模式分析
  • 剑指offer13_剪绳子
  • reverse_ssh 建立反向 SSH 连接指南 混淆AV [好东西哟]