opentelemetry-dotnet-instrumentation icon indicating copy to clipboard operation
opentelemetry-dotnet-instrumentation copied to clipboard

CPU and memory allocation continuous profiler

Open Kielek opened this issue 2 years ago • 1 comments

Feature Request

Note AlwaysOn Profiler is the name used as a product feature in Splunk. Broadly it is more known as a continuous profiles. It takes small portion of data every few seconds/events.

Implement CPU and memory profiler for .NET based on description in Splunk repository:

  • CPU profiler : https://github.com/signalfx/signalfx-dotnet-tracing/blob/main/docs/always-on-profiling.md
  • Memory profiler: https://github.com/signalfx/signalfx-dotnet-tracing/blob/main/docs/internal/memory-profiling.md

Most of the native code is stored under: https://github.com/signalfx/signalfx-dotnet-tracing/blob/main/tracer/src/Datadog.Trace.ClrProfiler.Native/always_on_profiler.cpp (and other prefixed by always_on_*). Most of the managed code part: https://github.com/signalfx/signalfx-dotnet-tracing/tree/main/tracer/src/Datadog.Trace/AlwaysOnProfiler Integration tests: https://github.com/signalfx/signalfx-dotnet-tracing/blob/main/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/AlwaysOnProfilerPprofTests.cs Tests application (covers all .NET languages): https://github.com/signalfx/signalfx-dotnet-tracing/tree/main/tracer/test/test-applications/integrations/Samples.AlwaysOnProfiler

Kielek avatar Nov 07 '23 11:11 Kielek

I propose to add a pprof exporter as it could be useful for both the users as well as OTLP Profiler SIG for reference.

pellared avatar Nov 08 '23 17:11 pellared