Почему вы должны образцы журналов отладки в производстве

1656629049 pochemu vy dolzhny obrazczy zhurnalov otladki v proizvodstve

Янь Цуй

a4Dy78d2-7dwNl8Rz3lljBh2hLG9nGBD5ATq

Распространенной практикой является установление уровня журнала ВНИМАНИЕ для производства из-за объемов перевозок. Это связано с тем, что нужно учитывать разные факторы стоимости:

  • Стоимость лесозаготовки : Журналы CloudWatch взимается плата в размере 0,50 дол. США за поглощенный ГБ. По моему опыту, это часто гораздо выше, чем затраты на вызов лямбда
  • Стоимость хранения : Журналы CloudWatch взимает 0,03 дол. США по ГБ в месяц, а его политика сохранения по умолчанию есть Никогда не заканчивается! Обычной практикой является отправка ваших журналов в другую службу агрегации журналов и установление политики сохранения на X дней. Смотрите этот пост, чтобы узнать больше.
  • Стоимость обработки : если вы обрабатываете журналы с помощью лямбдато вы также должны учитывать стоимость лямбда призывы.

Но это оставляет нас без любой журналы отладки в производстве. Когда проблема возникает в производстве, у вас не будет журналов отладки, которые помогут определить основную причину.

Вместо этого вам придется тратить драгоценное время на развертывание новой версии вашего кода, чтобы включить журнал отладки. Не говоря уже о том, что вы не должны забыть выключить журнал отладки при развертывании исправления.

С микросервисами вам часто приходится делать это для нескольких служб, чтобы получить все необходимые уведомления об отладке.

Все эти увеличить среднее время восстановления (MTTR) во время инцидента. Это не то, что мы хотим.

TV4JL3ABTOYu877SdNZOEje39xCsENsie6uy

Это не должно быть таковым.

Существует счастливая золотая середина между отсутствием журналов отладки и наличием всех журналов отладки. Вместо этого мы должны взять образцы журналов отладки с небольшого процента вызовов.

-Sc5WbK9QBaTZ-S65EbI8zrIZGACvvZkAcqB

Я демонстрировал, как это сделать в Заготовка леса раздел моего видеокурса Бессерверная готовность к производству. Вам нужны две основные вещи:

  • регистратор, который позволяет динамически изменять уровень регистрации, например с помощью переменных среды
  • механизм промежуточного программного обеспечения, такой как middy
kqho30Wb7OCBPap3XY2FvBtCSt9nUf-bGN--

С лямбда, мне не нужно большинство функций полноценного регистратора, такого как pino. Вместо этого я предпочитаю использовать простой модуль регистратора, подобный этому. Это написано в несколько строк и дает мне основания:

  • структурированный журнал с JSON
  • возможность ведения журнала на разных уровнях
  • возможность динамически управлять уровнем журнала с помощью переменных среды

Использование серединая могу создать промежуточное программное обеспечение для динамического обновления уровня журнала отлаживать. Это делается для настраиваемого процента вызовов. В конце вызова промежуточное программное обеспечение возобновит предыдущий уровень журнала.

qO1K1e3vzJXADCmbdATAm92TS9epcO-AFkLw

Вы можете заметить, что у нас также есть специальная обработка, когда вызов вызывает ошибку.

Gn15P9fo3QKW-HVk1Y1baSPgumRjfIhsAOl4

Это нужно для того, чтобы мы фиксировали ошибку с наибольшим количеством контекста, включая:

Прекрасно иметь журналы отладки для небольшого процента вызовов. Но когда вы имеете дело с микросервисами, вам нужно убедиться, что ваши журналы отладки охватывают всю цепочку вызовов.

Это единственный способ составить полную картину всего происходящего в этой цепочке вызовов. Иначе вы получите фрагменты журналов отладки из многих цепочек вызовов, но никогда не полную картину друга.

Вы можете сделать это, переслав решение о включении журнала отладки в качестве идентификатора корреляции. Следующая функция в цепочке будет уважать это решение и передаст его дальше. Смотрите этот пост для более подробной информации.

FeWU7Hr6-zviBenJKyVZvNUp8GWlgyV1lVH5

Вот и все, еще один профессиональный совет по поводу того, как создать наблюдательность в вашей бессерверной программе. Если вы хотите узнать больше о том, как сделать ва-банк без сервера, посмотрите мое руководство по 10 шагам здесь.

В следующий раз!

Добавить комментарий

Ваш адрес email не будет опубликован.