Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[release/v1.6] docs: Add supported languages for eBPF #3441

Merged
merged 1 commit into from
Jul 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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 @@ -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