Amazon Cloudwatch Logs Insights анализирует с помощью регулярных выражений - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь извлечь эфемерное поле с помощью команды parse.К сожалению, формат журнала таков, что выражения glob ему недостаточно, поэтому мне нужно использовать регулярное выражение.С регулярным выражением все в порядке, но я просто не могу сделать команду извлечь что-либо.

Я пытаюсь:

parse @endpoint /^([a-zA-Z_]+)[\/|?]*.*/ as @clean_endpoint

Первая группа - это то, что мне нужно, и я пробовал с разными типами цитат и т. Д. Это может быть просто глупая ошибка форматирования, но я просто не могу его найти.

Практически единственная документация, в которой упоминается команда parse, это здесь , и пример там - использование выражений glob.Не смог найти ни одного примера по поиску в Google.

Так кто-нибудь сталкивался с этим и решал?

1 Ответ

0 голосов
/ 28 марта 2019

Попробуйте другой подход, например

parse @message /(?<@endpt>(\/[a-zA-Z0-9_]+){1,})/
| stats count_distinct(@endpt) by @endpt

или, альтернативно, рассмотрите решение

fields @timestamp
| parse @message /(?<@endpt_post>POST (\/[a-zA-Z0-9_]+){1,})/
| parse @message /(?<@endpt_get>GET (\/[a-zA-Z0-9_]+){1,})/
| stats count() by @endpt_post, @endpt_get

Удачи!

...