Description
Currently, the stack counters reported by telemetry use the runtime's symbol names. While they are useful information for binary-based tools, they are hostile to source-based downstream tooling because they obscure the actual package of the function name in the presence of inlining, and this information cannot be restored without type checking the source. See #64654 (comment) for an example.
I propose that x/telemetry post-processes the result of CallersFrames into a form that provides the file, (relative) line and logical (not inlined) symbol name---assuming the runtime frames provide sufficient information to make this feasible.
For example, this symbol in the current format:
golang.org/x/tools/gopls/internal/lsprpc.(*streamServer).ServeStream.ServerHandler.func3:+5
would be translated to something like:
golang.org/x/tools/gopls/internal/protocol/protocol.go:ServerHandler+5
(I suspect the name with the "true" anonymous function suffix "ServerHandler.func1" would not be available, but if it is, let's use that.)