You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过OMS Log Analytics每日统计Azure Data Lake Store各文件夹新增XML文件数?

嘿,针对你这个每日统计ADLS各源系统文件夹新增XML文件的需求,结合你已经启用诊断日志和OMS Log Analytics的现状,我整理了几个最实用的实现方案,都是直接基于现有工具链的,不用额外加组件:

核心思路说明

你的需求本质是从ADLS的诊断日志中筛选出当日新增的XML文件事件,按源系统对应的文件夹分组统计数量——Log Analytics的Kusto查询语言(KQL)完全可以搞定这个,而且能扩展成自动化报表。

具体实现方案

方案1:直接编写KQL查询生成实时统计

这是最快速的方式,你可以直接在Log Analytics工作区的查询编辑器里运行下面的语句,根据你的ADLS版本调整:

针对ADLS Gen1的KQL查询

// 筛选当日ADLS的文件写入事件,仅保留XML文件
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.STORAGE" and OperationName == "PutBlob"
| where blob_suffix endswith ".xml"
// 限定时间范围为前一天(当日结束后统计的话用这个,若要实时看当日则换成startofday(now()))
| where TimeGenerated >= startofday(now()-1d) and TimeGenerated <= endofday(now()-1d)
// 提取源系统文件夹(根据你的路径结构调整parse规则,比如你的路径是/adls/SourceSystemA/xxx.xml,这里提取SourceSystemA)
| parse blob_uri with * "/" sourceSystemFolder "/" *
// 按文件夹分组统计新增数量
| summarize NewXMLFileCount = count() by sourceSystemFolder
| sort by NewXMLFileCount desc

针对ADLS Gen2的KQL查询(字段名有差异)

StorageBlobLogs
| where OperationName == "PutBlob"
| where BlobName endswith ".xml"
| where TimeGenerated >= startofday(now()-1d) and TimeGenerated <= endofday(now()-1d)
// 提取源系统文件夹,根据实际路径调整parse逻辑
| parse BlobName with sourceSystemFolder "/" *
| summarize NewXMLFileCount = count() by sourceSystemFolder, FileSystemName

小提示:如果你的文件夹是多级目录(比如/SourceSystemA/SubFolder1/),可以修改parse语句来提取正确的层级,比如parse BlobName with sourceSystemFolder "/" subFolder "/" *,然后按sourceSystemFolder分组即可。

方案2:创建自动化每日报表并推送

如果需要每日自动生成报表并发送给相关人员,按以下步骤操作:

  • 在Log Analytics查询编辑器中,保存上面的KQL查询为**“每日ADLS新增XML文件统计”**
  • 转到Log Analytics的**工作簿(Workbooks)**页面,新建一个空白工作簿
  • 添加一个查询组件,选择你保存的查询,设置可视化类型(比如柱状图、表格)
  • 点击工作簿右上角的计划(Schedule),配置每日凌晨1点(确保前一天的日志全部完成 ingestion)自动刷新,同时设置邮件/Teams通知,将报表发送给指定人员

方案3:配置异常警报(可选)

如果需要监控某个源系统当日没有新增XML文件的异常情况,可以基于KQL查询创建警报规则:

  • 在Log Analytics查询编辑器中,运行统计查询后,点击新建警报规则
  • 设置警报条件:比如当NewXMLFileCount等于0时触发
  • 配置通知方式(邮件、Webhook、Teams等),这样每日可以收到异常提醒,正常统计则通过工作簿报表查看
优化建议
  • 检查诊断设置:确保你在ADLS的诊断设置中勾选了StorageWrite类别,这样才能捕获到文件写入事件
  • 调整时间范围:如果你的日志 ingestion有延迟,可以把时间范围的结束时间设置为now()-2h,避免遗漏部分日志
  • 添加参数化查询:在工作簿中添加日期参数,让用户可以灵活选择任意日期范围的统计数据

内容的提问来源于stack exchange,提问作者Rag

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:32:29