Skip to content

Commit c615871

Browse files
authored
docs: Update ebpf supported languages content (#4338)
* Add frame pointers needed for additional ebpf langs * Make ebpf supported languages content shared and in new places
1 parent 37c237c commit c615871

File tree

6 files changed

+43
-12
lines changed

6 files changed

+43
-12
lines changed

docs/sources/configure-client/_index.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ This document explains these techniques and guide you when to choose each one.
2525
You can send data from your application using Grafana Alloy (preferred) or Grafana Agent (legacy) collectors.
2626
Both collectors support profiling with eBPF, Java, and Golang in pull mode.
2727

28+
[//]: # 'Shared content for supported languages with eBPF'
29+
[//]: # 'This content is located in /pyroscope/docs/sources/shared/supported-languages-ebpf.md'
30+
31+
{{< docs/shared source="pyroscope" lookup="supported-languages-ebpf.md" version="latest" >}}
32+
2833
[Grafana Alloy](https://grafana.com/docs/alloy/latest/) is a vendor-neutral distribution of the OpenTelemetry (OTel) Collector.
2934
Alloy uniquely combines the very best OSS observability signals in the community.
3035
Grafana Alloy uses configuration file written using River.

docs/sources/configure-client/grafana-alloy/_index.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ aliases:
1313
You can send data from your application using Grafana Alloy (preferred) or Grafana Agent (legacy) collectors.
1414
Both collectors support profiling with eBPF, Java, and Golang in pull mode.
1515

16+
[//]: # 'Shared content for supported languages with eBPF'
17+
[//]: # 'This content is located in /pyroscope/docs/sources/shared/supported-languages-ebpf.md'
18+
19+
{{< docs/shared source="pyroscope" lookup="supported-languages-ebpf.md" version="latest" >}}
20+
1621
[Grafana Alloy](https://grafana.com/docs/alloy/<ALLOY_VERSION>/) is a vendor-neutral distribution of the OpenTelemetry (OTel) Collector.
1722
Alloy uniquely combines the very best OSS observability signals in the community.
1823
Alloy uses configuration files written in Alloy configuration syntax.
@@ -56,13 +61,10 @@ Benefits of eBPF profiling:
5661

5762
### Supported languages
5863

59-
This eBPF profiler only collects CPU profiles.
60-
Generally, natively compiled languages like C/C++, Go, and Rust are supported.
61-
Refer to [Troubleshooting unknown symbols][troubleshooting] for additional requirements.
64+
[//]: # 'Shared content for supported languages with eBPF'
65+
[//]: # 'This content is located in /pyroscope/docs/sources/shared/supported-languages-ebpf.md'
6266

63-
Python is the only supported high-level language, as long as `python_enabled=true`.
64-
Other high-level languages like Java, Ruby, PHP, and JavaScript require additional work to show stack traces of methods in these languages correctly.
65-
Currently, the CPU usage for these languages is reported as belonging to the runtime's methods.
67+
{{< docs/shared source="pyroscope" lookup="supported-languages-ebpf.md" version="latest" >}}
6668

6769
## Golang profiling in pull mode
6870

docs/sources/configure-client/grafana-alloy/ebpf/_index.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,10 @@ However, eBPF has some limitations that make it unsuitable for certain use cases
3232

3333
## Supported languages
3434

35-
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.
35+
[//]: # 'Shared content for supported languages with eBPF'
36+
[//]: # 'This content is located in /pyroscope/docs/sources/shared/supported-languages-ebpf.md'
3637

37-
Python is the only supported high-level language, as long as `python_enabled=true`.
38-
Other high-level languages like Java, Ruby, PHP, and JavaScript require additional work to show stack traces of methods in these languages correctly.
39-
Currently, the CPU usage for these languages is reported as belonging to the runtime's methods.
38+
{{< docs/shared source="pyroscope" lookup="supported-languages-ebpf.md" version="latest" >}}
4039

4140
## eBPF using Alloy
4241

docs/sources/configure-client/grafana-alloy/ebpf/configuration/_index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ The `forward_to` parameter should point to a `pyroscope.write` component to send
4141

4242
The `pyroscope.ebpf` component supports the following languages:
4343

44-
- Go
45-
- Rust
44+
- Go with frame pointers enabled (default)
45+
- Rust with frame pointers enabled
4646
- C/C++ with frame pointers enabled
4747
- Python
4848

docs/sources/configure-client/profile-types.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,11 @@ The instrumentation method you use determines which profile types are available.
3434

3535
You can send data from your application using Grafana Alloy collector. Alloy supports profiling with eBPF, Java, and Golang in pull mode.
3636

37+
[//]: # 'Shared content for supported languages with eBPF'
38+
[//]: # 'This content is located in /pyroscope/docs/sources/shared/supported-languages-ebpf.md'
39+
40+
{{< docs/shared source="pyroscope" lookup="supported-languages-ebpf.md" version="latest" >}}
41+
3742
For more information, refer to [Configure the client to send profiles with Grafana Alloy](https://grafana.com/docs/pyroscope/<PYROSCOPE_VERSION>/configure-client/grafana-alloy/).
3843

3944
This table lists the available profile types based on auto instrumentation using Alloy.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
headless: true
3+
description: Shared file for supported languages when using eBPF.
4+
---
5+
6+
[//]: # 'This file documents the supported languages when using eBPF in Pyroscope.'
7+
[//]: # 'This shared file is included in these locations:'
8+
[//]: # '/pyroscope/docs/sources/configure-client/grafana-alloy/_index.md'
9+
[//]: # '/pyroscope/docs/sources/configure-client/grafana-alloy/ebpf/_index.md'
10+
[//]: #
11+
[//]: # 'If you make changes to this file, verify that the meaning and content are not changed in any place where the file is included.'
12+
[//]: # 'Any links should be fully qualified and not relative: /docs/grafana/ instead of ../grafana/.'
13+
14+
The eBPF profiler only collects CPU profiles.
15+
Generally, natively compiled languages like C/C++, Go, and Rust are supported. They should have frame pointers enabled (enabled by default in Go).
16+
Refer to [Troubleshooting unknown symbols][troubleshooting] for additional requirements and information.
17+
18+
Python is the only supported high-level language, as long as `python_enabled=true`.
19+
Other high-level languages like Java, Ruby, PHP, and JavaScript require additional work to show stack traces of methods in these languages correctly.
20+
Currently, the CPU usage for these languages is reported as belonging to the runtime's methods.

0 commit comments

Comments
 (0)