You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写适配Pushgateway与Prometheus的CPU指标上报Bash脚本

Bash脚本向Pushgateway上报进程CPU指标问题及解决方案

背景

尝试编写Bash脚本向Pushgateway上报指标供Prometheus采集,当前Pushgateway部署在一台树莓派上,Prometheus部署在另一台树莓派,两个基础服务均运行正常。

已验证可正常运行的简单上报脚本如下:

echo "metric 99" | curl --data-binary @- http://localhost:9091/metrics/job/some_job

问题说明

需要实现上报ps aux输出的各进程CPU使用率指标,先后编写的多个版本脚本无法正常运行,部分脚本执行时curl返回*“URL using bad/illegal format or missing URL”*错误。

常见错误原因

  • 未正确处理ps aux输出的特殊字符、空格,导致curl读取到的内容混入被误识别为URL参数的内容
  • 输出的指标名格式不符合Prometheus规范,或是输出内容存在格式错误,导致curl参数解析异常
  • 脚本编写时引号、转义符使用错误,导致请求URL被截断或混入多余字符

最终解决方案

以下命令可将所有CPU使用率大于0的进程数据上报至Pushgateway:

ps aux | awk '$3>0 {print "cpu_usage_"$2" "$3}' | curl --data-binary @- http://localhost:9091/metrics/job/top/instance/machine

注:该指令中$3对应CPU使用率,$2对应进程PID,若执行报错可检查返回内容是否包含特殊字符。


内容的提问来源于stack exchange,提问作者wanwan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 05:42:02