@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