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

Grafana中如何基于容器变量为api_usage_total设置endpoint_name标签值?

解决方案

核心思路

利用Grafana的**面板重复(Repeat)**功能关联Container变量,结合变量字符串替换或映射变量,实现容器到gRPC服务名的对应,从而生成正确的endpoint_name正则匹配规则。


方法一:直接使用变量字符串替换(无需新增变量)

  1. 开启面板重复功能
    新增api_usage_total面板后,进入面板设置的**重复(Repeat)**选项卡:

    • 选择重复目标为Container变量
    • 勾选对应重复方向(根据布局需求选横向/纵向)
      多选容器时,会自动生成对应数量的独立面板,每个面板对应单个容器。
  2. 编写带变量替换的PromQL查询
    在面板的查询编辑器中输入以下表达式:

    api_usage_total{endpoint_name=~"my.grpc.service.servers.v1.${Container/A-container/A/}${Container/B-server/B/}${Container/C-service-server/C/}\\.+"}
    

    替换规则说明:

    • ${Container/A-container/A/}:将当前面板对应的单个容器名A-container替换为服务名A
    • ${Container/B-server/B/}:将B-server替换为B
    • ${Container/C-service-server/C/}:将C-service-server替换为C
    • 最终拼接\.+匹配该服务下所有CRUD端点

方法二:创建容器-服务名映射变量(更直观)

  1. 新增映射变量
    进入仪表盘变量设置,新增名为ServiceName的变量:

    • 类型选择自定义
    • 输入以下键值对格式的选项:
      A-container : A
      B-server : B
      C-service-server : C
      
    • 高级设置:勾选“多选”,设置“值格式”为“键值对”,并添加依赖变量Container(确保ServiceName随Container选择自动匹配)
  2. 配置面板重复与查询
    同样开启面板的重复功能(目标为Container),然后在查询编辑器中使用简化后的表达式:

    api_usage_total{endpoint_name=~"my.grpc.service.servers.v1.${ServiceName}\\.+"}
    

验证效果

  • 选择单个容器(如A-container)时,面板会查询endpoint_name匹配my.grpc.service.servers.v1.A\.+的指标
  • 选择多个容器(如A-container和C-service-server)时,会自动生成两个面板,分别对应各自服务的端点指标

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 04:06:20