grafana - 如何将一个变量的值映射到 Grafana 中的另一个变量?

标签 grafana prometheus

在我的 Grafana 仪表板(以 Prometheus 作为数据源)中,我有一个自定义 $tier变量,它允许用户从下拉列表中选择层。它被定义为:

Values separated by comma: production, stage, development

我需要通过包含缩短版本的层名称的标签来过滤 Prometheus 指标:
  • “foo-dev”
  • "foo-stage"
  • "foo-prod"

  • 我在想我会创建一个隐藏变量 $shortened_tier所以我可以在我的查询过滤器中使用它,就像这样:
    my_label=~"foo-$shortened_tier"
    

    我想根据 $tier 的值来定义它:
  • “开发”->“开发”
  • “舞台”->“舞台”
  • “生产”->“生产”

  • 我怎么做?

    最佳答案

    我想出了一个解决方法,但它是suuuuper hacky:

    Name: shortened_tier
    Type: Query
    Data Source: Prometheus
    Query: label_values(up{env="$tier"}, env)
    Regex: (dev|stage|prod).*
    

    我想做的只是Query: $tier ,但由于 Grafana 不允许我这样做,我不得不使用完全不同的指标 ( up ),我可以在其中传入 $tier并返回与字符串相同的确切值。然后我使用正则表达式来查找 dev|stage|prod在字符串的开头,捕获该部分,然后丢弃其余部分。

    这具有我正在寻找的结果,值为 $shortened_tier根据选择并分配给 $tier 的值动态更改.但是伙计,我希望 Grafana 有一个不那么老套的方法来做到这一点。

    关于grafana - 如何将一个变量的值映射到 Grafana 中的另一个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58347566/

    相关文章:

    grafana - 有没有人尝试使用 Snowflake 作为 Grafana 数据源?

    grafana - 如何设置 Grafana 以便无需密码即可查看仪表板

    prometheus - "instrument"在普罗米修斯中究竟是什么意思

    go - 普罗米修斯直方图矢量 : All buckets fill equally?

    grafana - Grafana 中滑动窗口上的 Prometheus 正常运行时间或 SLA 百分比

    elasticsearch - Grafana中没有提供带有Elasticsearch数据源的指标

    amazon-web-services - 无法访问我在 AWS Elastic beanstalk 上的 docker 中部署的 prometheus 和 grafana

    linux - 无法启动服务 prometheus : oci runtime error: container_linux. go:235: 启动容器进程导致 "container init exited prematurely"

    azure - VictoriaMetrics - 在 azure_sd_config 中传递过滤器,如 ec2_sd_config

    python - 使用 python 读取 Prometheus 指标