如何从Azure Monitor的subscriptions()返回值中提取环境标识用于后续变量?
在Azure Monitor中提取订阅友好名称的特定部分
完全可行,根据使用场景不同,有两种直接的处理方式:
一、Grafana变量场景(提取后作为变量选项)
如果是在Grafana里配置Azure Monitor数据源的变量,想要把订阅友好名称里的prod/uat/dev作为变量的显示标签或值,按以下步骤操作:
- 新建变量,类型选
Query,数据源指定你的Azure Monitor实例 - 在Query输入框填
subscriptions(),此时变量会返回类似"app-prod,0000-guid-0000"的字符串列表 - 在Regex字段填入正则表达式:
app-(.*),.* - 在变量的选项设置里:
- 若要让变量显示
prod/uat/dev,把Label设为$1 - 若要把
prod/uat/dev作为变量值,把Value也设为$1;如果仍需用GUID作为值,保留默认的$__value即可
- 若要让变量显示
二、Kusto查询场景(在查询中直接提取使用)
如果是在Azure Monitor的Kusto查询里需要用到这部分标识,可以通过字符串拆分函数直接处理订阅名称:
// 以AzureActivity表为例,也可替换为其他目标表 AzureActivity | extend Env = split(SubscriptionName, "-")[1] | distinct Env
这段查询会从订阅名称中拆分出prod/uat/dev并去重,直接得到你需要的环境标识。
内容的提问来源于stack exchange,提问作者mattb
相关产品推荐
相关产品推荐

