如何在Azure Log Analytics中用KQL查询获取订阅名与资源组名
修改后的KQL查询(含订阅名称与资源组名称)
let start_time=startofday(datetime("2019-03-01 00:00:00 AM")); let end_time=endofday(datetime("2019-03-31 11:59:59 PM")); Heartbeat | where TimeGenerated > start_time and TimeGenerated < end_time // 首次分组时携带订阅、资源组字段,保留关联关系 | summarize heartbeat_per_hour=count() by bin_at(TimeGenerated, 1h, start_time), Computer, SubscriptionName, ResourceGroup | extend available_per_hour=iff(heartbeat_per_hour>0, true, false) // 最终统计时继续携带两个字段,确保结果包含所需信息 | summarize total_available_hours=countif(available_per_hour==true) by Computer, SubscriptionName, ResourceGroup | extend total_number_of_buckets=round((end_time-start_time)/1h) | extend availability_rate=total_available_hours*100/total_number_of_buckets // 可选:调整列顺序让结果更直观 | project SubscriptionName, ResourceGroup, Computer, total_available_hours, total_number_of_buckets, availability_rate
核心说明:
- Azure Log Analytics的
Heartbeat表本身自带SubscriptionName和ResourceGroup字段,无需额外关联其他数据源 - 两次
summarize操作都必须包含这两个字段,否则会因聚合分组丢失VM对应的订阅/资源组关联信息 - 末尾的
project语句用于调整列的展示顺序,可根据实际需求保留或删除
内容的提问来源于stack exchange,提问作者Giridhar Kumar Jha
相关产品推荐
相关产品推荐

