【问题标题】:How write a python script to send metrics data to pushgateway如何编写 python 脚本将指标数据发送到 pushgateway
【发布时间】:2021-11-09 11:30:08
【问题描述】:

我想将指标数据发送到 Prometheus 推送网关以监控 CPU 和内存。 我想要的是将$ps aux$htop 信息传输到推送网关。 我用 bash 脚本尝试了这个(但我没有成功),这就是为什么我想尝试用 python 脚本。 对我来说最大的问题是将$ps aux$htop 信息转换为指标数据,我真的不知道如何管理它。 我尝试了一个简单的代码,它可以正常工作:

import requests
job_name='metrics'
instance_name='10.0.0.1:9090'
team_name='cpu'
provider='Rpi'
payload_key='cpu_utilization'
payload_value='33'

response = requests.post('http://localhost:9091/metrics/job/{j}/instance/{i}/team/{t}'.format(j=job_name, i=instance_name, t=team_name), data='{k} {v}\n'.format(k=payload_key, v=payload_value))
print(response.status_code)

我现在想要的是将payload_key='cpu_utilization'payload_value='33' 修改为$ps aux$htop 命令的进程列表。

有没有人有想法。非常感谢。

【问题讨论】:

  • 您可以尝试通过os.system(<command string here>)执行命令并解析命令的输出。

标签: python metrics script prometheus-pushgateway


【解决方案1】:

我要测试这个命令:

$ps –eo pid,user,%mem,cmd --sort=-%mem

并改变:

payload_key='cpu_utilization'
payload_value='33'

通过“$ps”命令:

os.system('ps –eo pid,user,%mem,cmd --sort=-%mem')

也许这会运行......或者不会!

【讨论】:

    【解决方案2】:

    python命令运行完美:

    os.system('ps –eo pid,user,%mem,cmd --sort=-%mem')
    

    但是如何将其插入到前面的代码中呢?

    我测试过:

    import requests, os
    job_name='metrics'
    instance_name='10.0.0.1:9090'
    team_name='cpu'
    provider='Rpi'
    payload_key=os.system('ps –eo pid')
    payload_value=os.system('ps –eo %cpu')
    
    response = requests.post('http://localhost:9091/metrics/job/{j}/instance/{i}/team/{t}'.format(j=job_name, i=instance_name, t=team_name), data='{k} {v}\n'.format(k=payload_key, v=payload_value))
    print(response.status_code)
    

    但是(并不惊讶),这并没有运行。 如何使用 %cpu 将 PID 1 影响到指标 n# 1 ?并将所有 cpu 数据添加到指标列表中?

    至少将os.system('ps –eo pid,user,%mem,cmd --sort=-%mem') 响应转换为列表,然后为 request.post 做一段时间,它会获取所有列表元素。

    谢谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-25
      • 2018-07-25
      • 1970-01-01
      相关资源
      最近更新 更多