Python 如何在普罗米修斯中创建自定义指标?

Python 如何在普罗米修斯中创建自定义指标?,python,prometheus,metrics,Python,Prometheus,Metrics,我正在为未来的需求建立一个监控PoC。PoC是在我的计算机上本地开发的。为了监控度量,我使用普罗米修斯和格拉法纳。 我想计算接收到的文件数量以及处理这些文件所花费的时间。为此,我需要创建自定义指标 我正在使用python 2.7.5。现在我已经把普罗米修斯和目标联系起来了。我收到指标,但不知道如何创建我想要的指标 counter=prom.counter('python\u my\u counter','This is my counter') gauge=prom.gauge('python\

我正在为未来的需求建立一个监控PoC。PoC是在我的计算机上本地开发的。为了监控度量,我使用普罗米修斯和格拉法纳。 我想计算接收到的文件数量以及处理这些文件所花费的时间。为此,我需要创建自定义指标

我正在使用python 2.7.5。现在我已经把普罗米修斯和目标联系起来了。我收到指标,但不知道如何创建我想要的指标

counter=prom.counter('python\u my\u counter','This is my counter')
gauge=prom.gauge('python\u my\u gauge','This is my gauge')
直方图=prom.histogram('python\u my\u histogram','这是我的直方图')
summary=prom.summary('python\u my\u summary','This is my summary')
def thr():
尽管如此:
counter.inc(random.random())
量表设置(random.random()*15-5)
直方图。观察(random.random()*10)
总结。观察(random.random()*10)
处理请求(random.random()*5)
时间。睡眠(1)
我期望收到的文件总数“计算收到的文件数”指标。
处理一个文件所花费的时间(2秒)和处理一个文件所花费的时间之和(50秒)。

您的用例不需要所有这些指标。只需向普罗米修斯注册
summary
metric,比如:

from prometheus_client import Summary
import time
# Create a metric to track time spent and requests made.
REQUEST_TIME = Summary('request_processing_seconds', 'Time spent processing request')
# Decorate function with metric.
@REQUEST_TIME.time()
def process_request(t):
    """A dummy function that takes some time."""
    time.sleep(t)

然后您就有了可用的
request\u processing\u seconds\u count
request\u processing\u seconds\u sum
指标。

谢谢您的回答。如何生成随时间返回常量值的度量(即度量=1)?您试图通过随时间返回常量值来解决什么用例?如果只需要一个常量值,可以注册任何
计数器
度量,并且永远不递增它。AFAIK指标并不是为此而制定的。请在此处阅读何时(不)使用度量:@kalimba如何向普罗米修斯注册自定义度量?