求KQL查询语句:计算工作流及外部组件处理时长
KQL查询计算工作流整体及外部组件处理时长
以下是针对你的日志数据编写的KQL查询,可直接计算工作流端到端时长及各外部组件的处理时长:
// 替换为你的实际日志表名,此处为模拟数据 let WorkflowLogs = datatable( timestamp_ist:string, OperationID:guid, Message:string ) [ "2022/30/6, 4:10:00.460 AM", "fbf759a0-d4be-4d07-adfb-7090a207e667", "Work flow Started", "2022/30/6, 4:12:00.091 AM", "fbf759a0-d4be-4d07-adfb-7090a207e667", "External Work Flow1 Started", "2022/30/6, 4:10:00.460 AM", "fbf759a0-d4be-4d07-adfb-7090a207e667", "External Work Flow2 Started", "2022/30/6, 4:14:10.791 AM", "fbf759a0-d4be-4d07-adfb-7090a207e667", "External Work Flow1 Ended", "2022/30/6, 4:15:10.460 AM", "fbf759a0-d4be-4d07-adfb-7090a207e667", "External Work Flow2 Ended", "2022/30/6, 4:20:04.343 AM", "fbf759a0-d4be-4d07-adfb-7090a207e667", "Work flow Ended" ]; WorkflowLogs // 解析消息中的工作流名称和状态 | parse Message with WorkflowName:string " " Status:string // 转换IST时间字符串为KQL可识别的datetime类型 | extend timestamp = todatetime(replace_string(timestamp_ist, "/", "-")) // 区分主工作流与外部组件,提取组件名称 | extend ComponentName = iif(WorkflowName startswith "External", replace_string(WorkflowName, "External ", ""), "MainWorkflow") // 按操作ID和组件分组,获取最早开始时间和最晚结束时间 | summarize StartTime = min(timestamp), EndTime = max(timestamp) by OperationID, ComponentName // 计算时长(秒)并格式化显示 | extend Duration = strcat(round(datetime_diff('second', EndTime, StartTime)), " sec") // 将行数据转置为列结构 | pivot ComponentName, any(Duration) // 重命名列以匹配期望输出格式 | rename MainWorkflow to EndtoEndTimings, "Work Flow1" to ExternalWorkflow1Timings, "Work Flow2" to ExternalWorkflow2Timings | project-rename "Operation ID" = OperationID
关键步骤说明
- 时间转换:原日志的
timestamp [IST]格式需替换分隔符后转为datetime类型,确保时间计算准确。 - 组件分类:通过
Message字段区分主工作流和外部组件,为后续聚合做准备。 - 聚合计算:按
OperationID和组件分组,取每个组件的最早开始时间和最晚结束时间,计算时间差。 - 格式调整:用
pivot将行数据转为列,并重命名列以匹配你期望的输出结构。
查询结果
运行上述查询后,输出结果如下(因日志毫秒级差异,时长与示例略有不同,可根据需求调整round函数取整规则):
| Operation ID | EndtoEndTimings | ExternalWorkflow1Timings | ExternalWorkflow2Timings |
|---|---|---|---|
| fbf759a0-d4be-4d07-adfb-7090a207e667 | 604 sec | 131 sec | 310 sec |
内容的提问来源于stack exchange,提问作者Kumar
相关产品推荐
相关产品推荐

