@Pushgateway自定义脚本推送数据

发布于:2025-06-02 ⋅ 阅读:(27) ⋅ 点赞:(0)

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

网站公告

今日签到

点亮在社区的每一天
去签到