使用 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的主要内容,如果未能解决你的问题,请参考以下文章

WIFI模块AP和STA模式分别是啥意思

STP

从数据库中获取但仅持续 30 天

将 JSON 数据添加到 React

如何使用 MVVM 灯光从 CustomControl 引用视图模型

如何将消息发布到运行消息泵的 STA 线程?