【问题标题】:Grafana Legend format :9100 removalGrafana Legend 格式:9100 移除
【发布时间】:2018-04-27 20:35:09
【问题描述】:

我的指标末尾显示“:9100”。我在公司使用普罗米修斯数据源,无法更改。有没有人想出如何删除这个?我在想可能是模板或正则表达式,但我还没有成功。

配置:

图例格式 = {{主机名}}

结果 = myhostname.mydomain.com:9100

【问题讨论】:

    标签: grafana prometheus grafana-templating


    【解决方案1】:

    据我所知,目前无法在 Grafana 中格式化图例(有一个开放的 PR),但是当您使用 Prometheus 时,您可以使用它的label_replace() 函数,例如:

    label_replace(my_vector, "short_hostname", "$1", "hostname", "(.*):.*")
    

    这应该给你:

    Legend Format = {{short_hostname}}
    
    Result = myhostname.mydomain.com
    

    See the docs here - label_replace

    【讨论】:

    • 我应该在哪里输入这个?我尝试在 Legend Format 编辑框中,并尝试定义一个变量。我也想这样做,但我无法从您的评论中弄清楚如何。谢谢。
    • 我找到了上述问题的答案。 label_replace() 函数包装了原始 PromQL 查询,这里称为“my_vector”。此示例翻译“主机名”变量并创建一个名为“short_hostname”的新变量。然后在图例格式中,您可以指定“{{short_hostname}}”来获取翻译后的值,而不需要“:9100”。谢谢!
    【解决方案2】:

    在 Grafana 8.0 中,有一个 Transform 菜单可以用来删除文本。我希望它仍然与这个问题相关。

    在仪表板上,选择面板 > 编辑。图表下方有 3 个选项卡,其中之一是转换。选择 Transform > Add Transformation > Rename by Regex,用这些值填写表单:

    • 匹配:":9100"(不带引号)
    • 替换:保持为空

    详情请参考link

    【讨论】:

      【解决方案3】:

      我假设您在 Prometheus 配置文件中静态提及目标如下:

      - job_name: "node_exporter"
        static_configs:
          - targets: ['localhost:9100']
      

      在这种情况下,如果您在 grafana 中看到 {{instance_name}},它会为您提供与您的目标名称相同的 ['localhost:9100']。这是因为它使用static_configs 为您的指标提供标签。

      为了从标签中删除:9100,您可以使用服务发现来识别目标。

      例如:ec2_sd_config 标签将来自 AWS EC2 仪表板中提到的标签,file_sd_config 您可以提供 json 或 yaml 格式的目标及其标签等。

      详情请参考link

      希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-20
        • 2022-01-09
        • 1970-01-01
        • 1970-01-01
        • 2017-09-11
        • 2011-07-27
        • 2022-11-22
        • 2022-12-11
        相关资源
        最近更新 更多