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

How to display all CloudWatch logs from log stream if one log has a specific message?

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

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

第一个看起来像:

fields @message, @logStream 
| filter @message like /UNIQUE_VALUE/

它产生以下形式的结果:

#  @message      @logStream
1  UNIQUE_VALUE  log_stream/1a23c4

最后一个查询:

fields @message
| filter @logStream like "log-stream/1a23c4"
| sort asc

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

的输出

在对 AWS CloudWatch 日志进行一些研究后,我发现没有针对我的问题的开箱即用的解决方案。
如果 using SumoLogic,这是如何解决的。

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

  1. 我们create query搜索日志。
  2. 我们poll it for results直到找到我们寻求的价值。

这不是我想要的,但它解决了我的问题,但带来了不必要的麻烦。

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