> Automatic instrumentation across programming languages is not a trivial task, especially when dealing with static binaries (like the ones produced by the Go compiler). We built multiple mechanisms to make sure we inject the relevant headers in a secure and stable way. We developed a system that tracks functions and structs across different versions of open-source libraries.
Could be very useful for non-greenfield projects. I'd love to learn more about the details, is there any writeup somewhere?
Though I'd still recommend new projects do "proper" tracing with not only one-per-service spans, but also spans for important functions, including additional application-specific tags, as that is easily 10x the value.
But since life is a sequence of tradeoffs, I think this project could be really useful in a lot of places.