Prometheus Pushgateway 简单指标监控

ozn*_*ozn 0 python prometheus

我正在尝试学习普罗米修斯(并最终使用它grafana)。到目前为止,我正在尝试学习的主要用例是能够从我的客户端进行更新(没有普罗米修斯刮擦)。我有一个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)
Run Code Online (Sandbox Code Playgroud)

当我运行它时,在普罗米修斯浏览器中我看到以下指标(基于我的“cpu_util_hist”和“cpu_util_sum”):

  • cpu_util_hist_count
  • cpu_util_hist_创建
  • cpu_util_hist_sum
  • cpu_util_summary_count
  • cpu_util_summary_created
  • cpu_util_summary_sum

首先,我想我会在“cpu_util_hist”或“cpu_util_summary”的不同时间戳(有点像excel中)有单点,我可以用它们在prometheus或grafana中绘制。我怎样才能做到这一点?我需要将它们作为总和并计算利率/利率吗?我对普罗米修斯有什么误解。

Daz*_*kin 6

我会告诉你我认为这是如何运作的,我们会让其他人纠正我;-)

Prometheus“更喜欢”从端点提取指标。这是它与生俱来的行为,并且有充分的理由

Pushgateway 的存在是因为并非每个系统本身都可以充当 Prometheus 提取其指标的抓取目标。在这些情况下,Pushgateway 充当应用程序的代理抓取目标;应用程序将其指标发送到 Pushgateway,Prometheus 抓取 Pushgateway。

当 Prometheus 抓取端点时,这将成为当时获取的测量值的时间戳。对于 Pushgateway,时间戳是 Pushgateway 抓取时间而不是代理应用程序时间。

指标不带有时间戳。

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

我认为您问题的答案是,随着时间的推移,如果 Prometheus 配置为抓取接收代码推送指标的 Pushgateway 端点,它将构建指标的时间序列供您查询|绘制图表。Prometheus 包含自己的查询|绘图功能,您可以使用它来测试这个假设并向自己证明这一点。

一旦您确信这就是它的工作方式,您就可以针对 Prometheus 时间序列源使用 Grafana,以使用 Grafana 绘制数据图表。