文章目錄
- 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