gpt4 book ai didi

python - 如何使用 Python 和 Prometheus Pushgateway 推送指标

转载 作者:太空狗 更新时间:2023-10-30 01:05:59 27 4
gpt4 key购买 nike

我希望使用 Pushgateway 将多标签指标推送到 Prometheus。该文档提供了一个 curl 示例,但我需要通过 Python 发送它。此外,我想将多个标签嵌入到指标中。

最佳答案

这就是我最终所做的 - 我花了一段时间才做出正确的决定。虽然理想情况下我会使用专门为此目的设计的 Prometheus python 客户端,但在某些情况下它似乎不支持多个标签并且文档几乎不存在 - 所以我选择了自制的解决方案。

下面的代码使用 gevent 并支持多个(逗号分隔)pushgateway url(例如“pushgateway1.my.com:9092, pushgateway2.my.com:9092”)。

import gevent
import requests

def _submit_wrapper(urls, job_name, metric_name, metric_value, dimensions):
dim = ''
headers = {'X-Requested-With': 'Python requests', 'Content-type': 'text/xml'}
for key, value in dimensions.iteritems():
dim += '/%s/%s' % (key, value)
for url in urls:
requests.post('http://%s/metrics/job/%s%s' % (url, job_name, dim),
data='%s %s\n' % (metric_name, metric_value), headers=headers)


def submit_metrics(job_name, metric_name, metric_value, dimensions={}):
from ..app import config
cfg = config.init()
urls = cfg['PUSHGATEWAY_URLS'].split(',')
gevent.spawn(_submit_wrapper, urls, job_name, metric_name, metric_value, dimensions)

关于python - 如何使用 Python 和 Prometheus Pushgateway 推送指标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40989737/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com