Обновить

Комментарии 3

А какой объём логов/трейсов в среднем за день (или за месяц) набегает? Какой sampling используется?

Ну если бы лог в примере сам по себе не был таким паршивым, то и без трейсов можно было бы жить. Если что, так request id можно и от сервиса к сервису передавать, и сюрприз: тогда и по 10 микросервисам можно цельную картину собрать.

Для разбора проблемы Connection timeout трейс не нужен. Какую полезную информацию вы получите, если увидите, что до возникновения этой ошибки вызов прошёл через 5 других сервисов? — Никакую. Тут нужен просто более детальный лог именно из места возникновения ошибки.

С примером, в котором AcquireLock обмазан спаном, тоже есть проблема. Если вы будете каждое такое место обмазывать, то при нормальной нагрузке любой коллектор отъедет. И всякий раз будет дилемма: нужен тут спан или нет? В конечном счёте всё равно понадобится дополнительная отладка. Ну или бюджет на джагер, сравнимый с бюджетом остальной инфры.

Спаны в библиотеке редиса — тоже беда. Я вот буквально пару месяцев назад обмазывал платформенные библиотеки спанами, и в редисе я сознательно коснулся только тех команд, которые связаны с его брокерским альтер эго. Потому что остальные команды используются ровно в тех случаях, когда важна скорость. Эти вызовы происходят слишком часто. Поэтому было странно обременять накладной нагрузкой get, set и т.п. — облегчённую и эффективную.

Короче говоря, приведённые примеры напоминают тех неуклюжек, которые без специального устройства не могут бутылку воды открыть, чтоб не ушататься головой о кухонный шкафчик ;)

Трейсы полезны и важны там, где есть сложное взаимодействие, где синхронщина переплетается с асинхронщиной с петлями и другими фокусами. А в приведенных вами случаях нужны вменяемые логи и кибана.

А если в лог вывести traceId, то отдельная трассировка не нужна. А если вместе\вместо лога откидывать события с traceId и собирать их в аналитической бд, то можно делать продуктовую аналитику, а не только спаны смотреть. + трейсы же не за бесплатно даются, это минимум минус 15-20% производительности системы. Если rps сильно меньше единицы, то можно и не смотреть на их влияние. А если больше? Как много уникальных маршрутов обработки в вашей системе? Если их несравнимо мало с потоком обрабатываемых объектов, то в чем реальный профит от трейсов?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации