如何在 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 的解决方案。
- 这里是
RequestBodySize
没有总结的例子:
- 执行汇总查询(
| summarize count() by Uri, fileSize = format_bytes(RequestBodySize)
)时,结果为0 bytes
。
- 虽然很明显对给定的 Uri 有多个调用,但总和似乎不起作用。
编辑 2:
- 是的...支付验证字段名称的费用!没有可用的
RequestBodySize
字段,只有 ResponseBodySize
。使用正确的值有效(想象一下!)。
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
我正在记录 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 的解决方案。
- 这里是
RequestBodySize
没有总结的例子:
- 执行汇总查询(
| summarize count() by Uri, fileSize = format_bytes(RequestBodySize)
)时,结果为0 bytes
。 - 虽然很明显对给定的 Uri 有多个调用,但总和似乎不起作用。
编辑 2:
- 是的...支付验证字段名称的费用!没有可用的
RequestBodySize
字段,只有ResponseBodySize
。使用正确的值有效(想象一下!)。
I need to sum the
RequestBodySize
for allGetBlob
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 |