转义 Prometheus 指标名称中的特殊字符?

问题描述 投票:0回答:2

从遗留应用程序公开 Prometheus 指标时,我发现某些指标包含无效字符,例如 my.metric、my-metric、my:metric

我可以转义这些字符,而不是更改旧应用程序中的指标名称(它很大): my.metric、my-metric、my:metric

或者,我可以将这些名称括在(单引号或双引号)中: “my.metric”、“my-metric”、“my:metric” 'my.metric'、'my-metric'、'my:metric'

这些可以与现有的 Prometheus 功能很好地配合吗? 上游/实现对其中任何一个或两个的支持可以吗?

escaping special-characters metrics prometheus
2个回答
0
投票

引号对于 Prometheus 指标名称也不是有效字符。

处理此问题的标准方法是将无效字符转换为下划线:https://prometheus.io/docs/instrumenting/writing_exporters/#naming


0
投票

Prometheus 只允许指标名称中包含预定义的字符集,这些字符集与以下 regexp 匹配:

[a-zA-Z0-9:_]
。其他类似 Prometheus 的系统(例如 VictoriaMetrics)允许在指标名称中使用其他字符。在这种情况下,存在以下选项用于转义查询中的特殊字符:

  • 根据
    时间序列选择器文档
    __name__伪标签上使用过滤器。例如,
    {__name__="metric-name.with special{chars"}
    将选择名称为
    metric-name.with special{chars
    的时间序列
  • 在指标名称中添加反斜杠的特殊字符。例如,
    metric\-name\.with\ special\{chars
© www.soinside.com 2019 - 2024. All rights reserved.