使用statsd-bridge将数据从statsd推送到prometheus

时间:2015-03-23 09:36:52

标签: python django statsd prometheus

我一直在我的python django应用程序中使用statsd来测量不同的指标。现在我们已经整合了prometheus io,以便我们可以在以后的时间点查询这些指标。在这种情况下,我经历了statsd_bridge https://github.com/prometheus/statsd_bridge。我一直在使用它如下:

./ statsd_bridge -statsd.listen-address =" localhost:9090" -statsd.mapping-配置="" -web.listen地址=" A.B.C.D:8125" -web.telemetry路径=" /指标"

在上面,statsd在端口8125上的a.b.c.d上运行,我在本地机器上设置了prometheus。但问题是我在prometheus中看不到任何统计指标,即http://localhost:9090/metrics。所以,如果有人帮助我搞清楚我在这里犯的错误,我将非常感激。

3 个答案:

答案 0 :(得分:0)

根据the documentation statsd.listen-address,应该是接收statsd指标行的地址,但是您指向要查看Prometheus指标的地址。争论需要逆转。

仔细检查配置参数!

答案 1 :(得分:0)

statsd.listen-address将收听并收集来自 UDP 的数据。 你应该使用./statsd_bridge -statsd.listen-address=":8125" -statsd.mapping-config="" -web.listen-address="127.0.0.1:9090" -web.telemetry-path="/metrics" 比检查http://localhost:9090/metrics

答案 2 :(得分:0)

也许您可以使用其他方式,例如pushgateway

一些代码

from prometheus_client import CollectorRegistry, Gauge, push_to_gateway

registry = CollectorRegistry()
g = Gauge('job_last_success_unixtime', 'Last time a batch job successfully finished', registry=registry)
g.set_to_current_time()
push_to_gateway('localhost:9091', job='batchA', registry=registry)