问题描述
Azure Log Analytics Workspace作为Azure云上统一存储日志的服务,可以由多个服务直接发送日志到Log A Workspace。如 Application Insights, Azure Diagnostic Settings 等。
只是,当数据都收集到同一个Workspace后,如何来分别是那些资源发送的日志呢?分别占用了多少的存储总量呢?
问题解答
在Workspace的Table中,有一个Usage表可以查看到该工作区中每一个表的数据用量,并使用图标展示:
Usage | where TimeGenerated > ago(32d) | where StartTime >= startofday(ago(31d)) and EndTime < startofday(now()) | where IsBillable == true | summarize BillableDataGB = sum(Quantity) / 1000. by bin(StartTime, 1d), DataType | render columnchart
但是,这只是一个总量的分布。如何查看不同数据来源的占比情况呢?
经过调查:
目前,没有一个直接的办法来查看不同来源数据量的占比情况。
但是,可以通过对每一个表中数据的分组统计同一个来源( _ResourceId 或 AppRoleName )的数据总数占比情况,进行转换比对每一个数据源的占比情况。
例如:App Requests数据量总量为占比2GB, Application Insights 1的count为30万,其它为70万。那么可以推断Application Insights 1的日志存储占用了大约0.6个GB。
union AppAvailabilityResults, AppDependencies, AppExceptions, AppMetrics, AppPerformanceCounters, AppRequests, AppSystemEvents, AppTraces
| where TimeGenerated > ago(32d)
| summarize count() by AppRoleName
| render piechart
(以上方法,供你参考)
参考资料
在 Azure Monitor 中分析 Log Analytics 工作区的使用情况 : https://learn.microsoft.com/zh-cn/azure/azure-monitor/logs/analyze-usage#querying-data-volumes-from-the-usage-table