Ответ вслух Middle Логи: Loki и ELK обновлено

Стандарт логирования для команды

Вопрос

Интервьюер: «В компании каждый сервис логирует как хочет, найти что-то в инциденте невозможно. Какой стандарт логирования вы предложите?»

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Образцовый ответ: «Предложу короткий стандарт на одну страницу. Логи в stdout в JSON, одно событие на строку.

Что должно прозвучать в ответе

  • JSON в stdout, одно событие на строку

  • Обязательные поля: время UTC, уровень, сервис, версия, окружение, trace_id

  • Постоянное сообщение и детали в полях

  • Договорённость об уровнях: что такое ERROR

  • Запрет на персональные данные, токены и тела запросов, маскирование

  • Общая библиотека или SDK, ретеншн и метки в хранилище

Что могут спросить следом

  • Как внедрить стандарт в 50 сервисов?
  • Как проверить, что сервис соответствует стандарту?

Разбор

Образцовый ответ: «Предложу короткий стандарт на одну страницу. Логи в stdout в JSON, одно событие на строку. Обязательные поля: ts в UTC ISO 8601 с миллисекундами, level, service, version, env, trace_id, span_id, msg постоянным текстом, детали отдельными полями. ERROR только когда сервис не сделал работу; ожидаемые 4xx это INFO. Запрещены пароли, токены, номера карт и паспорта, тела запросов целиком; маскирование в общей библиотеке логирования. Чтобы внедрить, даю готовую обёртку логгера для наших языков с подключённым OpenTelemetry, а агент собирает логи и ставит метки. Проверка: линтер на формат в CI и дашборд долей невалидных строк по сервисам».

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.