Опыт использования GrayLog в наших проектах и как это повлияло на качество продуктов.
Эта статья рассказывает не о возможностях GrayLog, а о том как он помог нашей компании.
Раньше мы писали логи только в файлы, доступ к этим файлам имели ограниченное количество разработчиков, читали логи только если что-то случилось и поиск в логах был похож на наказание.
Когда мы начали год назад новый проект по интеграции с CRM системами решили попробовать GrayLog.
Логи как часть продукта
Когда мы перешли на GrayLog и стали часто заглядывать в логи, заметили, что в некоторых сообщениях нехватает информации, чтобы понять ситуацию, а некоторые наоборот избыточные. Мы стали вычищать ненужные сообщения, и менять тексты сообщений, чтобы они стали понятными.
Сотрудники стали постоянно пользоваться GrayLog и сообщать где логи непонятные. Мы начали улучшать сообщения в логах и исправлять ошибки в сообщениях, как это делаем с кодом программы. Логи стали частью продукта, а мы стали следить за их качеством.
Большое изменение в логах произошло, когда мы решили сделать их на русском языке. Это позволило сотрудникам из технической поддержки лучше понимать о чем речь, а разработчикам писать на родном языке, вместо псевдоанглийского, который использовался раньше.
Сообщения на русском языке
Анализ проблем
В GrayLog можно наглядно увидеть проблему. Ниже показан всплеск запросов от Bitrix24, который создал большую нагрузку на сервер. Видно когда это началось и когда закончилось.
Всплеск сообщений в логах
При любом поиске GrayLog показывает такой график распределения сообщений по времени. Если нужно сохранить график, чтобы последить за ним, для этого можно добавить его в сводку.
Мы в сводку добавляем графики на некоторое время, чтобы последить за повторым появлением проблемы.
Пример сводки с графиками ошибок
Уведомления о проблемах
GrayLog умеет уведомлять о проблемах. Можно отправлять уведомление в следующих случаях:
- если в поле появилось определенное значение;
- если превышено или слишком низкое значение числового поля;
- следить за количеством сообщений.
Настройка условий уведомления
Уведомления отправляются на почту или вызывается callback url. Второй способ позволяет отправлять SMS, сообщение в мессанджер или автоматически масштабировать приложение.
Использование логов сотрудниками компании
В GrayLog можно создавать потоки — именованные фильтры. Для потоков задаются права доступа. Это делает доступными только некоторые логи для сотрудников. Например, создать поток с фильтром по имени сервера, чтобы в него попадали только логи с тестового сервера, и сделать доступ к потоку тестировщику.
Список потоков
На практике мы мало пользуемся разделением прав. Сотрудники технической поддержки имеют доступ к логам на продакшне. Это снижает нагрузку на разработчиков, потому что часть проблем коллеги из поддержки понимают по логам и разбираются самостоятельно.
Заключение
GrayLog не просто облегчил поиск в логах, а изменил процесс работы с логами. Логи стали частью продукта. Теперь мы следим за качеством логов наравне с качеством продукта. Логи стали доступны всем разработчикам и коллегам из технической поддержки. Стало возможным обнаруживать проблемы до того как о них сообщат пользователи.