CloudWatch Logs Insights:按时间范围聚合

Jay*_*ore 6 amazon-web-services amazon-cloudwatchlogs

我是 CloudWatch Logs Insights 的新手,我不知道如何按 3 列的时间范围聚合数据。

我要解析的日志文件是 json 格式:

{'ts': '12:01:00', 'method':'GET',  'url':'aaaa'}
{'ts': '12:02:00', 'method':'GET',  'url':'aaab'}
{'ts': '12:03:00', 'method':'POST', 'url':'aaac'}
{'ts': '12:04:00', 'method':'GET',  'url':'aaad'}
{'ts': '12:05:00', 'method':'POST', 'url':'aaae'}
{'ts': '12:06:00', 'method':'GET',  'url':'aaaf'}
{'ts': '12:07:00', 'method':'POST', 'url':'aaag'}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,每个事件行都是一个 POST 或 GET。每个事件也带有时间戳。

我想使用 Insights 在 500 万个窗口中可视化随时间推移的 GET 和 POST 分布。

我找不到正确的语法来在查询监视器中得到这样的结果:

# : ts       : NbGET  : NbPOST
1 : 12:00:00 : 3      : 1
3 : 12:05:00 : 1      : 2
Run Code Online (Sandbox Code Playgroud)

有了这样的结果,我就可以用两个提取的指标 'GET' 和 'POST' 绘制一个图表。

知道如何实现这一目标吗?

小智 10

这可以通过使用“统计”功能按所需时间段进行分箱来实现。对于您的示例,这大致是:

STATS count(method = "GET") as NbGET, count(method = "POST") as NbPOST BY BIN(5m)
Run Code Online (Sandbox Code Playgroud)