Language and Library Versions for Profiler Features

The following tables summarize the features available for each language runtime.

  • Minimum versions are required to access at least one feature. If you have an earlier version, profiling is not available.
  • Feature-complete versions give you access to all supported features. It’s usually best if you update to the latest version of all tracing libraries.
For more details, click the language heading in any table to go that language's setup page.

Runtime and tracing library versions

To use the Datadog Profiler, use at least the minimum versions summarized in the following table. For specific profile type availability by version, see Profile types.

JavaPythonGoRubyNode.js.NETPHPRust/C/C++
Minimum runtime versionJDK 8+Python 2.7+Go 1.19+Ruby 2.5+Node 14+.NET Core 2.1+, .NET 5+, .NET Framework 4.6.1+PHP 7.1+
Feature-complete runtime versionJDK 11+Python 3.6+Go 1.21+Ruby 3.1+Node 18+.NET 7+PHP 8.0+
Feature-complete tracing library versionlatestlatestlatestlatestlatestlatestlatestlatest

Profile types

To collect profile types, use at least the minimum versions summarized in the following table. If a runtime isn’t specified, the profile type requires the minimum runtime version in Runtime and tracing library versions.

JavaPythonGoRubyNode.js.NETPHPRust/C/C++
CPU

The time each function/method spent running on the CPU.

JDK 8+tracer 0.35+tracer 1.23+tracer 0.48+tracer 5.11.0,
4.35.0, 3.56.0
tracer 2.15+tracer 0.71+beta
ddprof 0.1+
Exceptions

The number of exceptions raised, including those caught.

JDK 8+Python 3.7+.NET 5+
tracer 2.31+
tracer 0.96+
Allocation

Number and sizes of memory allocations made by each function/method, including allocations which were subsequently freed.

JDK 11+Python 3.6+
tracer 0.50+
tracer 1.47+tracer 2.3.0+beta
.NET 6+
tracer 2.18+
tracer 0.88+beta
ddprof 0.9.3
Heap

The amount of heap memory allocated that remains in use.

beta
JDK 11+
tracer 1.39.0+
Python 3.6+
tracer 0.50+
tracer 1.23+alpha
Ruby 2.7+
tracer 2.3.0+
tracer 0.23+beta
.NET 7+
tracer 2.22+
beta
ddprof 0.15+
Wall time

The elapsed time spent in each function/method. Elapsed time includes time when code is running on CPU, waiting for I/O, and anything else that happens while the function/method is running.

JDK 8+tracer 0.35+tracer 0.48+tracer 0.23+tracer 2.7+tracer 0.71+
Locks

The time each function/method spent waiting for and holding locks, and the number of times each function acquired a lock.

JDK 8+tracer 0.45+tracer 1.47+.NET 5+ and .NET Framework beta (requires Datadog Agent 7.51+)
tracer 2.49+
I/O

The time each method spent reading from and writing to files and sockets.

JDK 8+

Other features

To access additional profiling features, use at least the minimum versions summarized in the following table. If a runtime isn’t specified, the profile type requires the minimum runtime version in Runtime and tracing library versions.

JavaPythonGoRubyNode.js.NETPHPRust/C/C++
Code Hotspots

Find specific lines of code related to performance issues. Learn more

JDK 8+tracer 0.44.0tracer 1.37.0tracer 0.48.0tracer 5.0.0,
4.24.0, 3.45.0
tracer 2.7.0tracer 0.71.0
Endpoint Profiling

Identify endpoints that are bottlenecks or responsible for heavy resource consumption. Learn more

JDK 8+tracer 0.54.0tracer 1.37.0tracer 0.52.0tracer 5.0.0,
4.24.0, 3.45.0
tracer 2.15.0tracer 0.79.0
Timeline View

Surface time-based patterns and work distribution over the period of a span. Learn more

JDK 8+tracer 2.12.0,
2.11.4, 2.10.7
tracer 1.51.0tracer 1.21.1tracer 5.11.0,
4.35.0, 3.56.0
tracer 2.30.0tracer 0.89.0

Further reading

Additional helpful documentation, links, and articles:

PREVIEWING: may/unit-testing