Логи, мониторинг и предупреждения |
25.10.2019 00:00 |
Автор: Кристин Джеквони (Kristin Jackvony) На этой неделе я расскажу о трех вещах, которые нечасто ассоциируются с тестированием: это логирование, мониторинг и предупреждения. Возможно, вы пользуетесь логами, тестируя, однако мониторинг и предупреждения – проблемная область в IT и DevOps. Но ведь приложение без багов не стоит ничего, если ваши пользователи не могут до него добраться, потому что сервер упал! Поэтому очень важно разбираться в логировании, мониторинге и предупреждениях, чтобы мы, как тестировщики, могли участвовать в обеспечении качества наших приложений. Логирование Логирование – это просто запись всего того, что происходит в приложении. Это может происходить путем записи в файл или в базу данных. Разработчики часто включают логируемые утверждения в свой код, чтобы определить, что происходит с приложением "под капотом". Это особенно полезно в приложениях, которые вызывают несколько серверов или баз данных. Недавно я тестировала систему уведомлений, которая передавала сообщение из функции по нескольким различным каналам. Логирование очень мне помогало, потому что позволило отслеживать сообщение по этим каналам. Без хорошего логирования я не смогла бы выяснить, где кроется баг, когда не получила ожидаемого сообщения. Хорошие сообщения логов должны быть удобопонятны и давать полезную информацию. Очень раздражает, когда видишь сообщение об ошибке, говорящее "Произошла неизвестная ошибка", или "Ошибка TSGB-45667". Спросите разработчика, может ли он предоставить внятные уведомления в логах о том, что пошло не так, и в какой части кода это случилось. Другая полезная тактика для логирования – это дать каждому событию отдельный уникальный идентификатор. Он будет ассоциироваться со всем, что случается с этим событием, и вы можете отслеживать его переходы из одной части приложения в другую. Мониторинг Мониторинг – это настройка автоматических процессов, отслеживающих здоровье вашего приложения и серверов, на которых оно работает. Хороший мониторинг убеждается, что все потенциальные проблемы будут обнаружены и решены до того, как их обнаружит пользователь. К примеру, если мониторинг показал, что на сервере кончается место, будут добавлены дополнительные серверы, чтобы справиться с нагрузкой. Вот для чего нужен мониторинг:
Один из способов мониторинга здоровья приложения – это периодические проверки или пинг. Создается задача запрашивать сервер каждые несколько минут и записывать, был ли ответ положительным или отрицательным. Мониторинг можно также осуществлять при помощи инструмента, который отслеживает количество запросов к серверу и записывает, были ли они успешными. Такие данные, как время отклика и загрузка процессора, тоже можно записывать и изучать, чтобы посмотреть, есть ли тенденции, сигнализирующие о проблемах приложения. Один из примеров инструмента для мониторинга здоровья приложения и сервера – это AppDynamics. Предупреждения Самое лучшее логирование и самый идеальный мониторинг ничем вам не помогут, если никто не следит за тем, возникают ли там проблемы! И тут на помощь приходят предупреждения. Их можно настроить на уведомление определенных людей, чтобы они немедленно приняли меры при возникновении проблем. Это могут быть, например, такие события:
Предупреждать людей можно несколькими способами. Можно делать это через email, текстовые сообщения или звонки. PagerDuty – один из сервисов, предоставляющих такую функциональность. Тут, однако, важно помнить, что предупреждения в нерабочее время должны отправляться только в случае серьезных проблем, затрагивающих пользователей. Никто не хочет проснутсья среди ночи от сообщения, что упали тестовые серверы! Однако проблема в тестовом окружении может сигнализировать о проблеме в продакшене в будущем. Поэтому для такой ситуации подойдет менее агрессивное предупреждение – например, сообщение в командный чат. Вы, возможно, говорите себе "Но я тестировщик! Настраивать логирование, мониторинг и предупреждения для компнаии – не моя задача!" Здоровье вашего приложения – это зона ответственности всех, кто над ним работает, включая вас! У вас, возможно, нет полномочий заказывать ПО для мониторинга сервера, но вы можете спросить команду вот о чем:
Ответы на эти вопросы с шансами мотивируют вас и вашу команду к настройке логирования, мониторинга и предупреждений, которые будут следить за здоровьем и надежностью вашего приложения. |