首页 文章

如何使用Prometheus存储Grafana可视化的数据

提问于
浏览
1

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

我的问题是,有什么办法可以将这些指标上传到普罗米修斯吗?我查看了pushgateway功能,但不确定这是否是正确的数据推送和存储方式 .

我目前将数据推送到普罗米修斯的努力如下:

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来获取这些数据并将其可视化 .

格拉法纳图的示例是:时间为x轴,具有状态代码的实例数:200为y轴 .

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

1 回答

  • 0

    既然我做了类似的事情,我可以给你一些指示 . 您可以使用pushgateway“ ephemeral and batch jobs to expose their metrics to Prometheus ”,就像在那里github页面上所说的那样 .

    我认为您需要 summary 指标,但请务必阅读有关prometheus docs页面上指标类型的文档 .

    您完成了第一部分,通过 pushgateway 公开了所需的指标,您可以随时通过Web浏览器或curl检查它是否有效:

    YOURIP:9091

    如果您可以在该端口上看到某些数据,则必须在 prometheus server 上设置配置 .

    你需要告诉prometheus服务器应该刮掉你的节点pushgateway的指标 . 您正在寻找的文件是“prometheus.yml”,其位置取决于您安装prometheus服务器的位置 .

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

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

    之后重新启动prometheus服务器,节点上的数据应该显示在路径 YourPrometheusIP:9090/targets 上 .

相关问题