Skip to content

Commit 016b68c

Browse files
knylander-grafanabryanhuhta
authored andcommitted
[DOC] Add links to supported profile types in SDKs (#3228)
* Add links to supported profile types in SDKs * Update doc * Fix validator issues with links * Second fix for relrefs * Add java config examples * Apply suggestions from code review * Apply suggestions from code review * Added link to configure-client from profiling types * Fix heading * Fix links to updated heading * Apply suggestions from code review Co-authored-by: Bryan Huhta <[email protected]> --------- Co-authored-by: Bryan Huhta <[email protected]> (cherry picked from commit ecc6374)
1 parent 21940bf commit 016b68c

File tree

11 files changed

+99
-27
lines changed

11 files changed

+99
-27
lines changed

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

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,16 @@ aliases:
99

1010
# Grafana Agent
1111

12+
{{< docs/shared lookup="agent-deprecation.md" source="alloy" version="next" >}}
13+
1214
Grafana Agent is a powerful tool for collecting and forwarding profiling data.
1315
With the introduction of support for eBPF and continuing support for Golang in pull mode, Grafana Agent has become even more versatile in its capabilities.
1416
This document provides an overview of these two modes of profiling and guides users on setting them up.
1517

16-
{{< docs/shared lookup="agent-deprecation.md" source="alloy" version="next" >}}
18+
{{< admonition type="note" >}}
19+
Refer to [Available profiling types]({{< relref "../../view-and-analyze-profile-data/profiling-types#available-profiling-types" >}}) for a list of profile types supported.
20+
{{< /admonition >}}
21+
1722

1823
## eBPF profiling with Grafana Agent
1924

@@ -28,9 +33,9 @@ Benefits of eBPF profiling:
2833
### Set up eBPF profiling with Grafana Agent
2934

3035
1. Ensure your system runs a Linux kernel version 4.9 or newer.
31-
1. Install Grafana Agent or Grafana Alloy on the target machine or container.
32-
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.
33-
1. After it's configured, the agent starts collecting eBPF profiles and sends them to the Pyroscope server.
36+
1. Install Grafana Agent on the target machine or container.
37+
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.
38+
1. The Agent collects eBPF profiles and sends them to the Pyroscope server.
3439

3540
## Golang profiling in pull mode with Grafana Agent
3641

@@ -45,11 +50,11 @@ In pull mode, Grafana Agent periodically retrieves profiles from Golang applicat
4550
### Set up Golang profiling in pull mode
4651

4752
1. Ensure your Golang application exposes pprof endpoints.
48-
2. Install and configure Grafana Agent on the same machine or container where your application runs.
49-
3. Ensure the agent is set to pull mode and targeting the correct pprof endpoints. For step-by-step instructions, visit the [Go (Pull Mode)](/docs/pyroscope/latest/configure-client/grafana-agent/go_pull) docs.
50-
4. The agent starta querying the pprof endpoints of your Golang application, collecting the profiles, and forwarding them to the Pyroscope server.
53+
1. Install and configure the Grafana Agent on the same machine or container where your application runs.
54+
1. Ensure the Agent is set to pull mode and targeting the correct pprof endpoints. For step-by-step instructions, visit the [Go (Pull Mode)](/docs/pyroscope/latest/configure-client/grafana-agent/go_pull) docs.
55+
1. The Agent queries the pprof endpoints of your Golang application, collects the profiles, and forwards them to the Pyroscope server.
5156

5257
## Next steps
5358

54-
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 offer a streamlined process to gather essential profiling data. Choose the method that best fits your application and infrastructure needs.
55-
59+
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 offer streamlined processes to gather essential profiling data.
60+
Choose the method that best fits your application and infrastructure needs.

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ weight: 30
66
---
77

88

9-
## Configuration
9+
## Configuration reference
1010

1111
Grafana Agent supports eBPF profiling in [Flow mode](/docs/agent/latest/flow/). The configuration file is written in the [River](/docs/agent/latest/flow/config-language/) language and is composed of components that are used to collect, transform, and send data.
1212

docs/sources/configure-client/language-sdks/_index.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,5 +58,9 @@ The following languages SDKs provide support for sending profiles from your appl
5858
</tr>
5959
</table>
6060

61-
If you're interested in integrating other ecosystems, please reach out to us on [github](https://github.com/grafana/pyroscope/).
61+
{{< admonition type="note" >}}
62+
Refer to [Available profiling types]({{< relref "../../view-and-analyze-profile-data/profiling-types#available-profiling-types" >}}) for a list of profile types supported by each language.
63+
{{< /admonition >}}
64+
65+
If you're interested in integrating other ecosystems, reach out to us on [GitHub](https://github.com/grafana/pyroscope/).
6266

docs/sources/configure-client/language-sdks/dotnet.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,11 @@ aliases:
1111

1212
Our .NET Profiler is a powerful tool designed to enhance the performance analysis and optimization of .NET applications. It seamlessly integrates with Pyroscope, offering real-time insights into the resource usage and bottlenecks within your .NET codebase. This integration empowers developers to pinpoint inefficiencies, improve application speed, and ensure resource-efficient operation.
1313

14-
### Supported profiling types
14+
{{< admonition type="note" >}}
15+
Refer to [Available profiling types]({{< relref "../../view-and-analyze-profile-data/profiling-types#available-profiling-types" >}}) for a list of profile types supported by each language.
16+
{{< /admonition >}}
17+
18+
## Supported profiling types
1519

1620
The .NET Profiler supports the following profiling types:
1721

docs/sources/configure-client/language-sdks/go_push.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,12 @@ Our Go Profiler is a cutting-edge tool designed to optimize Golang applications.
1313
By integrating with Pyroscope, the profiler offers developers an in-depth view of their Go codebase, enabling real-time performance analysis.
1414
This powerful tool is crucial for pinpointing inefficiencies, streamlining code execution, and ensuring peak performance in Go applications.
1515

16-
Pyroscope uses the standard `runtime/pprof` package to collect profiling data. Refer to [the official documentation](https://golang.org/doc/diagnostics#profiling) for details.
16+
Pyroscope uses the standard `runtime/pprof` package to collect profiling data.
17+
Refer to [the official documentation](https://golang.org/doc/diagnostics#profiling) for details.
18+
19+
{{< admonition type="note" >}}
20+
Refer to [Available profiling types]({{< relref "../../view-and-analyze-profile-data/profiling-types#available-profiling-types" >}}) for a list of profile types supported by Go.
21+
{{< /admonition >}}
1722

1823
## Before you begin
1924

docs/sources/configure-client/language-sdks/java.md

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,13 @@ aliases:
99

1010
# Java
1111

12-
The Java Profiler, integrated with Pyroscope, offers a comprehensive solution for performance analysis in Java applications. It provides real-time insights, enabling developers to understand and optimize their Java codebase effectively. This tool is crucial for improving application responsiveness, reducing resource consumption, and ensuring top-notch performance in Java environments.
12+
The Java Profiler, integrated with Pyroscope, offers a comprehensive solution for performance analysis in Java applications.
13+
It provides real-time insights, enabling developers to understand and optimize their Java codebase effectively.
14+
This tool is crucial for improving application responsiveness, reducing resource consumption, and ensuring top-notch performance in Java environments.
1315

16+
{{< admonition type="note" >}}
17+
Refer to [Available profiling types]({{< relref "../../view-and-analyze-profile-data/profiling-types#available-profiling-types" >}}) for a list of profile types supported by each language.
18+
{{< /admonition >}}
1419

1520
## Before you begin
1621

@@ -28,7 +33,7 @@ Supported platforms include:
2833
* MacOS on x64
2934
* MacOS on ARM64
3035

31-
Visit our GitHub [releases](https://github.com/pyroscope-io/pyroscope-java/releases) page to download the latest version of `pyroscope.jar`.
36+
Visit the GitHub [releases](https://github.com/pyroscope-io/pyroscope-java/releases) page to download the latest version of `pyroscope.jar`.
3237

3338
The latest release is also available on [Maven Central](https://search.maven.org/artifact/io.pyroscope/agent).
3439

@@ -207,6 +212,26 @@ If you need to send data to Grafana Cloud, you'll have to configure HTTP Basic a
207212

208213
If your Pyroscope server has multi-tenancy enabled, you'll need to configure a tenant ID. Replace `<TenantID>` with your Pyroscope tenant ID.
209214

215+
#### Example configurations
216+
217+
The following configuration sets application name, Pyroscope format, profiling interval, event, and lock.
218+
This example is an excerpt from the [`rideshare` Dockerfile](https://github.com/grafana/pyroscope/blob/main/examples/language-sdk-instrumentation/java/rideshare/Dockerfile#L24-L34) available in the Pyroscope repository.
219+
220+
```
221+
ENV PYROSCOPE_APPLICATION_NAME=rideshare.java.push.app
222+
ENV PYROSCOPE_FORMAT=jfr
223+
ENV PYROSCOPE_PROFILING_INTERVAL=10ms
224+
ENV PYROSCOPE_PROFILER_EVENT=itimer
225+
ENV PYROSCOPE_PROFILER_LOCK=10ms
226+
```
227+
228+
This configuration excerpt enables allocation and lock profiling:
229+
230+
```
231+
PYROSCOPE_PROFILER_ALLOC=512k
232+
PYROSCOPE_PROFILER_LOCK=10ms
233+
```
234+
210235
## Java profiling examples
211236

212237
Check out the following resources to learn more about Java profiling:

docs/sources/configure-client/language-sdks/nodejs.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ aliases:
1111

1212
Enhance your Node.js application's performance with our Node.js Profiler. Seamlessly integrated with Pyroscope, it provides real-time insights into your application’s operation, helping you identify and resolve performance bottlenecks. This integration is key for Node.js developers aiming to boost efficiency, reduce latency, and maintain optimal application performance.
1313

14+
{{< admonition type="note" >}}
15+
Refer to [Available profiling types]({{< relref "../../view-and-analyze-profile-data/profiling-types#available-profiling-types" >}}) for a list of profile types supported by each language.
16+
{{< /admonition >}}
17+
1418
## Before you begin
1519

1620
To capture and analyze profiling data, you need either a hosted Pyroscope OSS server or a hosted [Pyroscope instance with Grafana Cloud Profiles](/products/cloud/profiles-for-continuous-profiling/) (requires a free Grafana Cloud account).

docs/sources/configure-client/language-sdks/python.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,13 @@ aliases:
99

1010
# Python
1111

12-
Our Python Profiler, when integrated with Pyroscope, transforms the way you analyze and optimize Python applications. This combination provides unparalleled real-time insights into your Python codebase, allowing for precise identification of performance issues. It is an essential tool for Python developers focused on enhancing code efficiency and application speed.
12+
The Python profiler, when integrated with Pyroscope, transforms the way you analyze and optimize Python applications.
13+
This combination provides unparalleled real-time insights into your Python codebase, allowing for precise identification of performance issues
14+
It's an essential tool for Python developers focused on enhancing code efficiency and application speed.
15+
16+
{{< admonition type="note" >}}
17+
Refer to [Available profiling types]({{< relref "../../view-and-analyze-profile-data/profiling-types#available-profiling-types" >}}) for a list of profile types supported by each language.
18+
{{< /admonition >}}
1319

1420
## Before you begin
1521

docs/sources/configure-client/language-sdks/ruby.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,13 @@ aliases:
99

1010
# Ruby
1111

12-
The Ruby Profiler revolutionizes performance tuning in Ruby applications. Integrated with Pyroscope, it offers real-time performance data, allowing developers to delve deep into their Ruby codebase. This tool is essential for identifying performance issues, optimizing code efficiency, and enhancing the overall speed and reliability of Ruby applications.
12+
The Ruby Profiler revolutionizes performance tuning in Ruby applications.
13+
Integrated with Pyroscope, it offers real-time performance data, allowing developers to delve deep into their Ruby codebase.
14+
This tool is essential for identifying performance issues, optimizing code efficiency, and enhancing the overall speed and reliability of Ruby applications.
15+
16+
{{< admonition type="note" >}}
17+
Refer to [Available profiling types]({{< relref "../../view-and-analyze-profile-data/profiling-types#available-profiling-types" >}}) for a list of profile types supported by Ruby.
18+
{{< /admonition >}}
1319

1420
## Before you begin
1521

docs/sources/configure-client/language-sdks/rust.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,13 @@ aliases:
99

1010
# Rust
1111

12-
Optimize your Rust applications with our advanced Rust Profiler. In collaboration with Pyroscope, it offers real-time profiling capabilities, shedding light on the intricacies of your Rust codebase. This integration is invaluable for developers seeking to enhance performance, reduce resource usage, and achieve efficient code execution in Rust applications.
12+
Optimize your Rust applications with our advanced Rust Profiler.
13+
In collaboration with Pyroscope, it offers real-time profiling capabilities, shedding light on the intricacies of your Rust codebase.
14+
This integration is invaluable for developers seeking to enhance performance, reduce resource usage, and achieve efficient code execution in Rust applications.
15+
16+
{{< admonition type="note" >}}
17+
Refer to [Available profiling types]({{< relref "../../view-and-analyze-profile-data/profiling-types#available-profiling-types" >}}) for a list of profile types supported by Rust.
18+
{{< /admonition >}}
1319

1420
## Before you begin
1521

0 commit comments

Comments
 (0)