KQL To Pull LogType, Resourcename, LogsVolume From LogAnalytics Workspace

union withsource=LogTable *
| where TimeGenerated > ago(60d)
| extend ResourceId = tostring(parse_json(tostring(_ResourceId)))
| extend ResourceName = tostring(split(ResourceId, “/”)[8])
| extend ResourceType = case(
LogTable in (“Heartbeat”, “Perf”, “InsightsMetrics”, “Syslog”, “SecurityEvent”, “VMConnection”, “Update”), “Virtual Machine”,
LogTable startswith “App”, “Application”,
LogTable in (“CommonSecurityLog”, “AzureDiagnostics”), “Firewall”,
“Other”
)
| summarize
LogCount = count(),
IngestedVolumeMB = sum(_BilledSize) / 1024.0,
TotalBilledVolumeMB = sum(_BilledSize) / 1024.0 // Same as IngestedVolumeMB unless raw size is available
by LogTable, ResourceType, ResourceName
| extend
IngestedVolumeGB = round(IngestedVolumeMB / 1024.0, 2),
TotalBilledVolumeGB = round(TotalBilledVolumeMB / 1024.0, 2)
| project ResourceType, ResourceName, LogType = LogTable, IngestedVolumeGB, TotalBilledVolumeGB
| order by ResourceType, ResourceName

Sample Output

ResourceTypeResourceNameLogTypeIngestedVolumeGBTotalBilledVolumeGB
Virtual Machinevm-prod-01Heartbeat1.251.25
Virtual Machinevm-prod-01Perf3.403.40
Applicationapp-service-01AppRequests2.102.10
Firewallfw-eastus-01CommonSecurityLog5.755.75
Firewallfw-eastus-01AzureDiagnostics4.204.20
Virtual Machinevm-dev-02Syslog0.850.85
Otherunknown-resourceUnknownLogTable0.10

Leave a comment