Exporter.png

本文已经收录在 Prometheus 合集 Prometheus 都可以采集那些指标?-- 常用 Exporter 合集 中。

StatsD Exporter 接收 StatsD 风格的指标然后转换成 Prometheus 格式的指标吐给 Prometheus 。 这个组件是 Prometheus 官方维护的,仓库地址是: https://github.com/prometheus/statsd_exporter ,最新版本是 v0.22.4 ,发布于 2021 年 11 月 26 日。

StatsD Exporter 是 StatsD 的临时替代品。该 Exporter 通过配置的映射规则将 StatsD 指标转换为 Prometheus 指标。

我们建议 StatsD Exporter 是一个短期的解决方案,在长期范围内还是采用 Prometheus 直接采集比较好。StatsD 服务通常是集中运行,但是 Exporter 最好是作为 Sidecar 运行。

从现有的StatsD设置转换

在 Kubernetes 中,可以将它添加到 Pod 中,通过将 StatsD Exporter 作为 Sidecar 添加到应用程序实例中来引入它。使用 --statsd.relay.address 转发指标到现有的 StatsD UDP 接口。转发未修改的 statsd 事件,以任何格式保存原始度量名称和标记。

+-------------+    +----------+                  +------------+
| Application +--->| Exporter +----------------->|  StatsD    |
+-------------+    +----------+                  +------------+
                          ^
                          |                      +------------+
                          +----------------------+ Prometheus |
                                                 +------------+

从 StatsD 传送

要从现有的 StatsD 环境将指标传输到 Prometheus,需要配置 StatsD 的 repeater 后端,将所有接收到的指标重复到 statsd_exporter 进程。

+----------+                         +-------------------+                        +--------------+
|  StatsD  |---(UDP/TCP repeater)--->|  statsd_exporter  |<---(scrape /metrics)---|  Prometheus  |
+----------+                         +-------------------+                        +--------------+

这样可以以最小的成本导出,但是不为每个实例提供 Sidecar 模式。

扩展标签

这个 Exporter 支持 Librato、fluxdb、DogStatsD 和 Signalfx 风格的标签,这些标签将被转换为 Prometheus 的 label 。

对于 Influxdb 样式的标记,它们必须在指标名称后附加一个分隔逗号,如下所示:

metric.name,tagName=val,tag2Name=val2:0|c

其他不同的样式都有不同的规定。