Как отобразить все журналы CloudWatch из потока журналов, если в одном журнале есть определенное сообщение?

Я новичок в синтаксисе запросов журналов 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 и получаю результат последнего запроса.




Ответы (1)


Проведя небольшое исследование журналов AWS CloudWatch, я обнаружил, что для моей проблемы нет готового решения.
Вот как это решается, если с помощью SumoLogic.

Пользовательский способ решения этой проблемы на стороне AWS - использовать API AWS.
Ниже представлено возможное решение с использованием python boto3 lib:

  1. Мы создаем запрос искать журналы.
  2. Мы проводим опрос на предмет результатов, пока не найдем искомое значение.

Это не то, что я искал, но он решает мою проблему с ненужными осложнениями.

Если у кого-то есть другие варианты, которые я мог пропустить, я был бы очень благодарен за то, что поделился своими мыслями по этому поводу.

person AzureFireIce    schedule 16.01.2020