本文已经收录在 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
其他不同的样式都有不同的规定。