4 ms·
So hopefully in the future I can just inject an Apm agent once in my code and it will get the underlying traces?
by weitzj 3y ago
So hopefully in the future I can just inject an Apm agent once in my code and it will get the underlying traces?
- 4ad 3y agoI am not sure what an Apm agent is, but you don't need to inject anything in your code to use the Go execution tracer today. In general, it's exposed through HTTP (though it needs to be explicitely enabled by the programmer). This design document is about improving the implementation of the Go execution tracer, but IIUC the user-level tooling and behavior will remain the same (except that the wire format will be documented).
- candiddevmike 3y agoI think you and OP are talking about different things (pprof vs OTEL spans). OTEL spans need to be initialized in every function you want traced, it sucks.
- buro9 3y agoYes, Application Observability is a lot of the purpose of this. Instrumentation will be richer, more accurate, low cost, and able to be of value throughout the application for the purposes of tracing and profiling. What it will mean is that thing like https://github.com/open-telemetry/opentelemetry-go https://github.com/open-telemetry/opentelemetry-go will be able to use this to better instrument Go applications, and when OTel includes profiling (as well as traces) then you'll be able to use Pyroscope, Polar Signals, etc for that in addition to Tempo (or whatever you use for tracing), as well as using something like Grafana and Datadog to view all of the above. (I work for Grafana, but the above is relatively vendor neutral as yes we recently acquired Pyroscope and launched Grafana Cloud Profiles, and yes some of the people cited work for Grafana, but others are doing great work here too and it all benefits people who write and run applications using Go).
- metaltyphoon 3y agoYep! This is what dotnet and java does and it’s awesome.