使用 statsd-bridge 将数据从 statsd 推送到 prometheus
Posted
技术标签:
【中文标题】使用 statsd-bridge 将数据从 statsd 推送到 prometheus【英文标题】:Using statsd-bridge to push data to prometheus from statsd 【发布时间】:2015-05-26 05:58:49 【问题描述】:我一直在我的 python django 应用程序中使用 statsd 来测量不同的指标。现在我们一直在集成 prometheus io,以便我们可以在以后查询这些指标。在这种情况下,我通过了 statsd_bridge https://github.com/prometheus/statsd_bridge。我一直在使用它,如下所示:
./statsd_bridge -statsd.listen-address="localhost:9090" -statsd.mapping-config="" -web.listen-address="abcd:8125" -web.telemetry-path="/metrics"
在上面,statsd 在端口 8125 上的 a.b.c.d 上运行,并且我在本地计算机上设置了 prometheus。但问题是我在 prometheus 中看不到任何 statsd 指标,即http://localhost:9090/metrics。因此,如果有人帮助我弄清楚我在这里犯了什么错误,我将不胜感激。
【问题讨论】:
你确定你使用了正确的参数吗?根据github.com/prometheus/statsd_bridge#building-and-runningstatsd.listen-address
应该是接收 statsd 指标行的地址,但您指向的是要查看 Prometheus 指标的地址。仔细检查配置参数!
这里是 statsd-bridge 的作者。 @dukebody 是对的。论点需要颠倒。
嘿@Julius,如果您能就以下关于prometheus-to-statsd 桥***.com/questions/44706574/… 的SO 问题了解您的想法,那就太好了
【参考方案1】:
根据the documentationstatsd.listen-address
应该是接收 statsd 指标行的地址,但您指向的是要查看 Prometheus 指标的地址。论据需要颠倒。
仔细检查配置参数!
【讨论】:
【参考方案2】: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
【讨论】:
【参考方案3】:也许你可以使用其他方式,比如 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)
【讨论】:
以上是关于使用 statsd-bridge 将数据从 statsd 推送到 prometheus的主要内容,如果未能解决你的问题,请参考以下文章