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

2024-06-28 16:01:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为将来的需求建立一个监控PoC。PoC是在我的计算机上本地开发的。我用普罗米修斯和格拉法纳来监控公制。 我要计算收到的文件数和处理它所花费的时间。为此,我需要创建自定义指标。在

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

counter = prom.Counter('python_my_counter', 'This is my counter')
gauge = prom.Gauge('python_my_gauge', 'This is my gauge')
histogram = prom.Histogram('python_my_histogram', 'This is my histogram')
summary = prom.Summary('python_my_summary', 'This is my summary')


def thr():
    while True:
        counter.inc(random.random())
        gauge.set(random.random() * 15 - 5)
        histogram.observe(random.random() * 10)
        summary.observe(random.random() * 10)
        process_request(random.random() * 5)

        time.sleep(1)

我希望收到的文件总数“计数收到的文件数”指标。 处理一个文件所花费的时间(即2s)和处理一个文件所花费的时间之和(50s)。在


Tags: 文件ismycounter时间randomsummarythis
1条回答
网友
1楼 · 发布于 2024-06-28 16:01:03

你的用例不需要所有这些指标。只需向普罗米修斯注册summary度量,类似于:

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_processing_seconds_countrequest_processing_seconds_sum度量。在

相关问题 更多 >