You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不修改上游的情况下调整victoria-metrics-k8s-stack的Grafana查询?

无需修改上游Helm图表,为K8s栈组件查询添加全局过滤器的方案

问题原因

你之前在Grafana数据源配置中使用query_params添加参数的方式无效,是因为该配置仅为数据源的HTTP请求添加URL参数,而VictoriaMetrics(兼容Prometheus)不会将这类URL参数解析为PromQL的标签过滤条件。

可行解决方案

以下两种方案均无需修改上游Helm图表,仅需在自定义values.yaml中配置即可,不影响后续版本升级:

方案1:Grafana侧全局注入查询过滤

利用Grafana Prometheus数据源的queryPrefix参数,自动为所有查询添加标签过滤:
在你的Helm values.yaml中覆盖Grafana数据源配置:

grafana:
  datasources:
    datasources.yaml: |-
      apiVersion: 1
      datasources:
{{- if or .Values.vmsingle.enabled  .Values.vmcluster.enabled }}
      - name: VictoriaMetrics
        type: prometheus
        url: {{ include "victoria-metrics-k8s-stack.vmSelectEndpoint" . }}
        access: proxy
        isDefault: true
        jsonData:
          queryPrefix: '{product_line="customer"} '
{{- end }}

该配置会让Grafana自动在每个PromQL查询前拼接标签过滤条件,等价于为所有指标加上product_line="customer"的过滤规则,无需修改任何仪表盘。

方案2:VictoriaMetrics侧强制全局过滤

通过VictoriaMetrics的启动参数,强制为所有查询添加指定标签过滤,该方案对所有客户端(不限于Grafana)生效:

  • 单实例vmsingle配置:
vmsingle:
  extraArgs:
    search.additional.label: "product_line=customer"
  • 集群版vmcluster配置:
vmcluster:
  vmselect:
    extraArgs:
      search.additional.label: "product_line=customer"

配置完成后,VictoriaMetrics会自动为所有传入的查询追加product_line="customer"的过滤条件,无需调整Grafana配置。

内容的提问来源于stack exchange,提问作者Prarthi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 04:23:13