如果一个日志具有特定消息,如何显示日志流中的所有 CloudWatch 日志?

Azu*_*Ice 5 amazon-web-services amazon-cloudwatch amazon-cloudwatchlogs aws-cloudwatch-log-insights

我对 AWS CloudWatch 日志查询语法很陌生,正在寻找解决我的问题的方法。

我想提出适当的 CloudWatch 查询,如果一个日志包含一个唯一值,它将显示来自特定日志流的所有日志。看起来像是根据前一个的结果执行 1 个查询。

第一个看起来像:

fields @message, @logStream 
| filter @message like /UNIQUE_VALUE/
Run Code Online (Sandbox Code Playgroud)

它产生以下形式的结果:

#  @message      @logStream
1  UNIQUE_VALUE  log_stream/1a23c4
Run Code Online (Sandbox Code Playgroud)

最后一个查询:

fields @message
| filter @logStream like "log-stream/1a23c4"
| sort asc
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想让它成为参数化的 CloudWatch 查询 - 我输入 UNIQUE_VALUE 并接收last query的输出。

Azu*_*Ice 1

对 AWS CloudWatch 日志进行一些研究后,我发现对于我的问题没有现成的解决方案。
以下是使用 SumoLogic解决此问题的方法。

在 AWS 端解决该问题的自定义方法是使用 AWS API。
以下是使用 python boto3 lib 的可能解决方案:

  1. 我们创建查询来搜索日志。
  2. 我们对其结果进行轮询,直到找到我们寻求的值。

这不是我想要的,但它解决了我的问题,尽管带来了不必要的复杂化。

如果有人有我可能错过的其他选择,我将非常感激分享您对此事的想法。