diff --git a/docs/sources/configure-client/grafana-agent/_index.md b/docs/sources/configure-client/grafana-agent/_index.md index 1082d9ea3f..319dcab3eb 100644 --- a/docs/sources/configure-client/grafana-agent/_index.md +++ b/docs/sources/configure-client/grafana-agent/_index.md @@ -46,6 +46,14 @@ Benefits of eBPF profiling: 1. Configure the Agent to use eBPF for profiling. Refer to the [eBPF documentation](/docs/pyroscope/latest/configure-client/grafana-agent/ebpf) for detailed steps. 1. The collector collects eBPF profiles and sends them to the Pyroscope server. +### Supported languages + +This eBPF profiler only collects CPU profiles. Generally, natively compiled languages like C/C++, Go, and Rust are supported. Refer to [Troubleshooting unknown symbols][troubleshooting] for additional requirements. + +Python is the only supported high-level language, as long as `python_enabled=true`. +Other high-level languages like Java, Ruby, PHP, and JavaScript require additional work to show stack traces of methods in these languages correctly. +Currently, the CPU usage for these languages is reported as belonging to the runtime's methods. + ## Golang profiling in pull mode In pull mode, the collector periodically retrieves profiles from Golang applications, specifically targeting the pprof endpoints. @@ -67,3 +75,5 @@ In pull mode, the collector periodically retrieves profiles from Golang applicat Whether using eBPF for versatile system and application profiling or relying on Golang's built-in pprof endpoints in pull mode, Grafana Agent and Grafana Alloy collectors offer streamlined processes to gather essential profiling data. Choose the method that best fits your application and infrastructure needs. + +[troubleshooting]: /docs/alloy/latest/reference/components/pyroscope/pyroscope.ebpf/#troubleshooting-unknown-symbols diff --git a/docs/sources/configure-client/grafana-agent/ebpf/_index.md b/docs/sources/configure-client/grafana-agent/ebpf/_index.md index ed33926284..2e14c8365b 100644 --- a/docs/sources/configure-client/grafana-agent/ebpf/_index.md +++ b/docs/sources/configure-client/grafana-agent/ebpf/_index.md @@ -30,6 +30,15 @@ However, eBPF has some limitations that make it unsuitable for certain use cases - It does not support all profile types such as memory and contention/lock profiling. - eBPF requires root access to the host machine, which can be a problem in some environments. +## Supported languages + +This eBPF profiler only collects CPU profiles. Generally, natively compiled languages like C/C++, Go, and Rust are supported. Refer to [Troubleshooting unknown symbols][troubleshooting] for additional requirements. + +Python is the only supported high-level language, as long as `python_enabled=true`. +Other high-level languages like Java, Ruby, PHP, and JavaScript require additional work to show stack traces of methods in these languages correctly. +Currently, the CPU usage for these languages is reported as belonging to the runtime's methods. + + ## eBPF via the Grafana Agent {{< docs/shared lookup="agent-deprecation.md" source="alloy" version="next" >}} @@ -38,3 +47,5 @@ The Grafana Agent is a lightweight, all-in-one agent that can collect, transform This section contains instructions for installing and configuring the Grafana Agent to collect eBPF profiles. For more information about the Grafana Agent itself, see the [Grafana Agent documentation](/docs/agent/latest/flow/). + +[troubleshooting]: /docs/alloy/latest/reference/components/pyroscope/pyroscope.ebpf/#troubleshooting-unknown-symbols