Отображать пустую корзину как нулевое значение на графике AWS Log Insights

С этим запросом подсчета по корзине:

filter @message like / error /
| stats count() as exceptionCount by bin(30m)

Я получаю прерывистый график, который трудно понять:

График

Может ли AWS Cloudwatch Log Insights рассматривать пустую корзину как нулевой счетчик для получения непрерывного графика?


person pba    schedule 28.09.2020    source источник


Ответы (2)


Нашел ваш вопрос в поисках собственного ответа на него.

Лучшее, что я придумал, - это вычислить поле «присутствие», а затем использовать сумму, чтобы получить 0 во временных интервалах.

Я использовал strcontains, который возвращает 1 при совпадении или 0 в противном случае. https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html#CWL_QuerySyntax-operations-functions

Мой выглядит так:

fields @timestamp, @message
| fields strcontains(@message, 'Exit status 1') as is_exit_message
| stats sum(is_exit_message) as is_exit_message_count by bin(15m) as time_of_crash
| sort time_of_crash desc

Итак, ваш будет:

fields strcontains(@message, 'error') as is_error
| stats sum(is_error) as exceptionCount by bin(30m)
person Joey Lesh    schedule 18.11.2020
comment
В моем первоначальном запросе на самом деле использовалось регулярное выражение: filter @message like /Request [0-9]* (exception|error)/ | stats count(*) as exceptionCount by bin(30m). В моем конкретном случае мне удалось использовать ваш трюк с strcontains, используя filter @message like /Request [0-9]*/ | fields strcontains(@message, 'exception') + strcontains(@message, 'error') as is_error | stats sum(is_error) as exceptionCount by bin(30m) - person pba; 20.11.2020
comment
Этот sortof работает, за исключением того, что вы по-прежнему получаете нули только в том случае, если есть сообщения журнала без ваших совпадающих строк. Если в период бункера (большинство бункеров в моем случае) вообще не было сообщений журнала, он все равно прерывается - person user1169420; 26.02.2021
comment
да, я согласен с @ user1169420, если нет сообщений журнала за этот период, он все равно отображает это Discountinuous. Какое-либо обходное решение для этого? - person kk.; 08.06.2021

Используйте strcontains + sum или parse + count.

Дело не в использовании filter. Вам следует запросить все журналы.

person Jehong Ahn    schedule 08.06.2021