如何编写Kusto查询按资产聚类应用连接数异常时段
解决方案:用Kusto按资产聚类统计异常连接数时段
完全可行,以下是单条Kusto查询实现方案,自动按资产聚类,输出你需要的字段:
// 根据实际数据源调整表名、字段名 metrics | where timestamp between (ago(7d) .. now()) // 按需调整时间范围 | where name == "openConnections" // 替换为实际的连接数指标名称 | extend assetId = tostring(customDimensions["asset-id"]) // 从自定义维度提取资产ID,按需调整 | extend openConnections = toint(value) | where openConnections in (0, 1) // 筛选异常连接数 | sort by assetId, timestamp asc // 识别连续的同资产、同连接数时段(5分钟间隔可根据数据上报频率调整) | extend sessionId = row_window_session( timestamp, 5m, 5m, prev(openConnections) != openConnections or prev(assetId) != assetId ) // 聚合每个时段的起止时间 | summarize startTime = min(timestamp), endTime = max(timestamp), openConnections = any(openConnections) by assetId, sessionId | project assetId, openConnections, startTime, endTime | sort by assetId, startTime asc
关键逻辑说明:
- 先筛选出时间范围内、连接数为0或1的异常记录,提取资产ID和连接数数值
- 用
row_window_session函数将同一资产、同一连接数且时间连续的记录归为同一个会话(这里设置5分钟间隔:若两条记录间隔超过5分钟,视为不同时段,可根据你的数据上报频率修改) - 最后按资产和会话分组,计算每个异常时段的起止时间,输出目标字段
如果你的数据存在customEvents表中,只需调整表名和字段提取逻辑(比如从customDimensions或properties中取连接数和资产ID)即可。
内容的提问来源于stack exchange,提问作者Pelle
相关产品推荐
相关产品推荐

