【问题标题】:Filter by timestamp query on AWS Cloudwatch Logs Insights在 AWS Cloudwatch Logs Insights 上按时间戳查询过滤
【发布时间】:2020-06-27 16:01:03
【问题描述】:

我正在尝试使用 AWS Cloudwatch Logs 洞察力来搜索我们的 lambda 函数的一些非常旧的日志。我正在阅读this guide on AWS docs,但没有记录如何按时间戳过滤。我尝试了以下方法:

fields @timestamp, @message
| filter @timestamp > '2019-12-04T18:09:10.000+01:00'
| limit 200
| sort @timestamp desc

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

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

有谁知道我可以如何按时间戳过滤日志,或者这是否可以通过 Cloudwatch 日志洞察来实现?

谢谢!

【问题讨论】:

  • 我也有同样的错误,我也需要知道

标签: amazon-web-services amazon-cloudwatch amazon-cloudwatchlogs aws-cloudwatch-log-insights


【解决方案1】:

使用 Logs Insights 控制台右上角的范围选择器或 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

【讨论】:

  • 天哪,我什至没有在右上角看到这个过滤器!谢谢!我也尝试过millis过滤器,它可以工作。我在 AWS 文档中的任何地方都没有看到这一点。不管怎样,你的回答帮了很大的忙,谢谢!
  • date -u '+%s%3N' -d 'TZ="UTC" 2020-01-05 00:00:00.000'。只需将 TZ 更改为您的时区特定时间
  • 有时您仍然看不到预期的输出。只需添加| limit 10000,即可将输出行数增加到10,000。
  • 如果您使用 Go 的 Incite 库与 CWL Insights 交互,请使用 QuerySpec 结构中的 StartEnd 字段。
猜你喜欢
  • 1970-01-01
  • 2021-12-01
  • 2021-07-04
  • 1970-01-01
  • 2020-11-20
  • 2019-02-20
  • 1970-01-01
  • 1970-01-01
  • 2018-07-25
相关资源
最近更新 更多