如何在Grafana变量查询中使用group_left关联查询
解决Grafana中无法在
label_values里使用group_left的替代方案 方法1:通过指标关联运算传递标签后提取
既然label_values内部不支持group_left,可以先在外部完成两个指标的关联,把domain标签传递到weblogic_jvm_uptime的时间序列上,再用label_values提取server标签。推荐用乘法运算(避免加法可能带来的数值异常,只要两个指标存在对应instance的样本就会保留关联结果):
label_values( weblogic_jvm_uptime * on(instance) group_left(domain) weblogic_id{domain="domain_name"}, server )
这个语句会先把符合domain="domain_name"的weblogic_id指标,通过instance标签关联到weblogic_jvm_uptime上,把domain标签附加过去,之后label_values就能从关联后的序列里提取对应的server值。
方法2:通过Grafana变量分步筛选
如果是在Grafana变量配置里实现这个逻辑,可以拆成两步操作:
- 第一步创建变量
target_instances,查询语句:
该变量会先获取指定domain下的所有instance列表。label_values(weblogic_id{domain="domain_name"}, instance) - 第二步创建变量
target_servers,查询语句:
用第一步得到的instance变量过滤label_values(weblogic_jvm_uptime{instance=~"$target_instances"}, server)weblogic_jvm_uptime,就能得到对应domain下的所有server值。
内容的提问来源于stack exchange,提问作者Nirzak
相关产品推荐
相关产品推荐

