当前位置: 首页 > 知识库问答 >
问题:

如何在普罗米修斯中创建自定义度量?

林华皓
2023-03-14

我正在建立一个监控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)。

共有1个答案

殷承恩
2023-03-14

您的用例不需要所有这些度量。只需在prometheus中注册summarymetric,如下所示:

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可用度量。

 类似资料:
  • 我的各种docker容器导出prometheus度量,但是我们的prometheus安装只需要从一个endpoint提取所有度量。不幸的是,这是无法改变的。因此,我需要在一个点上聚合所有度量,从普罗米修斯安装可以刮取度量。 此外,如果这个程序或脚本能够提供关于如何处理由不同endpoint导出的相同度量的额外逻辑,那就太好了。例如,如果我只是将不同的度量站点连接在一起,Prometheus在解释度

  • 我已经设置了prometheus从我的豆荚和节点中收集度量。我还设置了prometheus自定义度量适配器。 我如何使用普罗米修斯提供的那些度量来自动缩放我的吊舱?我试着谷歌它,但我只找到自定义的pods在他们的/metrics URL上提供他们的度量。我想能够自动缩放任何我的豆荚,已经有一个普罗米修斯度量基于cpu或内存使用。 我可以在grafana中可视化我所有的豆荚和节点的所有度量,但无法找

  • 我将我的GKE API服务器升级到1.6,并正在将节点升级到1.6,但遇到了一个障碍... 我有一个prometheus服务器(版本1.5.2),运行在一个由Kubernetes部署管理的pod中,其中两个节点运行版本1.5.4Kubelet,一个新节点运行版本1.6。 但普罗米修斯仍然得到401。 更新:就像乔丹所说的kubernetes认证问题。在这里看到新的、更集中的问题;https://s

  • 我正在尝试将时间度量添加到我的spring-boot web应用程序中。现在,应用程序使用千分尺、普罗米修斯和Spring引导执行器。 我可以通过http://localhost:8080/acturet/prometheus连接到我的应用程序,并查看默认度量的列表,如: 但至少这让我得到了我想要的结果: 有没有更干净的方法?

  • 我要监控的应用程序为健康检查提供了一个apiendpoint,该endpoint使用json中的指标进行响应。例如: 我已经设置了Prometheus blackbox\u exporter,以监视此endpoint是否返回200 Ok,但理想情况下,我也希望获得这些指标。我知道instrumentation直接从应用程序导出这些数据。但是,由于应用程序已经在导出json对象中我想要的内容,我更希