| [Java][1] | [Python][2] | [Go][3] | [Ruby][4] | [Node.js][5] | [.NET][6] | [PHP][7] | [Rust/C/C++][8] |[eBPF][9] |
+|-----------------------------------|:-------------------------------------------------:|:-------:|:------------:|:------:|:---------:|:-------:|:------:|:----------:|:----------:|
+| {{< ci-details title="CPU" >}}The time each function/method spent running on the CPU.{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< tooltip glossary="preview" case="title" >}} | {{< tooltip glossary="preview" case="title" >}} |
| {{< ci-details title="Exceptions" >}}The number of exceptions raised, including those caught.{{< /ci-details >}} | {{< X >}} | Python 3.7+ | | | | .NET 5+ | {{< X >}} | |
| {{< ci-details title="Allocation" >}}Number and sizes of memory allocations made by each function/method, including allocations which were subsequently freed.{{< /ci-details >}} | [JDK 11+][17] | Python 3.6+ | {{< X >}} | {{< X >}} | | {{< tooltip glossary="preview" case="title" >}}
.NET 6+ | {{< X >}} | {{< tooltip glossary="preview" case="title" >}} |
| {{< ci-details title="Heap" >}}The amount of heap memory allocated that remains in use.{{< /ci-details >}} | [JDK 11+][17] | Python 3.6+ | {{< X >}} | alpha
Ruby 3.1+ | {{< X >}} | {{< tooltip glossary="preview" case="title" >}}
.NET 7+ | | {{< tooltip glossary="preview" case="title" >}} |
@@ -42,9 +42,9 @@ The following table shows profile type availability by language. For optimal per
The following table outlines additional profiling features by language. For full functionality and best performance, Datadog recommends using the latest version of your language's tracing library. If a specific runtime version isn't indicated, the feature is available with the minimum runtime version listed in the [Runtime and tracing library versions](#runtime-and-tracing-library-versions).
-| | [Java][1] | [Python][2] | [Go][3] | [Ruby][4] | [Node.js][5] | [.NET][6] | [PHP][7] | [Rust/C/C++][8] |
-|-----------------------------------|:-------:|:-------:|:------------:|:------:|:---------:|:-------:|:------:|:----------:|
-| {{< ci-details title="Trace to Profiling integration" >}}Find specific lines of code related to performance issues.
Learn more{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | |
+| | [Java][1] | [Python][2] | [Go][3] | [Ruby][4] | [Node.js][5] | [.NET][6] | [PHP][7] | [Rust/C/C++][8] | [eBPF][9] |
+|-----------------------------------|:-------:|:-------:|:------------:|:------:|:---------:|:-------:|:------:|:----------:|:----------:|
+| {{< ci-details title="Trace to Profiling integration" >}}Find specific lines of code related to performance issues.
Learn more{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | | {{< X >}} |
| {{< ci-details title="Endpoint Profiling" >}}Identify endpoints that are bottlenecks or responsible for heavy resource consumption.
Learn more{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | |
| {{< ci-details title="Timeline View" >}}Surface time-based patterns and work distribution over the period of a span.
Learn more{{< /ci-details >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} | |
| {{< ci-details title="Memory Leaks" >}}A guided workflow to assist in investigating memory leaks.
Learn more{{< /ci-details >}} | {{< X >}} | | {{< X >}} | | | | | |
diff --git a/content/en/profiler/profile_types.md b/content/en/profiler/profile_types.md
index 5537e9d69ece7..198a94669a979 100644
--- a/content/en/profiler/profile_types.md
+++ b/content/en/profiler/profile_types.md
@@ -15,7 +15,7 @@ further_reading:
In the **Profiles** tab, you can see all profile types available for a given language. Depending on the language and version, the information collected about your profile differs.
-{{< programming-lang-wrapper langs="java,python,go,ruby,nodejs,dotnet,php,ddprof" >}}
+{{< programming-lang-wrapper langs="java,python,go,ruby,nodejs,dotnet,php,ddprof,ebpf" >}}
{{< programming-lang lang="java" >}}
Once profiling is enabled, the following profile types are collected for [supported Java versions][1]:
@@ -265,9 +265,20 @@ Allocated memory
[1]: /profiler/enabling/ddprof/
{{< /programming-lang >}}
+{{< programming-lang lang="ebpf" >}}
+
+Once profiling is enabled, the following profile types are collected for [supported languages and versions][1]:
+
+CPU
+: Time each method or function spent running on the CPU. In multi-threaded programs, CPU time can be greater than elapsed time: if 2 threads are running during 45s each, you'd see "eBPF CPU Time, 1m 30s per minute".
+
+[1]: /profiler/enabling/ebpf/
+{{< /programming-lang >}}
{{< /programming-lang-wrapper >}}
+
+
## Further Reading
{{< partial name="whats-next/whats-next.html" >}}
diff --git a/content/en/profiler/profile_visualizations.md b/content/en/profiler/profile_visualizations.md
index 9a9bfc82ed742..360301f270b7c 100644
--- a/content/en/profiler/profile_visualizations.md
+++ b/content/en/profiler/profile_visualizations.md
@@ -109,7 +109,7 @@ To access the timeline view:
Depending on the runtime and language, the timeline lanes vary:
-{{< programming-lang-wrapper langs="java,python,go,ruby,nodejs,dotnet,php" >}}
+{{< programming-lang-wrapper langs="java,python,go,ruby,nodejs,dotnet,php,ebpf" >}}
{{< programming-lang lang="java" >}}
Each lane represents a **thread**. Threads from a common pool are grouped together. You can expand the pool to view details for each thread.
@@ -181,6 +181,10 @@ Lanes on the top are runtime activities that may add extra latency to your reque
[1]: /profiler/connect_traces_and_profiles/#prerequisites
{{< /programming-lang >}}
+
+{{< programming-lang lang="ebpf" >}}
+Timeline view is currently not supported for eBPF profiling
+{{< /programming-lang >}}
{{< /programming-lang-wrapper >}}
## Further Reading
diff --git a/content/en/profiler/profiler_troubleshooting/ebpf.md b/content/en/profiler/profiler_troubleshooting/ebpf.md
new file mode 100644
index 0000000000000..9f3bcad3775fa
--- /dev/null
+++ b/content/en/profiler/profiler_troubleshooting/ebpf.md
@@ -0,0 +1,21 @@
+---
+title: Troubleshooting the eBPF Profiler
+code_lang: ebpf
+type: multi-code-lang
+code_lang_weight: 90
+further_reading:
+ - link: '/tracing/troubleshooting'
+ tag: 'Documentation'
+ text: 'APM Troubleshooting'
+---
+
+
+eBPF
is in Preview. Datadog recommends evaluating the profiler in a non-sensitive environment before deploying in production.
+
+
+
+## Further Reading
+
+{{< partial name="whats-next/whats-next.html" >}}
+
+[1]: /help/
diff --git a/layouts/partials/profiling/profiling-languages.html b/layouts/partials/profiling/profiling-languages.html
index 729df4b448b15..0fd2d213b3bbf 100644
--- a/layouts/partials/profiling/profiling-languages.html
+++ b/layouts/partials/profiling/profiling-languages.html
@@ -72,6 +72,13 @@