Skip to content

Latest commit

 

History

History
44 lines (41 loc) · 3.78 KB

LOG_FORMAT.md

File metadata and controls

44 lines (41 loc) · 3.78 KB

Logging В данный момент каждый сервис сам пишет логи в logstash (logstash:5044 UDP). logstash дальше шлет логи в elasticsearch. На каждый день создается новый индекс с именем - <название сервиса>_logs-YYYY-MM-DD. Очистка происходит с помощью ILM в Elasticsearch, через 14 дней, индекс будет удален

Формат: JSON, * - обязательный поля

{
   "index_name": "service name", // * Имя сервиса, Должно быть константным.
   "log_level": "debug", // *
   "message": "Log message", // * Рекомендуемая длина сообщения - не более 255 символов.
   "context": '{"token": "123"}', // Любые данные в виде строки (зачастую JSON)
   "lifecycle_token": "123214231324",
   "parent_lifecycle_token": "2134423432",
   "timestamp": "2020-04-15T10:10:40.231Z", 
   // date in ISO format, если нету timestamp, logstash сам подставит его.
   // Примеры:
   // 2020-05-22T13:21:57Z - seconds
   // 2020-05-22T13:21:57.129Z - milis
   // 2020-05-22T13:21:57.123456Z - micros
   "priority": 3, // число 1-7, соответствует уровню лога
}

Уровни логов:

  1. emergency - программа дальше не может работать Например - автозакупка не может перейти на страницу, и падает
  2. alert - оповещение пользователей по поводу каких то событий Например - Та же автозакупка не смогла купить какой то из товаров, потому что он закончился. Отправить уведомление менеджеру
  3. critical - произошло что-то ужасное, но программа может продолжать выполнение. Например - msrp для у разных поставщиков разное(хотя должно быть одинаковое)
  4. error - чтото не смогло выполнится. Например - какая то запись не смогла записаться в датастор
  5. warning - Метрика деградации сервиса Например - pu api вернул exception(ошибку), такое бывает, и если это происходит не часто, это можно пропускать. Тоесть при каждой событии, пишем метрику, и если метрика начинает зашкаливать, включаем дебаг, и ищем проблему.
  6. info - Метрика нормальной работы программы, используется в аналитических целях Например - количество запросов на сервис(тоесть, каждый раз когда приходит запрос на сервис, отправляется сообщение в метрики)
  7. notice - Не срочное уведомление (возможно метрика)
  8. debug - по умолчанию дебаг логи мы не пишем, их включаем только если необходимо отловить проблему в работающем приложении.

Именования логов

  1. MySQL - bd с названием сервиса, таблица логов - logs
  2. Elasticsearch - индекс с форматом - <название_сервиса>_logs- example - (service_logs-2020-01-01)
  3. Logstash - index_name в теле лога