diff --git a/docs/sources/configure-client/_index.md b/docs/sources/configure-client/_index.md
index 026438a0ad..522557934f 100644
--- a/docs/sources/configure-client/_index.md
+++ b/docs/sources/configure-client/_index.md
@@ -88,7 +88,7 @@ To get started, choose one of the integrations below:
Grafana Alloy
Documentation
- Examples
+ Examples
|
Golang
@@ -103,7 +103,7 @@ To get started, choose one of the integrations below:
|
eBPF
Documentation
- Examples
+ Examples
|
Python
diff --git a/docs/sources/configure-client/grafana-alloy/java/_index.md b/docs/sources/configure-client/grafana-alloy/java/_index.md
index cd762a3f1f..ec203d1600 100644
--- a/docs/sources/configure-client/grafana-alloy/java/_index.md
+++ b/docs/sources/configure-client/grafana-alloy/java/_index.md
@@ -110,7 +110,7 @@ pyroscope.write "endpoint" {
## Examples
-For more robust examples, refer to the [Grafana Alloy and Agent Auto-instrumentation](https://github.com/grafana/pyroscope/tree/main/examples/grafana-agent-auto-instrumentation) examples in the Pyroscope repository.
+For more robust examples, refer to the [Grafana Alloy and Agent Auto-instrumentation](https://github.com/grafana/pyroscope/tree/main/examples/grafana-alloy-auto-instrumentation) examples in the Pyroscope repository.
### Profiling local process
@@ -155,7 +155,7 @@ pyroscope.write "example" {
### Profiling Docker containers
-For a working example, refer to [Java profiling via auto-instrumentation example in Docker](https://github.com/grafana/pyroscope/tree/main/examples/grafana-agent-auto-instrumentation/java/docker).
+For a working example, refer to [Java profiling via auto-instrumentation example in Docker](https://github.com/grafana/pyroscope/tree/main/examples/grafana-alloy-auto-instrumentation/java/docker).
```alloy
discovery.docker "local_containers" {
@@ -202,7 +202,7 @@ pyroscope.write "example" {
### Profiling Kubernetes pods
-For a working example, refer to [Grafana Alloy Java profiling via auto-instrumentation with Kubernetes](https://github.com/grafana/pyroscope/tree/main/examples/grafana-agent-auto-instrumentation/java/kubernetes).
+For a working example, refer to [Grafana Alloy Java profiling via auto-instrumentation with Kubernetes](https://github.com/grafana/pyroscope/tree/main/examples/grafana-alloy-auto-instrumentation/java/kubernetes).
```alloy
discovery.kubernetes "local_pods" {
@@ -283,7 +283,7 @@ pyroscope.write "example" {
For more information:
-* [Examples](https://github.com/grafana/pyroscope/tree/main/examples/grafana-agent-auto-instrumentation/java)
+* [Examples](https://github.com/grafana/pyroscope/tree/main/examples/grafana-alloy-auto-instrumentation/java)
- [Grafana Alloy](https://grafana.com/docs/alloy//)
- [pyroscope.scrape](https://grafana.com/docs/alloy//reference/components/pyroscope/pyroscope.scrape/)
diff --git a/docs/sources/configure-client/grafana-alloy/receive_profiles.md b/docs/sources/configure-client/grafana-alloy/receive_profiles.md
index d084936352..65a011321f 100644
--- a/docs/sources/configure-client/grafana-alloy/receive_profiles.md
+++ b/docs/sources/configure-client/grafana-alloy/receive_profiles.md
@@ -64,6 +64,8 @@ Check your specific language SDK documentation for the exact configuration optio
The examples in this section provide samples you can use as a starting point for your own configurations.
+Explore the [example](https://github.com/grafana/pyroscope/tree/main/examples/language-sdk-instrumentation/golang-push/rideshare-alloy) in our GitHub repository to learn how to configure Grafana Alloy to receive profiles from a Golang application instrumented with Pyroscope.
+
### Basic receiving setup
This example shows a basic setup receiving profiles on port 9090 and forwarding them to a local Pyroscope instance:
diff --git a/docs/sources/configure-client/language-sdks/_index.md b/docs/sources/configure-client/language-sdks/_index.md
index 605c3a80ef..87968a825f 100644
--- a/docs/sources/configure-client/language-sdks/_index.md
+++ b/docs/sources/configure-client/language-sdks/_index.md
@@ -48,7 +48,7 @@ The following languages SDKs provide support for sending profiles from your appl
eBPF
Documentation
- Examples
+ Examples
|
Rust
diff --git a/docs/sources/configure-client/language-sdks/dotnet.md b/docs/sources/configure-client/language-sdks/dotnet.md
index 8731fa3064..4b0dca83c4 100644
--- a/docs/sources/configure-client/language-sdks/dotnet.md
+++ b/docs/sources/configure-client/language-sdks/dotnet.md
@@ -45,13 +45,13 @@ The Pyroscope server can be a local server for development or a remote server fo
1. Obtain `Pyroscope.Profiler.Native.so` and `Pyroscope.Linux.ApiWrapper.x64.so` from the [latest tarball](https://github.com/pyroscope-io/pyroscope-dotnet/releases/):
```bash
-curl -s -L https://github.com/grafana/pyroscope-dotnet/releases/download/v0.9.0-pyroscope/pyroscope.0.9.0-glibc-x86_64.tar.gz | tar xvz -C .
+curl -s -L https://github.com/grafana/pyroscope-dotnet/releases/download/v0.9.2-pyroscope/pyroscope.0.9.2-glibc-x86_64.tar.gz | tar xvz -C .
```
Or copy them from the [latest docker image](https://hub.docker.com/r/pyroscope/pyroscope-dotnet/tags). We have `glibc` and `musl` versions:
```dockerfile
-COPY --from=pyroscope/pyroscope-dotnet:0.9.0-glibc /Pyroscope.Profiler.Native.so ./Pyroscope.Profiler.Native.so
-COPY --from=pyroscope/pyroscope-dotnet:0.9.0-glibc /Pyroscope.Linux.ApiWrapper.x64.so ./Pyroscope.Linux.ApiWrapper.x64.so
+COPY --from=pyroscope/pyroscope-dotnet:0.9.2-glibc /Pyroscope.Profiler.Native.so ./Pyroscope.Profiler.Native.so
+COPY --from=pyroscope/pyroscope-dotnet:0.9.2-glibc /Pyroscope.Linux.ApiWrapper.x64.so ./Pyroscope.Linux.ApiWrapper.x64.so
````
2. Set the following required environment variables to enable profiler
diff --git a/docs/sources/configure-client/language-sdks/go_push.md b/docs/sources/configure-client/language-sdks/go_push.md
index cf77896d19..8d5b1553c2 100644
--- a/docs/sources/configure-client/language-sdks/go_push.md
+++ b/docs/sources/configure-client/language-sdks/go_push.md
@@ -85,6 +85,24 @@ func main() {
}
```
+Alternatively, if you want more control over the profiling process, you can manually handle the profiler initialization and termination:
+
+```go
+ profiler, err := pyroscope.Start(pyroscope.Config{
+ // omitted for brevity
+ })
+ if err != nil {
+ // the only reason this would fail is if the configuration is not valid
+ log.Fatalf("failed to start Pyroscope: %v", err)
+ }
+ defer profiler.Stop()
+
+ // your code goes here
+}
+```
+
+This approach may be necessary if you need to ensure that the last profile is sent before the application exits.
+
### Add profiling labels to your application
You can add tags (labels) to the profiling data. These tags can be used to filter the data in the UI. There is a custom API that's in line with the go-native pprof API:
diff --git a/docs/sources/configure-client/language-sdks/java.md b/docs/sources/configure-client/language-sdks/java.md
index 15b68325ea..a055dc882f 100644
--- a/docs/sources/configure-client/language-sdks/java.md
+++ b/docs/sources/configure-client/language-sdks/java.md
@@ -51,12 +51,12 @@ First, add the Pyroscope dependency:
io.pyroscope
agent
- 0.15.0
+ 0.15.2
```
```gradle
-implementation("io.pyroscope:agent:0.15.0")
+implementation("io.pyroscope:agent:0.15.2")
```
{{< /code >}}
diff --git a/docs/sources/configure-client/language-sdks/python.md b/docs/sources/configure-client/language-sdks/python.md
index 3118e331e4..3088354907 100644
--- a/docs/sources/configure-client/language-sdks/python.md
+++ b/docs/sources/configure-client/language-sdks/python.md
@@ -98,5 +98,5 @@ If your Pyroscope server has multi-tenancy enabled, you'll need to configure a t
## Python profiling examples
Check out the following resources to learn more about Python profiling:
-- [Python examples](https://github.com/pyroscope-io/pyroscope/tree/main/examples/language-sdk-instrumentation/python)
-- [Python demo](https://play.grafana.org/a/grafana-pyroscope-app/single?query=process_cpu%3Asamples%3Acount%3A%3Amilliseconds%7Bservice_name%3D%22pyroscope-rideshare-python%22%7D&from=now-1h&until=now) showing Python example with tags
+- [Python examples](https://github.com/pyroscope-io/pyroscope/tree/main/examples/language-sdk-instrumentation/python) demonstrating how Django, Flask, and FastAPI apps can be profiled with Pyroscope.
+- A [Python demo](https://play.grafana.org/a/grafana-pyroscope-app/profiles-explorer?searchText=&panelType=time-series&layout=grid&hideNoData=off&explorationType=flame-graph&var-serviceName=pyroscope-rideshare-python&var-profileMetricId=process_cpu:cpu:nanoseconds:cpu:nanoseconds&var-dataSource=grafanacloud-profiles) on play.grafana.org.
diff --git a/docs/sources/configure-client/language-sdks/ruby.md b/docs/sources/configure-client/language-sdks/ruby.md
index 625ef88d80..1e2ab953a5 100644
--- a/docs/sources/configure-client/language-sdks/ruby.md
+++ b/docs/sources/configure-client/language-sdks/ruby.md
@@ -105,5 +105,5 @@ If your Pyroscope server has multi-tenancy enabled, you'll need to configure a t
## Ruby profiling examples
Check out the following resources to learn more about Ruby profiling:
-- [Ruby examples](https://github.com/pyroscope-io/pyroscope/tree/main/examples/language-sdk-instrumentation/ruby)
-- [Ruby Demo](https://play.grafana.org/a/grafana-pyroscope-app/single?query=process_cpu%3Asamples%3Acount%3A%3Amilliseconds%7Bservice_name%3D%22pyroscope-rideshare-ruby%22%7D&from=now-1h&until=now) showing Ruby example with tags
+- [Ruby examples](https://github.com/pyroscope-io/pyroscope/tree/main/examples/language-sdk-instrumentation/ruby) demonstrating how Ruby applications, including Rails, can be profiled with Pyroscope.
+- A [Ruby demo](https://play.grafana.org/a/grafana-pyroscope-app/profiles-explorer?searchText=&panelType=time-series&layout=grid&hideNoData=off&explorationType=flame-graph&var-serviceName=pyroscope-rideshare-ruby&var-profileMetricId=process_cpu:cpu:nanoseconds:cpu:nanoseconds&var-dataSource=grafanacloud-profiles) on play.grafana.org.
diff --git a/docs/sources/configure-client/opentelemetry/ebpf-profiler.md b/docs/sources/configure-client/opentelemetry/ebpf-profiler.md
index cc1d24513a..94606af2d6 100644
--- a/docs/sources/configure-client/opentelemetry/ebpf-profiler.md
+++ b/docs/sources/configure-client/opentelemetry/ebpf-profiler.md
@@ -47,6 +47,6 @@ The profile collection pipeline consists of:
## Get started
-For detailed setup instructions and working examples, refer to the [examples repository](https://github.com/grafana/pyroscope/tree/main/examples/grafana-agent-auto-instrumentation/ebpf-otel).
+For detailed setup instructions and working examples, refer to the [examples repository](https://github.com/grafana/pyroscope/tree/main/examples/grafana-alloy-auto-instrumentation/ebpf-otel).
The examples demonstrate deployments for both Docker and Kubernetes environments.
diff --git a/docs/sources/configure-client/trace-span-profiles/go-span-profiles.md b/docs/sources/configure-client/trace-span-profiles/go-span-profiles.md
index fdf4dc2857..7ccd47814e 100644
--- a/docs/sources/configure-client/trace-span-profiles/go-span-profiles.md
+++ b/docs/sources/configure-client/trace-span-profiles/go-span-profiles.md
@@ -97,7 +97,7 @@ To learn how to set up Traces to profiles and view the span profiles, refer to [
## Examples
-Check out the [examples](https://github.com/grafana/pyroscope/tree/main/examples/tracing/tempo) directory for a complete demo application that shows tracing integration features.
+Check out the [examples](https://github.com/grafana/pyroscope/tree/main/examples/tracing/golang-push) directory for a complete demo application that shows tracing integration features.
| |