专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像

交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题轩辕镜像免费版
其他
关于我们网站地图
热门搜索:
statsd-exporter

prom/statsd-exporter

prom

接收StatsD风格指标并将其转换为Prometheus指标的转换器,支持通过映射规则定义指标名称和标签,兼容Librato、InfluxDB等多种标签格式,可作为边车或中继运行,实现StatsD到Prometheus的平滑过渡。

24 次收藏下载次数: 0状态:社区镜像维护者:prom仓库类型:镜像最近更新:19 天前
使用轩辕镜像,把时间还给真正重要的事。点击查看
中文简介
标签下载
镜像标签列表与下载命令
使用轩辕镜像,把时间还给真正重要的事。点击查看

statsd exporter

statsd_exporter 接收StatsD风格的指标并将其导出为Prometheus指标。

概述

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

我们建议仅将该exporter用作中间解决方案,长期应切换到原生Prometheus instrumentation。虽然运行集中式StatsD服务器很常见,但该exporter作为边车运行时效果最佳。

从现有StatsD设置过渡

中继功能允许逐步过渡。

通过将exporter作为边车添加到应用实例旁来引入它。在Kubernetes中,这意味着将其添加到Pod中。使用--statsd.relay.address将指标转发到现有StatsD UDP端点。中继会无修改地转发statsd事件,保留原始指标名称和任何格式的标签。

+-------------+    +----------+                  +------------+
| 应用程序     +--->| Exporter +----------------->|  StatsD    |
+-------------+    +----------+                  +------------+
                          ^
                          |                      +------------+
                          +----------------------+ Prometheus |
                                                 +------------+

从StatsD中继

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

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

这允许以最小的工作量试用exporter,但不提供边车模式的每实例指标。

标签扩展

exporter支持Librato、InfluxDB、DogStatsD和SignalFX风格的标签,这些标签将转换为Prometheus标签。

对于Librato风格的标签,必须使用分隔符#将其附加到指标名称后,如下所示:

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

有关更完整的描述,请参见https://github.com/librato/statsd-librato-backend#tags%E3%80%82

对于InfluxDB风格的标签,必须使用分隔符逗号将其附加到指标名称后,如下所示:

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

有关更全面的概述,请参见这篇InfluxDB博客文章。

对于DogStatsD风格的标签,它们作为|#分隔的部分附加在指标末尾,如下所示:

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

有关概念描述,请参见DogStatsD文档中的标签和数据报格式。如果遇到问题,请注意这种标签风格与原始statsd实现不兼容。exporter还支持结合DogStatsD标签使用https://github.com/prometheus/statsd_exporter/pull/558%EF%BC%8C%E4%BD%86%E4%B8%8D%E6%94%AF%E6%8C%81%E5%85%B6%E4%BB%96%E6%A0%87%E7%AD%BE%E9%A3%8E%E6%A0%BC%E3%80%82

对于https://github.com/signalfx/signalfx-agent/blob/main/docs/monitors/collectd-statsd.md#adding-dimensions-to-statsd-metrics%EF%BC%8C%E5%9C%A8%E6%8C%87%E6%A0%87%E5%90%8D%E7%A7%B0%E7%9A%84%E6%96%B9%E6%8B%AC%E5%8F%B7%E4%B8%AD%E6%B7%BB%E5%8A%A0%E6%A0%87%E7%AD%BE%EF%BC%8C%E5%A6%82%E4%B8%8B%E6%89%80%E7%A4%BA%EF%BC%9A

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

注意:如果混合标签风格(例如Librato/InfluxDB与DogStatsD),exporter会将其视为错误,行为未定义。此外,没有值的标签(#some_tag)不受支持,将被忽略。

exporter默认解析所有标签格式,但可以通过命令行标志禁用特定标签格式:

--no-statsd.parse-dogstatsd-tags
--no-statsd.parse-influxdb-tags
--no-statsd.parse-librato-tags
--no-statsd.parse-signalfx-tags

默认情况下,配置中显式指定的标签优先于来自标签的标签。要从statsd事件标签设置标签,请使用honor_labels。

构建和运行

注意:0.7.0版本切换到https://github.com/alecthomas/kingpin%E6%A0%87%E5%BF%97%E5%BA%93%E3%80%82%E6%AD%A4%E6%9B%B4%E6%94%B9%E5%90%8E%EF%BC%8C%E6%A0%87%E5%BF%97%E8%A1%8C%E4%B8%BA%E7%AC%A6%E5%90%88POSIX%E9%A3%8E%E6%A0%BC%EF%BC%9A

  • 长标志以两个破折号开头(--version)
  • 布尔长标志通过前缀no-禁用(--flag-name为true,--no-flag-name为false)
  • 多个短标志可以组合(但目前只有一个)
  • 标志处理在第一个--处停止
  • 有关完整标志列表,请参见--help

生命周期API

statsd_exporter具有可选的生命周期API(默认禁用),可通过向/-/reload或/-/quit端点发送PUT或POST请求来重新加载或退出exporter。

中继

statsd_exporter有一种可选模式,可将传入的statsd行缓冲并中继到远程服务器。这在迁移到使用exporter时"分流"数据很有用。中继将至少每秒刷新一次缓冲区,以避免延迟指标传递。

测试

$ go test

指标映射与配置

statsd_exporter可通过简单的映射语言配置,将特定的点分隔StatsD指标转换为带标签的Prometheus指标。配置文件在收到SIGHUP信号时重新加载。

映射定义以匹配相关StatsD指标的行开始,其中*作为每个点分隔指标组件的通配符。匹配表达式后的行必须每行包含一个label="value"对,并且至少定义指标名称(标签名称name)。然后从这些标签构造Prometheus指标。标签值中的$n风格引用将替换为匹配行中的第n个通配符匹配,从1开始。多个匹配定义由一个或多个空行分隔。与StatsD指标匹配的第一个映射规则生效。

未在配置文件中匹配任何映射的指标将转换为不带标签的Prometheus指标,任何非字母数字字符(包括句点)转换为下划线。

通常,不同的指标类型转换如下:

StatsD gauge   -> Prometheus gauge

StatsD counter -> Prometheus counter

StatsD timer, histogram, distribution   -> Prometheus summary or histogram

Glob匹配

默认(且最快)的glob映射风格使用*表示statsd指标名称中可能变化的部分。这些变化的部分可用于构造Prometheus指标名称和标签。

示例映射配置:

yaml
mappings:
- match: "test.dispatcher.*.*.*"
  name: "dispatcher_events_total"
  labels:
    processor: "$1"
    action: "$2"
    outcome: "$3"
    job: "test_dispatcher"
- match: "*.signup.*.*"
  name: "signup_events_total"
  labels:
    provider: "$2"
    outcome: "$3"
    job: "${1}_server"

这会将以下示例StatsD指标转换为Prometheus指标:

test.dispatcher.FooProcessor.send.success
 => dispatcher_events_total{processor="FooProcessor", action="send", outcome="success", job="test_dispatcher"}

foo_product.signup.***.failure
 => signup_events_total{provider="***", outcome="failure", job="foo_product_server"}

test.web-server.foo.bar
 => test_web_server_foo_bar{}

配置中的每个映射必须定义指标的name。指标名称中可以包含$n风格的引用,以替换匹配行中的通配符匹配。例如:

yaml
mappings:
- match: "test.*.*.counter"
  name: "${2}_total"
  labels:
    provider: "$1"

Glob匹配为常见映射提供最佳性能。

Glob规则排序

从左到右,先列出更具体的匹配,再列出通配符:

a.b.c
a.b.*
a.*.d
a.*.*

这避免意外遮蔽后续规则,以及回溯导致的性能影响。

或者,可以完全禁用映射排序。启用无序映射后,在每个层级,更具体的匹配优先。这与推荐的排序效果相同。

正则表达式匹配

regex映射风格使用正则表达式匹配完整的statsd指标名称。如果glob映射不足以从statsd指标名称中提取结构化数据,可以使用此方式。

正则表达式匹配比glob映射慢得多,因为所有映射必须按顺序测试。因此,regex映射仅在所有glob映射之后执行。换句话说,无论指定顺序如何,glob映射优先于regex匹配。正则表达式匹配始终按顺序计算,第一个匹配生效。

指标名称也可以包含对regex匹配的引用。上面的映射可以写为:

yaml
mappings:
- match: "test\\.(\\w+)\\.(\\w+)\\.counter"
  match_type: regex
  name: "${2}_total"
  labels:
    provider: "$1"
- match: "(.*)\\.(.*)--(.*)\\.status\\.(.*)\\.count"
  match_type: regex
  name: "request_total"
  labels:
    hostname: "$1"
    exec: "$2"
    protocol: "$3"
    code: "$4"

注意yaml转义规则,如下映射将无法工作:

yaml
mappings:
- match: "test\\.(\w+)\\.(\w+)\\.counter"
  match_type: regex
  name: "${2}_total"
  labels:
    provider: "$1"

特殊匹配组

使用regex时,匹配组0是完整匹配,可用于为指标附加标签。示例:

yaml
mappings:
- match: ".+"
  match_type: regex
  name: "$0"
  labels:
    statsd_metric_name: "$0"

如果收到指标my.statsd_counter,指标名称仍将映射为my_statsd_counter(Prometheus兼容名称),但指标还将具有标签statsd_metric_name,值为my.statsd_counter(未更改的值)。

注意:如果使用类似示例中的match(即.+),请注意它将作为"全能"块。因此应放在映射列表的最后。

使用glob匹配无法实现相同功能,详情参见https://github.com/prometheus/statsd_exporter/issues/444%E3%80%82

命名、标签和帮助文本

请注意,名称相同的指标必须具有相同的标签名称集。

如果默认指标帮助文本不够,可以使用YAML配置为每个映射指定自定义帮助文本:

yaml
mappings:
- match: "http.request.*"
  help: "HTTP请求总数"
  name: "http_requests_total"
  labels:
    code: "$1"

Honor labels

默认情况下,映射配置中指定的标签优先于statsd事件中的标签。

要将标签值设置为statsd事件标签中的原始值(如果存在),在映射配置中指定honor_labels: true。此时,映射中指定的标签作为默认值。

StatsD计时器和分布

默认情况下,statsd计时器和分布(统称为"observer")表示为带有分位数的Prometheus summary。可以选择配置分位数和可接受误差,以及调整summary指标的聚合方式:

yaml
mappings:
- match: "test.timing.*.*.*"
  observer_type: summary
  name: "my_timer"
  labels:
    provider: "$2"
    outcome: "$3"
    job: "${1}_server"
  summary_options:
    quantiles:
      - quantile: 0.99
        error: 0.001
      - quantile: 0.95
        error: 0.01
      - quantile: 0.9
        error: 0.05
      - quantile: 0.5
        error: 0.005
    max_age: 30s
    age_buckets: 3
    buf_cap: 1000

默认分位数为0.99、0.9和0.5。

默认summary时长为10分钟,默认桶数为5,默认缓冲区大小为500。另请参见https://godoc.org/github.com/prometheus/client_golang/prometheus#SummaryOpts%E3%80%82%60max_summary_age%60%E5%AF%B9%E5%BA%94%60SummaryOptions.MaxAge%60%EF%BC%8C%60summary_age_buckets%60%E5%AF%B9%E5%BA%94%60SummaryOptions.AgeBuckets%60%EF%BC%8C%60stream_buffer_size%60%E5%AF%B9%E5%BA%94%60SummaryOptions.BufCap%60%E3%80%82

在配置中,还可以将observer类型设置为"histogram"。例如,为单个计时器指标设置observer类型:

yaml
mappings:
- match: "test.timing.*.*.*"
  observer_type: histogram
  histogram_options:
    buckets: [ 0.01, 0.025, 0.05, 0.1 ]
    native_histogram_bucket_factor: 1.1
    native_histogram_max_buckets: 256
  name: "my_timer"
  labels:
    provider: "$2"
    outcome: "$3"
    job: "${1}_server"

如果未设置,直方图桶使用默认的https://godoc.org/github.com/prometheus/client_golang/prometheus#pkg-variables%EF%BC%9A%60%5B.005, .01, .025, .05, .1, .25, .5, 1, 2.5, 5, 10]。会自动添加+Inf。如果Prometheus服务器启用了原生直方图抓取(v2.40.0+),可以设置native_histogram_bucket_factor配置稀疏直方图桶的精度。更多信息参见原始https://github.com/prometheus/client_golang/blob/449b46435075e6e069e05af920fe028b941033cf/prometheus/histogram.go#L399-L430。还可以使用native_histogram_max_buckets`配置最大桶数,避免直方图在内存中过大,更多信息参见原始https://github.com/prometheus/client_golang/blob/449b46435075e6e069e05af920fe028b941033cf/prometheus/histogram.go#L443-L467%E3%80%82

observer_type仅在statsd指标类型为计时器、直方图或分布时使用。buckets仅在statsd指标类型为这些类型且observer_type设置为histogram时使用。

计时器将以ms类型接收。Statsd计时器数据以毫秒为单位传输,而Prometheus期望单位为秒。exporter会将所有计时器观测值转换为秒。

直方图和分布事件(h和d指标类型)不受单位转换影响。

DogStatsD客户端行为

timed()装饰器

DogStatsD客户端的timed装饰器以秒为单位发送指标,但使用ms类型。设置use_ms=True以发送正确的单位。

正则表达式匹配

使用YAML配置时,另一个功能是能够使用原始正则表达式定义匹配,而不是默认的glob风格匹配。这可以从命名不佳的statsd指标中提取结构化数据,并允许更精确地定位匹配规则。如果未指定match_type参数,默认值为glob:

yaml
mappings:
- match: "(.*)\\.(.*)--(.*)\\.status\\.(.*)\\.count"
  match_type: regex
  name: "request_total"
  labels:
    hostname: "$1"
    exec: "$2"
    protocol: "$3"
    code: "$4"

全局默认值

还可以为observer类型、直方图选项、summary选项和匹配类型设置默认值。所有未定义这些值的映射将使用默认值。

defaults中唯一可配置的选项是glob_disable_ordering,省略时为false。将其设置为true后,glob匹配类型将不考虑映射规则文件中规则的顺序,始终将*视为比具体字符串优先级低。

在默认值中设置buckets或quantiles已弃用,建议使用histogram_options和summary_options,它们将覆盖弃

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 statsd-exporter 镜像标签

docker pull docker.xuanyuan.run/prom/statsd-exporter:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull prom/statsd-exporter:<标签>

更多 statsd-exporter 镜像推荐

bitnami/statsd-exporter logo

bitnami/statsd-exporter

Bitnami Secure Images(VMware Tanzu)
Bitnami安全镜像,用于statsd-exporter,提供StatsD指标到Prometheus格式的转换,支持安全可靠的指标收集与监控。
1万+ 次下载
8 个月前更新
kong/statsd-exporter logo

kong/statsd-exporter

kong
暂无描述
2.4千+ 次下载
4 年前更新
bitnamilegacy/statsd-exporter logo

bitnamilegacy/statsd-exporter

bitnamilegacy
Bitnami旧版镜像(不再更新)
3.4千+ 次下载
8 个月前更新
ibmcom/statsd-exporter logo

ibmcom/statsd-exporter

ibmcom
暂无描述
1.8千+ 次下载
8 年前更新
harness/statsd-exporter logo

harness/statsd-exporter

harness
https://harness.atlassian.net/browse/SECENG-3804
1.5千+ 次下载
2 个月前更新

查看更多 statsd-exporter 相关镜像

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

Docker 配置

登录仓库拉取

通过 Docker 登录认证访问私有仓库

专属域名拉取

无需登录使用专属域名

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

Dev Containers

VS Code Dev Containers 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

Harbor 镜像源配置

Harbor Proxy Repository 对接专属域名

Portainer 镜像源配置

Portainer Registries 加速拉取

Nexus 镜像源配置

Nexus3 Docker Proxy 内网缓存

系统配置

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

MacOS OrbStack

MacOS OrbStack 容器配置

Docker Compose

Docker Compose 项目配置

NAS 设备

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

极空间

极空间 NAS 系统配置服务

网络设备

爱快路由

爱快 iKuai 路由系统配置

宝塔面板

在宝塔面板一键配置镜像

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

使用与功能问题

配置了专属域名后,docker search 为什么会报错?

docker search 限制

Docker Hub 上有的镜像,为什么在轩辕镜像网站搜不到?

站内搜不到镜像

机器不能直连外网时,怎么用 docker save / load 迁镜像?

离线 save/load

docker pull 拉插件报错(plugin v1+json)怎么办?

插件要用 plugin install

WSL 里 Docker 拉镜像特别慢,怎么排查和优化?

WSL 拉取慢

轩辕镜像安全吗?如何用 digest 校验镜像没被篡改?

安全与 digest

第一次用轩辕镜像拉 Docker 镜像,要怎么登录和配置?

新手拉取配置

轩辕镜像合规吗?轩辕镜像的合规是怎么做的?

镜像合规机制

错误码与失败问题

docker pull 提示 manifest unknown 怎么办?

manifest unknown

docker pull 提示 no matching manifest 怎么办?

no matching manifest(架构)

镜像已拉取完成,却提示 invalid tar header 或 failed to register layer 怎么办?

invalid tar header(解压)

Docker pull 时 HTTPS / TLS 证书验证失败怎么办?

TLS 证书失败

Docker pull 时 DNS 解析超时或连不上仓库怎么办?

DNS 超时

docker 无法连接轩辕镜像域名怎么办?

域名连通性排查

Docker 拉取出现 410 Gone 怎么办?

410 Gone 排查

出现 402 或「流量用尽」提示怎么办?

402 与流量用尽

Docker 拉取提示 UNAUTHORIZED(401)怎么办?

401 认证失败

遇到 429 Too Many Requests(请求太频繁)怎么办?

429 限流

docker login 提示 Cannot autolaunch D-Bus,还算登录成功吗?

D-Bus 凭证提示

为什么会出现「单层超过 20GB」或 413,无法加速拉取?

413 与超大单层

账号 / 计费 / 权限

轩辕镜像免费版和专业版有什么区别?

免费版与专业版区别

轩辕镜像支持哪些 Docker 镜像仓库?

支持的镜像仓库

镜像拉取失败还会不会扣流量?

失败是否计费

麒麟 V10 / 统信 UOS 提示 KYSEC 权限不够怎么办?

KYSEC 拦截脚本

如何在轩辕镜像申请开具发票?

申请开票

怎么修改轩辕镜像的网站登录和仓库登录密码?

修改登录密码

如何注销轩辕镜像账户?要注意什么?

注销账户

配置与原理类

写了 registry-mirrors,为什么还是走官方或仍然报错?

mirrors 不生效

怎么用 docker tag 去掉镜像名里的轩辕域名前缀?

去掉域名前缀

如何拉取指定 CPU 架构的镜像(如 ARM64、AMD64)?

指定架构拉取

用轩辕镜像拉镜像时快时慢,常见原因有哪些?

拉取速度原因

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
prom/statsd-exporter
博客Docker 镜像公告与技术博客
热门查看热门 Docker 镜像推荐
安装一键安装 Docker 并配置镜像源
镜像拉取问题咨询请 提交工单,官方技术交流群:1072982923。轩辕镜像所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
镜像拉取问题咨询请提交工单,官方技术交流群:。轩辕镜像所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
商务合作:点击复制邮箱
©2024-2026 源码跳动
商务合作:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.