Cloudwatch log insights sum() устанавливает значение по умолчанию 0 при отсутствии журналов

#amazon-cloudwatch #amazon-cloudwatchlogs #aws-cloudwatch-log-insights

Вопрос:

Я пытаюсь выполнить следующий запрос Cloudwatch log insights для двух разных источников потока журналов. Однако, когда в одном или обоих потоках нет записей, функция sum() возвращает результат void вместо 0. Из-за этого я не могу использовать этот результат в другой операции со статистикой. Знаете ли вы, можно ли обойти это поведение и заставить функцию sum() возвращать 0 при отсутствии результатов? Спасибо!

 stats
  sum(raw.stream_1.TotalBill) as stream_1_bill,
  sum(raw.stream_2.TotalBill) as stream_2_bill,
  stream_1_bill   stream_2_bill as total_bill
 

Ожидаемый результат:

 stream_1_bill: 0
stream_2_bill: 1
total_bill: 1
 

Полученный результат:

 stream_1_bill: 
stream_2_bill: 1
total_bill: 
 

Ответ №1:

Я могу достичь желаемого результата, используя функцию объединения.

 COALESCE(SUM(stream_1_bill),0)