Skip to content

Commit

Permalink
docs: Add supported languages for eBPF (#3434) (#3441)
Browse files Browse the repository at this point in the history
* docs: Add supported languages for eBPF

* Update wording based on alloy PR

(cherry picked from commit 4722e80)

Co-authored-by: Christian Simon <simon@swine.de>
  • Loading branch information
github-actions[bot] and simonswine authored Jul 23, 2024
1 parent a926dab commit 5ab858d
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 0 deletions.
10 changes: 10 additions & 0 deletions docs/sources/configure-client/grafana-agent/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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
11 changes: 11 additions & 0 deletions docs/sources/configure-client/grafana-agent/ebpf/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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" >}}
Expand All @@ -39,3 +48,5 @@ For profiling, the Grafana Agent can be configured to collect eBPF profiles and

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

0 comments on commit 5ab858d

Please sign in to comment.