CloudWatch Logs Insights Синтаксический анализ синтаксиса - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть лямбда, которая запрашивает API ec2 и печатает вывод в журналы cloudwatch, которые я хочу использовать для метрик.Тем не менее, у меня возникли проблемы с анализом вывода (генерируется из словаря).Вот типичное @message:

defaultdict(None, {ec2.Instance(id='i-instance'): {'InstanceID': 'i-instance', 'Type': 't2.micro', 'ImageID': 'ami-0e5493310d2c6de5b', 'State': 'running'

Я пытался |parse 'InstanceID': *' as InstanceId и тому подобное, но это ошибки, и я не нашел примеров в документации (https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html).

Помощь оценена.

1 Ответ

0 голосов
/ 21 февраля 2019

Если вы можете изменить лямбду, возможно, самое простое решение - это напечатать словарь в виде однострочного JSON (вместо строкового формата словаря Python) - что-то вроде print(json.dumps(myvalue)) должно сработать.Cloudwatch автоматически поймет поля.

Если вы не можете изменить вывод лямбды, добавление дополнительных кавычек в запрос Logs Insights может помочь: parse @message "'InstanceID': '*'" as InstanceID.

...