Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python和Prometheus Pushgateway推送度量_Python_Prometheus_Prometheus Pushgateway - Fatal编程技术网

如何使用Python和Prometheus Pushgateway推送度量

如何使用Python和Prometheus Pushgateway推送度量,python,prometheus,prometheus-pushgateway,Python,Prometheus,Prometheus Pushgateway,我希望使用Pushgateway将一个多标签度量推入普罗米修斯。该文档提供了一个curl示例,但我需要通过Python发送它。此外,我还想在度量中嵌入多个标签。以下是我最后做的事情——我花了一段时间才做对。理想情况下,我会使用专门为此目的设计的Prometheus python客户端,但在某些情况下,它似乎不支持多个标签,而且文档几乎不存在——因此我选择了一个自制的解决方案 下面的代码使用gevent并支持多个(逗号分隔的)pushgateway URL(如“pushgateway1.my.co

我希望使用Pushgateway将一个多标签度量推入普罗米修斯。该文档提供了一个curl示例,但我需要通过Python发送它。此外,我还想在度量中嵌入多个标签。

以下是我最后做的事情——我花了一段时间才做对。理想情况下,我会使用专门为此目的设计的Prometheus python客户端,但在某些情况下,它似乎不支持多个标签,而且文档几乎不存在——因此我选择了一个自制的解决方案

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


这是为Python客户端编写的文档:

One:安装客户端:

pip install prometheus_client
第二:将以下内容粘贴到Python解释器中:

from prometheus_client import CollectorRegistry, Gauge, push_to_gateway

registry = CollectorRegistry()
g = Gauge('job_last_success_unixtime', 'Last time a batch job successfully finished', registry=registry)
g.set_to_current_time()
push_to_gateway('localhost:9091', job='batchA', registry=registry)

上面的代码生成一个非类型化度量。要生成类型化度量,需要在有效负载前面加上“#TYPE counter\n”(用于计数器度量)。
from prometheus_client import CollectorRegistry, Gauge, push_to_gateway

registry = CollectorRegistry()
g = Gauge('job_last_success_unixtime', 'Last time a batch job successfully finished', registry=registry)
g.set_to_current_time()
push_to_gateway('localhost:9091', job='batchA', registry=registry)