Как отфильтровать CloudWatch Log Insights с помощью функции ispresent ()

Я пытаюсь выполнить действительно простой запрос на not so new AWS Cloudwatch Log Insights

Я следую их документации, чтобы фильтровать журналы с помощью функции ispresent.

Запрос следующий:

fields @timestamp, status
| filter ispresent(status) != 0

Но это дает мне ошибку (супер бесполезный We are having trouble understanding the query)

Как мне отфильтровать журналы, показывая только журналы с полем status?


person Gustavo Lopes    schedule 08.05.2019    source источник


Ответы (2)


Через некоторое время я придумал, как это сделать хакерским способом.

fields @timestamp, status, ispresent(status) as exist
| filter exist != 0

Не лучший способ (и это противоречит их документации), но работает.

person Gustavo Lopes    schedule 09.05.2019
comment
fields @timestamp, status | filter ispresent(status) - выглядит лучше - person ILog; 12.07.2019
comment
Выглядит лучше. Хотя к моменту вопроса это не сработало. Я не могу сейчас протестировать, так как, к сожалению, у меня нет журналов в формате json. - person Gustavo Lopes; 12.07.2019
comment
Кроме того, у AWS нет хорошего способа отменить функцию ispresent() изнутри фильтра, что это компенсирует. Спасибо! - person hvaughan3; 25.07.2019

Принятый ответ мне не подходит, но теперь вы можете отрицать ispresent():

fields @timestamp, status
| filter !ispresent(status)
person NateH06    schedule 09.07.2020