-
Notifications
You must be signed in to change notification settings - Fork 355
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Correlate EventPipe events with trace spans #3313
Comments
@noahfalk maybe something you can help or redirect...? |
cc @davmason Hi there Pyroscope crew! I took a look and I think we've got some options but fair warning I don't see one that is simultaneously easy to implement, high performance, and available to ship soon. I'd love for .NET to support this but we'll probably have to pick our poison on how we get there.
This is just an overview and you probably have plenty of questions. We're happy to chat and dig into some of these deeper. Sorry there isn't an easy button on this one right now, but I hope there can be in the future once we blaze the trail. |
Thank you for the exhaustive answer @noahfalk. I think we could start with Activity start/stop + TPL EventPipe events – thank you for pointing out this approach. However, as you said, implementing our own low level profiler (ICorProfilerCallback) might be a better move from a longer term perspective. We will carefully consider the options you listed and find out which one suits us best. Thank you for your help, once again! |
It sounds like this is resolved, closing this issue. If there is outstanding work I missed please reopen it. |
@davmason - I think most of the alternatives I suggested above are complex for profilers to implement, don't scale well, or both. I'm thinking we should have some issue (although it doesn't have to be this one) tracking a feature request for the runtime implementation of option (1) in the list above. |
I see I didn't actually manage to close it, we can leave this issue open to track option 1 |
This has gone a bit quiet, so I'm wondering if there's been any work (thoughts or code) about getting this in? There isn't an SDK spec coming out of OTel yet, but the data model is progressing, so I'm looking to understand whether .NET is going to work to that rather than creating its own implementation? /cc @noahfalk |
I'm still interested in improvements in this general area, but nothing has pushed it high on the priority list. If Honeycomb, Pyroscope, or anybody else has profiling features they would implement soon but can't do it because of lacking runtime support that would be valuable feedback. @martinjt, I assume you are talking about the data model for profiling? At the moment the runtime team hasn't made any direct plans around it and it appeared that OpenTelemetry folks were well underway creating a profiler that emitted the data based on the ICorProfiler APIs the runtime already supports. Does that feel like a satisfying path or you are hoping to see something different? |
Hi everyone! Thank you for the awesome ecosystem and tooling you are developing.
We are building Pyroscope, an open source continuous profiling platform. Our .NET agent handles the EventPipe stream from the profiled application through the diagnostic IPC in order to collect a CPU profile, and this works well in a simple scenario where the profile is collected for the entire application/process. We are currently working on an integration with distributed tracing, which requires us to distinguish various execution scopes more granularly, for example scopes of HTTP requests. Go and Java applications are already supported and we'd love to add support for .NET applications – this thread may give more context.
I'm wondering what is the best way to reliably correlate
Microsoft-DotNETCore-SampleProfiler
events with OpenTelemetry trace spans. For example, in Go there are pprof tags, in Java JFR one can use execution context ID (ECID), etc. Basically, we're looking for a way to annotate EventPipe events with an arbitrary set of tags/labels.Any questions and suggestions are greatly appreciated!
/cc @Rperry2174 @petethepig
The text was updated successfully, but these errors were encountered: