azure-monitoring-KQL
Azure monitor—Log Analystics
VM’Extensions— OmsAgentForLinux
扩展介绍
基础语法
语法
CustomLog_CL | where RawData matches regex “System warning”
- 区分大小写
- 语法来源
来自 Azure Data Explorer ,但又不完全相同 找不同
比如,不支持alis:不支持查询参数:1
2alias database["wiki"] = cluster("https://somecluster.kusto.windows.net:443").database("somedatabase");
database("wiki").PageViews | count1
2declare query_parameters(UserName:string, Password:string);
print n=UserName, p=hash(Password) - 表结构说明
azure提供了默认表结构字典,看这里
quick start
select
1 | Event | search "error" |
获取某个表内容的任意10行
search in (Heartbeat) “Linux”
| take 10
注:每次查询后的行数限制在30,000行
获取前10行 用 top
排序用sort
SecurityEvent | sort by TimeGenerated desc
也有order by
1 | let t1 = datatable(key:long, value:string,order1:string) |
少不了时间
过去2分钟内:
1 | Heartbeat |
某个时间内:
1 | where TimeGenerated between(datetime("2020-05-15 22:46:42") .. now()) |
获取在value范围内,最接近value的,roundTo的整数倍值
1 | bin(value, roundTo ) |
使用以下查询获取过去半小时内每 5 分钟发生的事件数:
每5m一组,统计每组event的总数 count()
1 | Perf |
聚合summarize
Summarize by 类似 distinct
1 | let t1 = datatable(key:long, value:string,order1:string) |
Example:
1 | Heartbeat //表 |
类型强制转换
SecurityEvent | where toint(Level) >= 10
Example:
print toint(“123”)== 123s 结果为false
print tobool(“true”) == true 结果为true
join
去重:
不去重:
leftouter 左外部连接,同sql表查询
leftanti 左反连接 ,仅列出在右表中没有列出的行
leftsemi 结果中包含左表中具有右表匹配项的记录