eBPF убирает код трассировки из Go-сервисов, но зависит от среды выполнения
Ручная инструментализация OpenTelemetry расползается по вызовам SDK, передаче контекста и служебным метаданным. Под нагрузкой она может расходовать процессорное время, а пропущенная ветка оставит дыру в трассе. eBPF-пробы цепляются к функциям Go и точкам входа HTTP и gRPC, не меняя целевой бинарник.
Цена переноса логики наружу: горутина переезжает между потоками ОС, Go 1.17 перенёс аргументы со стека в регистры, а инлайнинг может убрать функцию для пробы. Трассеру нужна привязка по ID горутины и логика под соглашение о передаче аргументов каждой минорной версии Go либо отладочные данные DWARF.
Перед продом проверьте точную версию Go, а также откуда трассер читает аргументы: из регистров или данных DWARF. В разборе на DEV Community остались механика проб, границы подхода и компромиссы для эксплуатации.
Post #7960
439

- 🌚 1