Python3对接Prometheus

向Prometheus推送指标

安装依赖:

pip3 install prometheus_client
from prometheus_client import CollectorRegistry, Gauge, push_to_gateway

# 创建一个收集器
registry = CollectorRegistry()

# 创建一个Gauge指标
gauge = Gauge('my_custom_metric''This is a custom metric', registry=registry)

# 设置指标的值
gauge.set(42)

# 将指标推送到Prometheus网关
push_to_gateway('http://localhost:9091', job='my_job', registry=registry)

在上面的示例中,我们首先创建了一个收集器(CollectorRegistry),然后创建了一个名为my_custom_metric的Gauge指标,并设置了它的值为42。最后,我们使用push_to_gateway函数将指标推送到Prometheus网关。

从Prometheus读取指标

import requests

# 定义Prometheus查询的URL
url = 'http://localhost:9090/api/v1/query'

# 定义查询语句
query = 'up'

# 发送GET请求来获取指标数据
response = requests.get(url, params={'query': query})

# 检查响应状态码
if response.status_code == 200:
    # 提取响应中的指标数据
    data = response.json()['data']['result']

    # 遍历指标数据并打印值
    for metric in data:
        value = metric['value']
        print(f"Metric: {metric['metric']}, Value: {value}")
else:
    print(f"Failed to fetch metrics. Status code: {response.status_code}")

在上面的示例中,我们首先定义了Prometheus查询的URL,然后指定了要查询的指标,这里是up指标,它表示Prometheus中的目标是否正常运行。然后,我们使用requests库发送一个GET请求,并通过params参数将查询语句传递给Prometheus查询API。

如果响应状态码为200,表示请求成功,我们可以从响应中提取指标数据,并使用for循环遍历每个指标的值,并进行打印。

欢迎大家关注我的公众号,将会为大家推荐更优质的内容!

原文始发于微信公众号(青檬小栈):Python3对接Prometheus

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/213253.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!