繁体   English   中英

Prometheus pushgateway简单公制监视器

[英]Prometheus pushgateway simple metric monitor

我试图学习普罗米修斯(并最终使用grafana)。 到目前为止,我正在尝试学习的主要用例是能够从客户端进行更新(没有Prometheus scrape)。 我有一个pushgateway,我希望我的脚本/进程能够更新prometheus(然后grafana获取该统计信息)。 我刚开始时有一个简单的脚本,在这里我得到了cpu的利用率(按百分比计算)并将其发送给prometheus:

from prometheus_client import CollectorRegistry, Gauge, push_to_gateway, Summary, Histogram
from time import sleep
from random import randint, random

registry = CollectorRegistry()

cpu_util_sum_metric = Summary('cpu_util_summary', 'cpu_util_summary', registry=registry)
cpu_util_hist_metric = Summary('cpu_util_hist', 'cpu_util_hist', registry=registry)

for i in range(90):
  cpu_util = randint(0, 100)

  cpu_util_sum_metric.observe(float(cpu_util))
  cpu_util_hist_metric.observe(float(cpu_util))
  print('cpu util is: {}'.format(cpu_util))
  res = push_to_gateway('localhost:9091', job='cpu_stats', registry=registry)
  print('push_to_gateway result is:', str(res))
  sleep(5)

运行此命令时,在prometheus浏览器中,我看到以下指标(基于我的“ cpu_util_hist”和“ cpu_util_sum”):

  • cpu_util_hist_count
  • cpu_util_hist_created
  • cpu_util_hist_sum
  • cpu_util_summary_count
  • cpu_util_summary_created
  • cpu_util_summary_sum

首先,我想我会在'cpu_util_hist'或'cpu_util_summary'的不同时间戳(在excel中有点像)上有一个单点,可以用来绘制普罗米修斯或格拉法纳。 我该如何实现? 我需要将它们作为总和来计算比率/利率吗? 我对普罗米修斯有什么误解。

我会告诉你我如何看待这个问题,我们将让其他人纠正我;-)

Prometheus“更愿意”从端点提取指标。 这是它的先天行为,并且有充分的理由

之所以存在Pushgateway,是因为并非每个系统本身都可以充当Prometheus的抓取目标以获取其指标。 应用程序将其指标发送到Pushgateway,Prometheus抓取Pushgateway。

当Prometheus抓取端点时,这将成为当时获取的测量的时间戳。 对于Pushgateway,时间戳记为Pushgateway刮擦时间而不是应用时间。

指标不带有时间戳。

Prometheus根据通过这些抓取(直接从应用程序的度量标准端点拉出或直接从Pushgateway端点代理度量从应用程序拉出)获取的度量标准建立时间序列,该频率由抓取的频率决定。

我认为您的问题的答案是,随着时间的流逝,如果Prometheus配置为抓取接收代码的推送指标的Pushgateway端点,它将为您建立指标的时间序列。 Prometheus包含其自己的查询功能,您可以使用该功能来验证该假设并向自己证明。

一旦确信这是有效的,就可以对您的Prometheus时间序列源使用Grafana来代替使用Grafana绘制数据图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM