在 AWS Cloudwatch Logs Insights 上按时间戳查询过滤

bab*_*s21 22 amazon-web-services amazon-cloudwatch amazon-cloudwatchlogs aws-cloudwatch-log-insights

我正在尝试使用 AWS Cloudwatch Logs 洞察力来搜索我们 lambda 函数的一些相当旧的日志。我正在AWS docs 上阅读本指南,但没有任何地方记录如何按时间戳过滤。我尝试了以下方法:

fields @timestamp, @message
| filter @timestamp > '2019-12-04T18:09:10.000+01:00'
| limit 200
| sort @timestamp desc
Run Code Online (Sandbox Code Playgroud)

但不起作用(返回 0 个结果)。

最初,当我自 2015以来遇到此功能请求时,我试图找出是否有办法按时间戳列(而不是默认的日志组名称)对日志组进行排序- 这在eu-west-1 他们建议使用新的日志见解,但我无法完成这项工作。

有谁知道我如何按时间戳过滤日志,或者是否可以使用 Cloudwatch 日志见解来过滤日志?

谢谢!

Unk*_*nts 35

使用 Logs Insights Console 右上角的范围选择器或StartQuery API上的startTimeendTime参数完成时间戳过滤。

您可以使用以毫秒为单位的时间戳值进行进一步过滤(请参见下面的示例),但整体范围仍需要比您在查询本身中使用的范围更广。

fields @timestamp, @message
| fields tomillis(@timestamp) as millis
| filter millis > 1578182400000  # Sunday, 5. January 2020 0:00:00
     and millis < 1578268800000  # Sunday, 6. January 2020 0:00:00
Run Code Online (Sandbox Code Playgroud)

  • `日期 -u '+%s%3N' -d 'TZ="UTC" 2020-01-05 00:00:00.000'`。只需将“TZ”更改为您的时区特定时间 (4认同)

shm*_*els 7

您可以使用@timestamp它,只需要以秒为单位的 UNIX 时间戳,而不是从纪元开始的毫秒。

像这样@timestamp > 1575479350

请参阅此处https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html

虽然文档没有提到你可以这样做,但我测试了它并且它有效。

关于您尝试使用的 ISO 字符串,文档中有一条注释...

在此输入图像描述