Логи, метрики или трассировка: что внедрять первым + курсы
Про наблюдаемость обычно говорят: логи, метрики и трассировка. Небольшой команде это стоит недель настройки и счёта за хранение. В статье рассматриваем, с чего лучше начать, а в конце подборка книг и курсов для тех, кто захочет разобраться глубже.
Про наблюдаемость обычно говорят: логи, метрики и трассировка. Небольшой команде это стоит недель настройки и счёта за хранение. В статье рассматриваем, с чего лучше начать, а в конце подборка книг и курсов для тех, кто захочет разобраться глубже.
Примечание Adviser
В статье есть ссылки партнеров. Это значит, что если вы что-то покупаете с нашей помощью — вы также поддерживаете dev.by. (Вот другой способ).
При этом редакция и авторы независимы в выборе темы, концепции материала, фокуса описания, подхода к услугам или товарам. Прежде чем что-то советовать, мы много читаем и смотрим по теме, говорим с экспертами.
Редакция может выражать свое мнение и пробовать всё на себе.
Если рекомендательный материал обновляется, мы указываем, что и когда поменялось, в самом начале.
Содержание
Зачем вообще начинать с чего-то одного
Открываете любой гайд по наблюдаемости, а там «три столпа» (логи, метрики и распределённая трассировка) и совет поставить всё сразу. Команда поменьше на этом обычно застревает: инженеры неделями возятся с инфраструктурой, а счета за хранение растут.
Дело ещё и в неудобстве. Когда что-то падает, дежурный открывает Grafana, потом вкладку с логами в Elastic или Loki, потом Jaeger и сводит всё это руками по времени. Чарити Мейджорс, сооснователь Honeycomb, пишет, что при таком подходе у вас «много источников истины, рассыпанных по разным инструментам и форматам». И платите вы за хранение одного и того же события несколько раз.
Что вам даёт каждый из столпов
Если коротко: каждый отвечает на свой вопрос.
Логи — что именно произошло. Чем аккуратнее они записаны (лучше всего в JSON, с одним набором полей), тем проще по ним искать.
Метрики — когда и насколько сильно всё сломалось. Это числа во времени: сколько запросов, сколько ошибок, как быстро отвечает сервис. Алерты вешают как раз на них.
Трассировка — где в цепочке застрял запрос. Нужна, когда он проходит через много сервисов и непонятно, на каком шаге всё тормозит.
С чего начинать, зависит от того, как устроена ваша система.
Что делать, если у вас монолит
Лучше начать с логов, потом добавить метрики, а трассировку отложить. Мейджорс считает, что основа всего — «широкие структурированные события», из которых можно вывести все остальные типы данных, и метрики получаются из них, а не наоборот. Поэтому сначала стоит привести логи в порядок.
Трассировка в монолите, как правило, не нужна: всё происходит в одном процессе, и ошибку находят по логам. Большие монолиты вполне живут без неё. Shopify работает на монолите Ruby on Rails, где больше 2,8 млн строк кода, и, по их описанию на 2020 год, держит порядок за счёт модулей. Раз монолит такого размера обходится без распила на сервисы, значит, и трассировка ему пока не обязательна. Это вывод из их примера.
А если у вас много сервисов
Тогда порядок другой: метрики по каждому сервису и трассировка нужны почти сразу. Логи при этом остаются с первого дня, иначе трасса покажет, где тормозит, но не объяснит, что случилось внутри сервиса. Это тоже вывод, а не цитата.
Пример для масштаба: Netflix в 2008 году на три дня остался без возможности отправлять DVD из-за повреждённой базы данных. Потом за семь лет компания переехала в облако и распилила монолит на сотни микросервисов, как рассказывал один из её вице-президентов.
Когда алертов нет вообще
Тогда начните с метрик, и даже раньше логов. Если о поломках вы узнаёте от пользователей, хватит самого простого: считать запросы и долю ошибок по каждому сервису и поставить один алерт на рост ошибок. Когда нужна планка, можно взять SLO (цель по надёжности) вроде «99% запросов отвечают быстрее полсекунды за месяц». Логи всё равно пригодятся, но уже после алерта, чтобы найти причину.
Что стоит поставить сразу, чтобы потом не пожалеть
OpenTelemetry. Адам Уилсон, principal SRE компании ComplyAdvantage, рассказывал на ObservabilityCon 2023, что его команда за два года дважды меняла платформу наблюдаемости: сначала с Grafana OSS на Datadog, потом с Datadog на Grafana Cloud. Вторая миграция получилась, по описанию доклада, потому что команда широко использовала OpenTelemetry. Отсюда совет: ставьте OpenTelemetry сразу, тогда смена бэкенда не потребует переписывать код.
Что почитать и посмотреть по теме
Если хочется разобраться глубже, вот подборка. Начать можно и без покупок: для старта хватит логов, которые вы уже пишете, и одного дашборда с ошибками.
Если нужен практикум по OpenTelemetry на .NET
Курс«OpenTelemetry for Unified Observability» на Coursera, средний уровень, около пяти часов. Инструментируете ASP.NET Core и отправляете данные в Jaeger, Prometheus и Azure Monitor. OTel Collector в программе нет, а для других стеков курс мало подойдёт.
Книга«Observability Engineering: Achieving Production Excellence» Charity Majors, Liz Fong-Jones и George Miranda, сотрудников Honeycomb. О том, что такое хорошая наблюдаемость и как уйти от старых инструментов вроде мониторинга метрик и управления логами.
Если после падения непонятно, что сломалось, наведите порядок в логах. Если о проблемах вы узнаёте от пользователей, поставьте метрики и один алерт на ошибки. А трассировку добавляйте, когда сервисов станет много и вы начнёте часами искать, какой из них завис.
Поддержите редакцию 1,5% налога: бесплатно и за 5 минут
Оценочные тесты: как проверить ваш новый AI-инструмент для команды, пока коллеги о нем не забыли
Бот по внутренней базе знаний, саммари писем в CRM, черновики ответов в хелпдеске — AI-инструмент для коллег кажется безопасной затеей: свои же, если что, подскажут. Но о плохом ответе внутреннего бота коллеги пишут редко. Им либо тихо перестают пользоваться, либо верят без проверки.
Расскажем, как до запуска узнать, где инструмент ошибается, чего ему нельзя ни при каких условиях и сколько проверок нужно именно этой задаче.
Как перейти на passkeys вместо паролей и не запереть сотрудников снаружи
С мая 2025 года новые аккаунты Microsoft по умолчанию создаются без пароля. Вместо него passkey, который хранится на телефоне или ноутбуке, открывается отпечатком, лицом или PIN-кодом. Это удобно, на порядок безопаснее, но ровно до тех пор, пока телефон с вами — секретный ключ, у которого нет копии на другом устройстве, пропадает вместе с девайсом.
Разбираемся, как перейти на беспарольный вход так, чтобы айфоны можно было топить без последствий для работы.
AI-бот на созвоне: как самому не стать датасетом и не превратить в него коллег
В августе федеральный суд в Калифорнии не стал прекращать дело против Otter.ai. Их бот молча заходил на созвоны в Zoom и Teams, записывал разговоры без согласия всех, кто в них участвовал, и учил на этих записях свои модели. Среди записанного, по словам истцов, были разговоры с медиком, с финансовым консультантом и о результатах работы. Нарушил ли Otter закон, суд пока не решал.
С маленьким ребёнком на удалёнке: сколько стоит час тишины дома, в коворкинге и в мини-офисе
Индийская IT-компания во время пандемии отправила больше 10 тысяч сотрудников по домам. Сидеть за работой они стали дольше, в основном сверх обычных часов, а успевали примерно столько же или чуть меньше: продуктивность упала на 8–19%. Сильнее всех просели те, у кого дома были дети.
Кто садится за ноутбук первый раз за день, уложив ребёнка, знает это и без исследований. Но стол на кухне бесплатный, а коворкинг стоит денег. Поэтому уходить из дома или нет, обычно решают финансы.
Хотите сообщить важную новость? Свяжитесь с редакцией через страницу контактов
Главные события и полезные ссылки в нашем Telegram-канале
Обсуждение
Комментируйте без ограничений
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.