如何在 KQL 查询的 `summarize` 中使用 `sum`?

How to use `sum` within `summarize` in a KQL query?

我正在记录 Azure 存储帐户。应用诊断设置并使用 Log Analytics 编写 KQL 查询。

我的目标是确定给定 fileSize (RequestBodySize) 的 GetBlob 请求 (OperationName) 的数量。

挑战在于我需要对每个文件的所有 GetBlob 操作 sum RequestBodySize。我不确定如何在 summarize.

中嵌套 sum

目前已尝试:

StorageBlobLogs
| where TimeGenerated >= ago(5h)
  and AccountName == 'storageAccount'
  and OperationName  == 'GetBlob'
| summarize count() by Uri, fileSize = format_bytes(RequestBodySize)
| render scatterchart 

结果:

也试过: fileSize = format_bytes(sum(RequestBodySize)) 但是这个出错了。

有什么想法吗?

编辑 1: 测试@Yoni 的解决方案。

编辑 2:

I need to sum the RequestBodySize for all GetBlob operations on each file

如果我理解正确你的问题,你可以试试这个:

StorageBlobLogs
| where TimeGenerated >= ago(5h)
  and AccountName == 'storageAccount'
  and OperationName  == 'GetBlob'
| summarize count(), total_size = format_bytes(sum(RequestBodySize)) by Uri

下面是一个使用虚拟数据集的示例:

datatable(Url:string, ResponseBodySize:long)
[
    "https://something1", 33554432,
    "https://something3", 12341234,
    "https://something1", 33554432,
    "https://something2", 12345678,
    "https://something2", 98765432,
]
| summarize count(), total_size = format_bytes(sum(ResponseBodySize)) by Url
Url count_ total_size
https://something1 2 64 MB
https://something3 1 12 MB
https://something2 2 106 MB