使用 python 读取 Prometheus 指标

101*_*101 5 python kubernetes prometheus

我正在尝试读取 kubernetes 中 POD 的 Prometheus 指标(CPU 和内存值)。我安装了 Prometheus,并且使用本地主机“ http://localhost:9090/”一切正常。我使用以下代码读取 Pod 的 CPU 和内存,但出现错误 results = response.json()['data']['result'] ,无法解码 JSON 对象。有人可以帮忙吗?

import datetime
import time
import requests  

PROMETHEUS = 'http://localhost:9090/'

end_of_month = datetime.datetime.today().replace(day=1).date()

last_day = end_of_month - datetime.timedelta(days=1)
duration = '[' + str(last_day.day) + 'd]'

response = requests.get(PROMETHEUS + '/metrics',
  params={
    'query': 'sum by (job)(increase(process_cpu_seconds_total' + duration + '))',
    'time': time.mktime(end_of_month.timetuple())})
results = response.json()['data']['result']

print('{:%B %Y}:'.format(last_day))
for result in results:
  print(' {metric}: {value[1]}'.format(**result))
Run Code Online (Sandbox Code Playgroud)

小智 8

代码看起来是正确的,但是,您的响应命令中的查询是错误的。真正的甲酸盐是:

response =requests.get(PROMETHEUS + '/api/v1/query', params={'query': 'container_cpu_user_seconds_total'}) 
Run Code Online (Sandbox Code Playgroud)

您可以将“container_cpu_user_seconds_total”更改为您想要读取的任何查询。.. 祝你好运