我一直在我的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。所以,如果有人帮助我搞清楚我在这里犯的错误,我将非常感激。
答案 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)