gpt4 book ai didi

python - 如何使用Prometheus 存储Data 以供Grafana 可视化

转载 作者:行者123 更新时间:2023-12-05 06:30:21 24 4
gpt4 key购买 nike

借助 Python request.getjson.loads 函数,我能够从 URL 获取数据。数据包含一个实例列表,其中每个实例都有诸如 instance_id、status 等指标。

我的问题是,有什么方法可以将这些指标上传到 Prometheus?我查看了 pushgateway 函数,但不确定这是否是进行数据推送和存储的正确方法。

我目前将数据推送到 Prometheus 的工作如下:

from prometheus_client import CollectorRegistry, Gauge, push_to_gateway
from prometheus_client import Summary

registry1 = CollectorRegistry()
registry2 = CollectorRegistry()

s = Summary('request_latency_seconds', 'Description of summary', registry=registry1)
s.observe(4.7)

g = Gauge('job_last_success_unixtime', 'Last time a batch job successfully finished', registry=registry2)
g.set_to_current_time()

push_to_gateway('localhost:9091', job='batch_summary', registry=registry1)
push_to_gateway('localhost:9091', job='batch_gauge', registry=registry2)

但是,我不确定应该推送哪种指标类型(Gauge、Summary 还是其他?)

这是我希望推送的实例数据的示例:

{'url': 'https://example.com', 
'created': '2017-09-17-time',
'status_code': 200,
'instance_start': '2018-09-17-time', }

我将这些数据推送到 Prometheus 的原因是我想使用 Grafana 来获取这些数据并将它们可视化。

Grafana 图的示例是:时间作为 x 轴,状态代码为 200 的实例数作为 y 轴。

任何想法或帮助将不胜感激。谢谢!

最佳答案

因为我做过类似的事情,我可以给你一些建议。您可以将 pushgateway 用于“临时和批处理作业以将其指标公开给普罗米修斯”,正如它在此处所说 github页面。

我认为您需要summary 指标,但为了确定,请阅读有关普罗米修斯指标类型的文档 docs页面。

您完成了第一部分,您通过 pushgateway 公开了您想要的指标,您始终可以通过您的网络浏览器或使用 curl 检查它是否有效:

您的 IP:9091

如果您可以在该端口上看到一些数据,则必须在 prometheus 服务器 上设置您的配置。

您需要告诉普罗米修斯服务器应该抓取您的节点推送网关的指标。您要查找的文件是“prometheus.yml”,其位置取决于您安装 prometheus 服务器的位置。

当你打开它时,你应该这样写:

  - job_name: 'SomeJob-Name'
static_configs:
- targets: ['YourIPADDRESS:9091']
labels:
environment: 'prod'

之后重新启动您的 prometheus 服务器,您的节点中的数据应该在路径 YourPrometheusIP:9090/targets 上可见。

关于python - 如何使用Prometheus 存储Data 以供Grafana 可视化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52484052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com