dotnet / dotnet/diagnostics

Correlate EventPipe events with trace spans

Open
#3,313 8 comments 2 reactions 0 assignees View on GitHub
enhancement
Dominant language
C++
Stars
1.3k
Forks
404
Avg merge
2d 3h
Merged PRs (30d)
38

Description

Hi everyone! Thank you for the awesome ecosystem and tooling you are developing.

We are building [Pyroscope](https://github.com/pyroscope-io/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](https://twitter.com/davidfowl/status/1560807315862945792?s=20&t=tAueIBgpRDNOoSq4N_KM1A) 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](https://github.com/google/pprof/blob/master/doc/README.md#tag-filtering), 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

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.