Repository: open-telemetry/opentelemetry.io
Pull request #6733: [collector/management] Bring OpAMP Supervisor example up-to-date
Author: login: johannaojeling
Labels: name: sig:collector
name: docs:registry
Created: 2025-04-20T15:09:51Z | Merged: 2025-04-24T10:39:29Z

Updates the Collector Management OpAMP example to use the official OpAMP Supervisor release binary.

The step-by-step walkthrough and installation guide follow a similar pattern as the [Building a custom collector](https://github.com/open-telemetry/opentelemetry.io/blob/0cd49dfaab2ff0a2a4e033298f7f48f2cc8fde08/content/en/docs/collector/custom-collector.md) page.

Fixes https://github.com/open-telemetry/opentelemetry.io/issues/6732.

---

**Preview:** https://deploy-preview-6733--opentelemetry.netlify.app/docs/collector/management/


Diff:
diff --git a/content/en/docs/collector/img/opamp-server-additional-config.png b/content/en/docs/collector/img/opamp-server-additional-config.png
new file mode 100644
index 000000000000..7821ac734d01
Binary files /dev/null and b/content/en/docs/collector/img/opamp-server-additional-config.png differ
diff --git a/content/en/docs/collector/img/opamp-server-agent.png b/content/en/docs/collector/img/opamp-server-agent.png
new file mode 100644
index 000000000000..8714fd52d5a4
Binary files /dev/null and b/content/en/docs/collector/img/opamp-server-agent.png differ
diff --git a/content/en/docs/collector/img/opamp-server-ui.png b/content/en/docs/collector/img/opamp-server-ui.png
index c39068179c2a..4587cd4e8868 100644
Binary files a/content/en/docs/collector/img/opamp-server-ui.png and b/content/en/docs/collector/img/opamp-server-ui.png differ
diff --git a/content/en/docs/collector/management.md b/content/en/docs/collector/management.md
index 956d87905d55..e6a6494b7b8f 100644
--- a/content/en/docs/collector/management.md
+++ b/content/en/docs/collector/management.md
@@ -1,8 +1,8 @@
 ---
 title: Management
-description: How to manage your OpenTelemetry collector deployment at scale
+description: How to manage your OpenTelemetry Collector deployment at scale
 weight: 23
-cSpell:ignore: AFVGQT backpressure distro GRRKNBJE hostmetrics
+cSpell:ignore: backpressure distro hostmetrics opampsupervisor
 ---
 
 This document describes how you can manage your OpenTelemetry Collector
@@ -81,69 +81,159 @@ Let's have a look at a concrete setup:
    the server-side OpAMP part and the collector (or a supervisor controlling the
    collector) implementing OpAMP client-side.
 
+### Try it out
+
 You can try out a simple OpAMP setup yourself by using the [OpAMP protocol
-implementation in Go][opamp-go]. For the following walkthrough you will need to
-have Go in version 1.19 or above available.
+implementation in Go][opamp-go]. For the following walkthrough you will need Go
+1.22+.
 
 We will set up a simple OpAMP control plane consisting of an example OpAMP
-server and let an OpenTelemetry Collector connect to it via an example OpAMP
-supervisor.
+server and let an OpenTelemetry Collector connect to it using the [OpAMP
+Supervisor][opamp-supervisor].
+
+#### Step 1 - Start the OpAMP server
 
-First, clone the `open-telemetry/opamp-go` repository:
+Clone the `open-telemetry/opamp-go` repository:
 
 ```sh
 git clone https://github.com/open-telemetry/opamp-go.git
 ```
 
-Next, we need an OpenTelemetry Collector binary that the OpAMP supervisor can
-manage. For that, install the [OpenTelemetry Collector Contrib][otelcolcontrib]
-distro. The path to the collector binary (where you installed it into) is
-referred to as `$OTEL_COLLECTOR_BINARY` in the following.
-
 In the `./opamp-go/internal/examples/server` directory, launch the OpAMP server:
 
 ```console
 $ go run .
-2023/02/08 13:31:32.004501 [MAIN] OpAMP Server starting...
-2023/02/08 13:31:32.004815 [MAIN] OpAMP Server running...
+2025/04/20 15:10:35.307207 [MAIN] OpAMP Server starting...
+2025/04/20 15:10:35.308201 [MAIN] OpAMP Server running...
+```
+
+#### Step 2 - Install the OpenTelemetry Collector
+
+We need an OpenTelemetry Collector binary that the OpAMP Supervisor can manage.
+For that, install the [OpenTelemetry Collector Contrib][otelcolcontrib] distro.
+The path where you installed the Collector binary is referred to as
+`$OTEL_COLLECTOR_BINARY` in the following configuration.
+
+#### Step 3 - Install the OpAMP Supervisor
+
+The `opampsupervisor` binary is available as a downloadable asset from
+OpenTelemetry Collector [releases with `cmd/opampsupervisor` tags][tags]. You
+will find a list of assets named based on OS and chipset, so download the one
+that fits your configuration:
+
+{{< tabpane text=true >}}
+
+{{% tab "Linux (AMD 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_amd64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "Linux (ARM 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_arm64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "Linux (ppc64le) "%}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_ppc64le"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "macOS (AMD 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_darwin_amd64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "macOS (ARM 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_darwin_arm64"
+chmod +x opampsupervisor
 ```
 
-In the `./opamp-go/internal/examples/supervisor` directory create a file named
-`supervisor.yaml` with the following content (telling the supervisor where to
-find the server and what OpenTelemetry Collector binary to manage):
+{{% /tab %}} {{% tab "Windows (AMD 64)" %}}
+
+```sh
+Invoke-WebRequest -Uri "https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_windows_amd64.exe" -OutFile "opampsupervisor.exe"
+Unblock-File -Path "opampsupervisor.exe"
+```
+
+{{% /tab %}} {{< /tabpane >}}
+
+#### Step 4 - Create an OpAMP Supervisor configuration file
+
+Create a file named `supervisor.yaml` with the following content:
 
 ```yaml
 server:
-  endpoint: ws://127.0.0.1:4320/v1/opamp
+  endpoint: wss://127.0.0.1:4320/v1/opamp
+  tls:
+    insecure_skip_verify: true
+
+capabilities:
+  accepts_remote_config: true
+  reports_effective_config: true
+  reports_own_metrics: false
+  reports_own_logs: true
+  reports_own_traces: false
+  reports_health: true
+  reports_remote_config: true
 
 agent:
   executable: $OTEL_COLLECTOR_BINARY
+
+storage:
+  directory: ./storage
 ```
 
-> **Note** Make sure to replace `$OTEL_COLLECTOR_BINARY` with the actual file
-> path. For example, in Linux or macOS, if you installed the collector in
-> `/usr/local/bin/` then you would replace `$OTEL_COLLECTOR_BINARY` with
-> `/usr/local/bin/otelcol`.
+{{% alert color="primary" title="NOTE" %}}
+
+Make sure to replace `$OTEL_COLLECTOR_BINARY` with the actual file path. For
+example, in Linux or macOS, if you installed the Collector in `/usr/local/bin/`,
+then you would replace `$OTEL_COLLECTOR_BINARY` with `/usr/local/bin/otelcol`.
+
+{{% /alert %}}
+
+#### Step 5 - Run the OpAMP Supervisor
 
-Next, create a collector configuration as follows (save it in a file called
-`effective.yaml` in the `./opamp-go/internal/examples/supervisor` directory):
+Now it's time to launch the supervisor, which in turn launches your
+OpenTelemetry Collector:
+
+```console
+$ ./opampsupervisor --config=./supervisor.yaml
+{"level":"info","ts":1745154644.746028,"logger":"supervisor","caller":"supervisor/supervisor.go:340","msg":"Supervisor starting","id":"01965352-9958-72da-905c-e40329c32c64"}
+{"level":"info","ts":1745154644.74608,"logger":"supervisor","caller":"supervisor/supervisor.go:1086","msg":"No last received remote config found"}
+```
+
+If everything worked out, you should now be able to go to
+[http://localhost:4321/](http://localhost:4321/) and access the OpAMP server UI.
+You should see your Collector listed among the agents managed by the Supervisor:
+
+![OpAMP example setup](../img/opamp-server-ui.png)
+
+#### Step 6 - Configure the OpenTelemetry Collector remotely
+
+Click on the Collector in the server UI and paste the following content to the
+`Additional Configuration` box:
 
 ```yaml
 receivers:
-  prometheus/own_metrics:
-    config:
-      scrape_configs:
-        - job_name: otel-collector
-          scrape_interval: 10s
-          static_configs:
-            - targets: [0.0.0.0:8888]
   hostmetrics:
     collection_interval: 10s
     scrapers:
-      load:
-      filesystem:
-      memory:
-      network:
+      cpu:
 
 exporters:
   # NOTE: Prior to v0.86.0 use `logging` instead of `debug`.
@@ -153,57 +243,50 @@ exporters:
 service:
   pipelines:
     metrics:
-      receivers: [hostmetrics, prometheus/own_metrics]
+      receivers: [hostmetrics]
       exporters: [debug]
 ```
 
-Now it's time to launch the supervisor (which in turn will launch your
-OpenTelemetry Collector):
+Click `Save and Send to Agent`:
 
-```console
-$ go run .
-2023/02/08 13:32:54 Supervisor starting, id=01GRRKNBJE06AFVGQT5ZYC0GEK, type=io.opentelemetry.collector, version=1.0.0.
-2023/02/08 13:32:54 Starting OpAMP client...
-2023/02/08 13:32:54 OpAMP Client started.
-2023/02/08 13:32:54 Starting agent /usr/local/bin/otelcol
-2023/02/08 13:32:54 Connected to the server.
-2023/02/08 13:32:54 Received remote config from server, hash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.
-2023/02/08 13:32:54 Agent process started, PID=13553
-2023/02/08 13:32:54 Effective config changed.
-2023/02/08 13:32:54 Enabling own metrics pipeline in the config<F11>
-2023/02/08 13:32:54 Effective config changed.
-2023/02/08 13:32:54 Config is changed. Signal to restart the agent.
-2023/02/08 13:32:54 Agent is not healthy: Get "http://localhost:13133": dial tcp [::1]:13133: connect: connection refused
-2023/02/08 13:32:54 Stopping the agent to apply new config.
-2023/02/08 13:32:54 Stopping agent process, PID=13553
-2023/02/08 13:32:54 Agent process PID=13553 successfully stopped.
-2023/02/08 13:32:54 Starting agent /usr/local/bin/otelcol
-2023/02/08 13:32:54 Agent process started, PID=13554
-2023/02/08 13:32:54 Agent is not healthy: Get "http://localhost:13133": dial tcp [::1]:13133: connect: connection refused
-2023/02/08 13:32:55 Agent is not healthy: health check on http://localhost:13133 returned 503
-2023/02/08 13:32:55 Agent is not healthy: health check on http://localhost:13133 returned 503
-2023/02/08 13:32:56 Agent is not healthy: health check on http://localhost:13133 returned 503
-2023/02/08 13:32:57 Agent is healthy.
-```
+![OpAMP additional configuration](../img/opamp-server-additional-config.png)
 
-If everything worked out you should now be able to go to
-[http://localhost:4321/](http://localhost:4321/) and access the OpAMP server UI
-where you should see your collector listed, managed by the supervisor:
+Reload the page and verify that the Agent status shows `Up: true`:
 
-![OpAMP example setup](../img/opamp-server-ui.png)
+![OpAMP agent](../img/opamp-server-agent.png)
 
-You can also query the collector for the metrics exported (note the label
-values):
+You can query the Collector for the metrics exported (note the label values):
 
 ```console
 $ curl localhost:8888/metrics
+# HELP otelcol_exporter_send_failed_metric_points Number of metric points in failed attempts to send to destination. [alpha]
+# TYPE otelcol_exporter_send_failed_metric_points counter
+otelcol_exporter_send_failed_metric_points{exporter="debug",service_instance_id="01965352-9958-72da-905c-e40329c32c64",service_name="otelcol-contrib",service_version="0.124.1"} 0
+# HELP otelcol_exporter_sent_metric_points Number of metric points successfully sent to destination. [alpha]
+# TYPE otelcol_exporter_sent_metric_points counter
+otelcol_exporter_sent_metric_points{exporter="debug",service_instance_id="01965352-9958-72da-905c-e40329c32c64",service_name="otelcol-contrib",service_version="0.124.1"} 132
+# HELP otelcol_process_cpu_seconds Total CPU user and system time in seconds [alpha]
+# TYPE otelcol_process_cpu_seconds counter
+otelcol_process_cpu_seconds{service_instance_id="01965352-9958-72da-905c-e40329c32c64",service_name="otelcol-contrib",service_version="0.124.1"} 0.127965
 ...
-# HELP otelcol_receiver_accepted_metric_points Number of metric points successfully pushed into the pipeline.
-# TYPE otelcol_receiver_accepted_metric_points counter
-otelcol_receiver_accepted_metric_points{receiver="prometheus/own_metrics",service_instance_id="01GRRKNBJE06AFVGQT5ZYC0GEK",service_name="io.opentelemetry.collector",service_version="1.0.0",transport="http"} 322
-# HELP otelcol_receiver_refused_metric_points Number of metric points that could not be pushed into the pipeline.
-# TYPE otelcol_receiver_refused_metric_points counter
-otelcol_receiver_refused_metric_points{receiver="prometheus/own_metrics",service_instance_id="01GRRKNBJE06AFVGQT5ZYC0GEK",service_name="io.opentelemetry.collector",service_version="1.0.0",transport="http"} 0
+```
+
+You can also inspect the Collector's logs:
+
+```console
+$ cat ./storage/agent.log
+{"level":"info","ts":"2025-04-20T15:11:12.996+0200","caller":"service@v0.124.0/service.go:199","msg":"Setting up own telemetry..."}
+{"level":"info","ts":"2025-04-20T15:11:12.996+0200","caller":"builders/builders.go:26","msg":"Development component. May change in the future."}
+{"level":"info","ts":"2025-04-20T15:11:12.997+0200","caller":"service@v0.124.0/service.go:266","msg":"Starting otelcol-contrib...","Version":"0.124.1","NumCPU":11}
+{"level":"info","ts":"2025-04-20T15:11:12.997+0200","caller":"extensions/extensions.go:41","msg":"Starting extensions..."}
+{"level":"info","ts":"2025-04-20T15:11:12.997+0200","caller":"extensions/extensions.go:45","msg":"Extension is starting..."}
+{"level":"info","ts":"2025-04-20T15:11:13.022+0200","caller":"extensions/extensions.go:62","msg":"Extension started."}
+{"level":"info","ts":"2025-04-20T15:11:13.022+0200","caller":"extensions/extensions.go:45","msg":"Extension is starting..."}
+{"level":"info","ts":"2025-04-20T15:11:13.022+0200","caller":"healthcheckextension@v0.124.1/healthcheckextension.go:32","msg":"Starting health_check extension","config":{"Endpoint":"localhost:58760","TLSSetting":null,"CORS":null,"Auth":null,"MaxRequestBodySize":0,"IncludeMetadata":false,"ResponseHeaders":null,"CompressionAlgorithms":null,"ReadTimeout":0,"ReadHeaderTimeout":0,"WriteTimeout":0,"IdleTimeout":0,"Path":"/","ResponseBody":null,"CheckCollectorPipeline":{"Enabled":false,"Interval":"5m","ExporterFailureThreshold":5}}}
+{"level":"info","ts":"2025-04-20T15:11:13.022+0200","caller":"extensions/extensions.go:62","msg":"Extension started."}
+{"level":"info","ts":"2025-04-20T15:11:13.024+0200","caller":"healthcheck/handler.go:132","msg":"Health Check state change","status":"ready"}
+{"level":"info","ts":"2025-04-20T15:11:13.024+0200","caller":"service@v0.124.0/service.go:289","msg":"Everything is ready. Begin running and processing data."}
+{"level":"info","ts":"2025-04-20T15:11:14.025+0200","msg":"Metrics","resource metrics":1,"metrics":1,"data points":44}
 ```
 
 ## Other information
@@ -222,8 +305,11 @@ otelcol_receiver_refused_metric_points{receiver="prometheus/own_metrics",service
 [opamp-in-otel-collector]:
   https://docs.google.com/document/d/1KtH5atZQUs9Achbce6LiOaJxLbksNJenvgvyKLsJrkc/edit#heading=h.ioikt02qpy5f
 [opamp-go]: https://github.com/open-telemetry/opamp-go
+[opamp-supervisor]:
+  https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/cmd/opampsupervisor
 [otelcolcontrib]:
   https://github.com/open-telemetry/opentelemetry-collector-releases/releases
+[tags]: https://github.com/open-telemetry/opentelemetry-collector-releases/tags
 [blog-opamp-service-telemetry]: /blog/2022/opamp/
 [opamp-lt]: https://www.youtube.com/watch?v=LUsfZFRM4yo
 [opamp-bindplane]: https://www.youtube.com/watch?v=N18z2dOJSd8
diff --git a/data/registry/collector-cmd-opampsupervisor.yml b/data/registry/collector-cmd-opampsupervisor.yml
new file mode 100644
index 000000000000..a9e74d38f06a
--- /dev/null
+++ b/data/registry/collector-cmd-opampsupervisor.yml
@@ -0,0 +1,18 @@
+# cSpell:ignore opampsupervisor
+title: OpAMP Supervisor
+registryType: utilities
+language: collector
+tags:
+  - collector
+  - opamp
+license: Apache 2.0
+description: Collector Supervisor for OpAMP
+authors:
+  - name: OpenTelemetry Authors
+urls:
+  repo: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/cmd/opampsupervisor
+createdAt: 2025-04-20
+package:
+  registry: go-collector
+  name: github.com/open-telemetry/opentelemetry-collector-contrib/cmd/opampsupervisor
+  version: v0.124.1
diff --git a/static/refcache.json b/static/refcache.json
index e475f5fbd3d3..7b4d9313b0b4 100644
--- a/static/refcache.json
+++ b/static/refcache.json
@@ -5623,6 +5623,10 @@
     "StatusCode": 206,
     "LastSeen": "2025-01-23T00:42:06.061499598Z"
   },
+  "https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/cmd/opampsupervisor": {
+    "StatusCode": 206,
+    "LastSeen": "2025-04-22T16:02:37.121872+02:00"
+  },
   "https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/cmd/telemetrygen": {
     "StatusCode": 206,
     "LastSeen": "2025-01-16T14:34:01.580787-05:00"
@@ -15715,6 +15719,10 @@
     "StatusCode": 200,
     "LastSeen": "2025-01-30T14:41:05.186296-05:00"
   },
+  "https://pkg.go.dev/github.com/open-telemetry/opentelemetry-collector-contrib/cmd/opampsupervisor": {
+    "StatusCode": 200,
+    "LastSeen": "2025-04-22T16:02:45.796954+02:00"
+  },
   "https://pkg.go.dev/github.com/open-telemetry/opentelemetry-collector-contrib/exporter/alertmanagerexporter": {
     "StatusCode": 200,
     "LastSeen": "2025-02-02T10:58:51.272137-05:00"


Reviews:
user: login: johannaojeling
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-20T15:15:43Z
user: login: tiffany76
body: Thanks, @johannaojeling! I know most of the text here is legacy content, but I figured while we're making updates, we can polish it a bit. 

Otherwise LGTM from a copyedit perspective!
state: APPROVED
author_association: MEMBER
submitted_at: 2025-04-22T13:19:01Z
user: login: codeboten
body: Thanks @johannaojeling!
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-22T20:47:03Z
user: login: tiffany76
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-22T21:01:17Z
user: login: chalin
body: See inline comments. I'm ok with addressing the minor concerns and factoring out the "Try it out" to another page later.
state: CHANGES_REQUESTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-23T16:44:39Z
user: login: chalin
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-23T16:45:13Z
user: login: tiffany76
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-23T19:47:59Z
user: login: tiffany76
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-23T19:55:54Z
user: login: chalin
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-24T00:15:12Z
user: login: chalin
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-24T00:17:14Z
user: login: chalin
body: RSLGTM. Here's the followup issue:

- #6742

@tiffany76 - I'll let you merge when ready.
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-24T00:20:54Z
user: login: dmitryax
body: One nit, otherwise LGTM
state: APPROVED
author_association: MEMBER
submitted_at: 2025-04-24T00:32:02Z
user: login: johannaojeling
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-24T06:23:50Z

Review comments:
diff_hunk: @@ -81,129 +81,207 @@ Let's have a look at a concrete setup:
    the server-side OpAMP part and the collector (or a supervisor controlling the
    collector) implementing OpAMP client-side.
 
+### Quick start
+
 You can try out a simple OpAMP setup yourself by using the [OpAMP protocol
 implementation in Go][opamp-go]. For the following walkthrough you will need to
-have Go in version 1.19 or above available.
+have Go in version 1.22 or above available.
path: content/en/docs/collector/management.md
user: login: johannaojeling
body: Version taken from `opamp-go`'s [contribution guidelines](https://github.com/open-telemetry/opamp-go/blob/d646431dacb432f56a84111bf94c9741692f53c0/CONTRIBUTING.md?plain=1#L11) and [go.mod](https://github.com/open-telemetry/opamp-go/blob/d646431dacb432f56a84111bf94c9741692f53c0/go.mod#L3).
created_at: 2025-04-20T15:12:06Z
author_association: MEMBER
path: data/registry/collector-cmd-opampsupervisor.yml
user: login: johannaojeling
body: I looked at how [collector-builder.yml](https://github.com/open-telemetry/opentelemetry.io/blob/0cd49dfaab2ff0a2a4e033298f7f48f2cc8fde08/data/registry/collector-builder.yml) and [collector-extension-opamp.yml](https://github.com/open-telemetry/opentelemetry.io/blob/0cd49dfaab2ff0a2a4e033298f7f48f2cc8fde08/data/registry/collector-extension-opamp.yml) were configured to populate this file. Is there anything else that needs to be done for this to be picked up by the auto-update job, and test that it has been configured correctly?
created_at: 2025-04-20T15:15:22Z
author_association: MEMBER
diff_hunk: @@ -81,129 +81,207 @@ Let's have a look at a concrete setup:
    the server-side OpAMP part and the collector (or a supervisor controlling the
    collector) implementing OpAMP client-side.
 
+### Quick start
+
 You can try out a simple OpAMP setup yourself by using the [OpAMP protocol
 implementation in Go][opamp-go]. For the following walkthrough you will need to
-have Go in version 1.19 or above available.
+have Go in version 1.22 or above available.
 
 We will set up a simple OpAMP control plane consisting of an example OpAMP
-server and let an OpenTelemetry Collector connect to it via an example OpAMP
-supervisor.
+server and let an OpenTelemetry Collector connect to it via the [OpAMP
path: content/en/docs/collector/management.md
user: login: tiffany76
body: ```suggestion
server and let an OpenTelemetry Collector connect to it using the [OpAMP
```
created_at: 2025-04-22T12:46:10Z
author_association: MEMBER
diff_hunk: @@ -81,129 +81,207 @@ Let's have a look at a concrete setup:
    the server-side OpAMP part and the collector (or a supervisor controlling the
    collector) implementing OpAMP client-side.
 
+### Quick start
+
 You can try out a simple OpAMP setup yourself by using the [OpAMP protocol
 implementation in Go][opamp-go]. For the following walkthrough you will need to
-have Go in version 1.19 or above available.
+have Go in version 1.22 or above available.
 
 We will set up a simple OpAMP control plane consisting of an example OpAMP
-server and let an OpenTelemetry Collector connect to it via an example OpAMP
-supervisor.
+server and let an OpenTelemetry Collector connect to it via the [OpAMP
+Supervisor][opamp-supervisor].
+
+#### Step 1 - Start the OpAMP server
 
-First, clone the `open-telemetry/opamp-go` repository:
+Clone the `open-telemetry/opamp-go` repository:
 
 ```sh
 git clone https://github.com/open-telemetry/opamp-go.git
 ```
 
-Next, we need an OpenTelemetry Collector binary that the OpAMP supervisor can
-manage. For that, install the [OpenTelemetry Collector Contrib][otelcolcontrib]
-distro. The path to the collector binary (where you installed it into) is
-referred to as `$OTEL_COLLECTOR_BINARY` in the following.
-
 In the `./opamp-go/internal/examples/server` directory, launch the OpAMP server:
 
 ```console
 $ go run .
-2023/02/08 13:31:32.004501 [MAIN] OpAMP Server starting...
-2023/02/08 13:31:32.004815 [MAIN] OpAMP Server running...
+2025/04/20 15:10:35.307207 [MAIN] OpAMP Server starting...
+2025/04/20 15:10:35.308201 [MAIN] OpAMP Server running...
+```
+
+#### Step 2 - Install the OpenTelemetry Collector
+
+We need an OpenTelemetry Collector binary that the OpAMP Supervisor can manage.
+For that, install the [OpenTelemetry Collector Contrib][otelcolcontrib] distro.
+The path to the collector binary (where you installed it into) is referred to as
+`$OTEL_COLLECTOR_BINARY` in the following.
path: content/en/docs/collector/management.md
user: login: tiffany76
body: ```suggestion
The path where you installed the Collector binary is referred to as
`$OTEL_COLLECTOR_BINARY` in the following configuration.
```
created_at: 2025-04-22T12:51:34Z
author_association: MEMBER
diff_hunk: @@ -81,129 +81,207 @@ Let's have a look at a concrete setup:
    the server-side OpAMP part and the collector (or a supervisor controlling the
    collector) implementing OpAMP client-side.
 
+### Quick start
+
 You can try out a simple OpAMP setup yourself by using the [OpAMP protocol
 implementation in Go][opamp-go]. For the following walkthrough you will need to
-have Go in version 1.19 or above available.
+have Go in version 1.22 or above available.
 
 We will set up a simple OpAMP control plane consisting of an example OpAMP
-server and let an OpenTelemetry Collector connect to it via an example OpAMP
-supervisor.
+server and let an OpenTelemetry Collector connect to it via the [OpAMP
+Supervisor][opamp-supervisor].
+
+#### Step 1 - Start the OpAMP server
 
-First, clone the `open-telemetry/opamp-go` repository:
+Clone the `open-telemetry/opamp-go` repository:
 
 ```sh
 git clone https://github.com/open-telemetry/opamp-go.git
 ```
 
-Next, we need an OpenTelemetry Collector binary that the OpAMP supervisor can
-manage. For that, install the [OpenTelemetry Collector Contrib][otelcolcontrib]
-distro. The path to the collector binary (where you installed it into) is
-referred to as `$OTEL_COLLECTOR_BINARY` in the following.
-
 In the `./opamp-go/internal/examples/server` directory, launch the OpAMP server:
 
 ```console
 $ go run .
-2023/02/08 13:31:32.004501 [MAIN] OpAMP Server starting...
-2023/02/08 13:31:32.004815 [MAIN] OpAMP Server running...
+2025/04/20 15:10:35.307207 [MAIN] OpAMP Server starting...
+2025/04/20 15:10:35.308201 [MAIN] OpAMP Server running...
+```
+
+#### Step 2 - Install the OpenTelemetry Collector
+
+We need an OpenTelemetry Collector binary that the OpAMP Supervisor can manage.
+For that, install the [OpenTelemetry Collector Contrib][otelcolcontrib] distro.
+The path to the collector binary (where you installed it into) is referred to as
+`$OTEL_COLLECTOR_BINARY` in the following.
+
+#### Step 3 - Install the OpAMP Supervisor
+
+The `opampsupervisor` binary is available as a downloadable asset from
+OpenTelemetry Collector [releases with `cmd/opampsupervisor` tags][tags]. You
+will find a list of assets named based on OS and chipset, so download the one
+that fits your configuration:
+
+{{< tabpane text=true >}}
+
+{{% tab "Linux (AMD 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_amd64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "Linux (ARM 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_arm64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "Linux (ppc64le) "%}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_ppc64le"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "macOS (AMD 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_darwin_amd64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "macOS (ARM 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_darwin_arm64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "Windows (AMD 64)" %}}
+
+```sh
+Invoke-WebRequest -Uri "https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_windows_amd64.exe" -OutFile "opampsupervisor.exe"
+Unblock-File -Path "opampsupervisor.exe"
 ```
 
-In the `./opamp-go/internal/examples/supervisor` directory create a file named
-`supervisor.yaml` with the following content (telling the supervisor where to
-find the server and what OpenTelemetry Collector binary to manage):
+{{% /tab %}} {{< /tabpane >}}
+
+#### Step 4 - Create an OpAMP Supervisor configuration file
+
+Create a file named `supervisor.yaml` with the following content:
 
 ```yaml
 server:
-  endpoint: ws://127.0.0.1:4320/v1/opamp
+  endpoint: wss://127.0.0.1:4320/v1/opamp
+  tls:
+    insecure_skip_verify: true
+
+capabilities:
+  accepts_remote_config: true
+  reports_effective_config: true
+  reports_own_metrics: false
+  reports_own_logs: true
+  reports_own_traces: false
+  reports_health: true
+  reports_remote_config: true
 
 agent:
   executable: $OTEL_COLLECTOR_BINARY
+
+storage:
+  directory: ./storage
 ```
 
 > **Note** Make sure to replace `$OTEL_COLLECTOR_BINARY` with the actual file
 > path. For example, in Linux or macOS, if you installed the collector in
 > `/usr/local/bin/` then you would replace `$OTEL_COLLECTOR_BINARY` with
 > `/usr/local/bin/otelcol`.
path: content/en/docs/collector/management.md
user: login: tiffany76
body: While we're here, let's change this formatting to the alert shortcode.

```suggestion
{{% alert color="primary" title="NOTE" %}}

Make sure to replace `$OTEL_COLLECTOR_BINARY` with the actual file
path. For example, in Linux or macOS, if you installed the Collector in
`/usr/local/bin/`, then you would replace `$OTEL_COLLECTOR_BINARY` with
`/usr/local/bin/otelcol`.

{{% /alert %}}
```
created_at: 2025-04-22T12:58:10Z
author_association: MEMBER
diff_hunk: @@ -81,129 +81,207 @@ Let's have a look at a concrete setup:
    the server-side OpAMP part and the collector (or a supervisor controlling the
    collector) implementing OpAMP client-side.
 
+### Quick start
+
 You can try out a simple OpAMP setup yourself by using the [OpAMP protocol
 implementation in Go][opamp-go]. For the following walkthrough you will need to
-have Go in version 1.19 or above available.
+have Go in version 1.22 or above available.
 
 We will set up a simple OpAMP control plane consisting of an example OpAMP
-server and let an OpenTelemetry Collector connect to it via an example OpAMP
-supervisor.
+server and let an OpenTelemetry Collector connect to it via the [OpAMP
+Supervisor][opamp-supervisor].
+
+#### Step 1 - Start the OpAMP server
 
-First, clone the `open-telemetry/opamp-go` repository:
+Clone the `open-telemetry/opamp-go` repository:
 
 ```sh
 git clone https://github.com/open-telemetry/opamp-go.git
 ```
 
-Next, we need an OpenTelemetry Collector binary that the OpAMP supervisor can
-manage. For that, install the [OpenTelemetry Collector Contrib][otelcolcontrib]
-distro. The path to the collector binary (where you installed it into) is
-referred to as `$OTEL_COLLECTOR_BINARY` in the following.
-
 In the `./opamp-go/internal/examples/server` directory, launch the OpAMP server:
 
 ```console
 $ go run .
-2023/02/08 13:31:32.004501 [MAIN] OpAMP Server starting...
-2023/02/08 13:31:32.004815 [MAIN] OpAMP Server running...
+2025/04/20 15:10:35.307207 [MAIN] OpAMP Server starting...
+2025/04/20 15:10:35.308201 [MAIN] OpAMP Server running...
+```
+
+#### Step 2 - Install the OpenTelemetry Collector
+
+We need an OpenTelemetry Collector binary that the OpAMP Supervisor can manage.
+For that, install the [OpenTelemetry Collector Contrib][otelcolcontrib] distro.
+The path to the collector binary (where you installed it into) is referred to as
+`$OTEL_COLLECTOR_BINARY` in the following.
+
+#### Step 3 - Install the OpAMP Supervisor
+
+The `opampsupervisor` binary is available as a downloadable asset from
+OpenTelemetry Collector [releases with `cmd/opampsupervisor` tags][tags]. You
+will find a list of assets named based on OS and chipset, so download the one
+that fits your configuration:
+
+{{< tabpane text=true >}}
+
+{{% tab "Linux (AMD 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_amd64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "Linux (ARM 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_arm64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "Linux (ppc64le) "%}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_ppc64le"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "macOS (AMD 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_darwin_amd64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "macOS (ARM 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_darwin_arm64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "Windows (AMD 64)" %}}
+
+```sh
+Invoke-WebRequest -Uri "https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_windows_amd64.exe" -OutFile "opampsupervisor.exe"
+Unblock-File -Path "opampsupervisor.exe"
 ```
 
-In the `./opamp-go/internal/examples/supervisor` directory create a file named
-`supervisor.yaml` with the following content (telling the supervisor where to
-find the server and what OpenTelemetry Collector binary to manage):
+{{% /tab %}} {{< /tabpane >}}
+
+#### Step 4 - Create an OpAMP Supervisor configuration file
+
+Create a file named `supervisor.yaml` with the following content:
 
 ```yaml
 server:
-  endpoint: ws://127.0.0.1:4320/v1/opamp
+  endpoint: wss://127.0.0.1:4320/v1/opamp
+  tls:
+    insecure_skip_verify: true
+
+capabilities:
+  accepts_remote_config: true
+  reports_effective_config: true
+  reports_own_metrics: false
+  reports_own_logs: true
+  reports_own_traces: false
+  reports_health: true
+  reports_remote_config: true
 
 agent:
   executable: $OTEL_COLLECTOR_BINARY
+
+storage:
+  directory: ./storage
 ```
 
 > **Note** Make sure to replace `$OTEL_COLLECTOR_BINARY` with the actual file
 > path. For example, in Linux or macOS, if you installed the collector in
 > `/usr/local/bin/` then you would replace `$OTEL_COLLECTOR_BINARY` with
 > `/usr/local/bin/otelcol`.
 
-Next, create a collector configuration as follows (save it in a file called
-`effective.yaml` in the `./opamp-go/internal/examples/supervisor` directory):
+#### Step 5 - Run the OpAMP Supervisor
+
+Now it's time to launch the supervisor (which in turn will launch your
+OpenTelemetry Collector):
path: content/en/docs/collector/management.md
user: login: tiffany76
body: ```suggestion
Now it's time to launch the supervisor, which in turn launches your
OpenTelemetry Collector:
```
created_at: 2025-04-22T12:59:02Z
author_association: MEMBER
diff_hunk: @@ -81,129 +81,207 @@ Let's have a look at a concrete setup:
    the server-side OpAMP part and the collector (or a supervisor controlling the
    collector) implementing OpAMP client-side.
 
+### Quick start
+
 You can try out a simple OpAMP setup yourself by using the [OpAMP protocol
 implementation in Go][opamp-go]. For the following walkthrough you will need to
-have Go in version 1.19 or above available.
+have Go in version 1.22 or above available.
 
 We will set up a simple OpAMP control plane consisting of an example OpAMP
-server and let an OpenTelemetry Collector connect to it via an example OpAMP
-supervisor.
+server and let an OpenTelemetry Collector connect to it via the [OpAMP
+Supervisor][opamp-supervisor].
+
+#### Step 1 - Start the OpAMP server
 
-First, clone the `open-telemetry/opamp-go` repository:
+Clone the `open-telemetry/opamp-go` repository:
 
 ```sh
 git clone https://github.com/open-telemetry/opamp-go.git
 ```
 
-Next, we need an OpenTelemetry Collector binary that the OpAMP supervisor can
-manage. For that, install the [OpenTelemetry Collector Contrib][otelcolcontrib]
-distro. The path to the collector binary (where you installed it into) is
-referred to as `$OTEL_COLLECTOR_BINARY` in the following.
-
 In the `./opamp-go/internal/examples/server` directory, launch the OpAMP server:
 
 ```console
 $ go run .
-2023/02/08 13:31:32.004501 [MAIN] OpAMP Server starting...
-2023/02/08 13:31:32.004815 [MAIN] OpAMP Server running...
+2025/04/20 15:10:35.307207 [MAIN] OpAMP Server starting...
+2025/04/20 15:10:35.308201 [MAIN] OpAMP Server running...
+```
+
+#### Step 2 - Install the OpenTelemetry Collector
+
+We need an OpenTelemetry Collector binary that the OpAMP Supervisor can manage.
+For that, install the [OpenTelemetry Collector Contrib][otelcolcontrib] distro.
+The path to the collector binary (where you installed it into) is referred to as
+`$OTEL_COLLECTOR_BINARY` in the following.
+
+#### Step 3 - Install the OpAMP Supervisor
+
+The `opampsupervisor` binary is available as a downloadable asset from
+OpenTelemetry Collector [releases with `cmd/opampsupervisor` tags][tags]. You
+will find a list of assets named based on OS and chipset, so download the one
+that fits your configuration:
+
+{{< tabpane text=true >}}
+
+{{% tab "Linux (AMD 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_amd64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "Linux (ARM 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_arm64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "Linux (ppc64le) "%}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_ppc64le"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "macOS (AMD 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_darwin_amd64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "macOS (ARM 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_darwin_arm64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "Windows (AMD 64)" %}}
+
+```sh
+Invoke-WebRequest -Uri "https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_windows_amd64.exe" -OutFile "opampsupervisor.exe"
+Unblock-File -Path "opampsupervisor.exe"
 ```
 
-In the `./opamp-go/internal/examples/supervisor` directory create a file named
-`supervisor.yaml` with the following content (telling the supervisor where to
-find the server and what OpenTelemetry Collector binary to manage):
+{{% /tab %}} {{< /tabpane >}}
+
+#### Step 4 - Create an OpAMP Supervisor configuration file
+
+Create a file named `supervisor.yaml` with the following content:
 
 ```yaml
 server:
-  endpoint: ws://127.0.0.1:4320/v1/opamp
+  endpoint: wss://127.0.0.1:4320/v1/opamp
+  tls:
+    insecure_skip_verify: true
+
+capabilities:
+  accepts_remote_config: true
+  reports_effective_config: true
+  reports_own_metrics: false
+  reports_own_logs: true
+  reports_own_traces: false
+  reports_health: true
+  reports_remote_config: true
 
 agent:
   executable: $OTEL_COLLECTOR_BINARY
+
+storage:
+  directory: ./storage
 ```
 
 > **Note** Make sure to replace `$OTEL_COLLECTOR_BINARY` with the actual file
 > path. For example, in Linux or macOS, if you installed the collector in
 > `/usr/local/bin/` then you would replace `$OTEL_COLLECTOR_BINARY` with
 > `/usr/local/bin/otelcol`.
 
-Next, create a collector configuration as follows (save it in a file called
-`effective.yaml` in the `./opamp-go/internal/examples/supervisor` directory):
+#### Step 5 - Run the OpAMP Supervisor
+
+Now it's time to launch the supervisor (which in turn will launch your
+OpenTelemetry Collector):
+
+```console
+$ ./opampsupervisor --config=./supervisor.yaml
+{"level":"info","ts":1745154644.746028,"logger":"supervisor","caller":"supervisor/supervisor.go:340","msg":"Supervisor starting","id":"01965352-9958-72da-905c-e40329c32c64"}
+{"level":"info","ts":1745154644.74608,"logger":"supervisor","caller":"supervisor/supervisor.go:1086","msg":"No last received remote config found"}
+```
+
+If everything worked out you should now be able to go to
+[http://localhost:4321/](http://localhost:4321/) and access the OpAMP server UI
+where you should see your collector listed, managed by the supervisor:
path: content/en/docs/collector/management.md
user: login: tiffany76
body: ```suggestion
If everything worked out, you should now be able to go to
[http://localhost:4321/](http://localhost:4321/) and access the OpAMP server UI.
You should see your Collector listed among the agents managed by the Supervisor:
```
created_at: 2025-04-22T13:10:55Z
author_association: MEMBER
diff_hunk: @@ -81,129 +81,207 @@ Let's have a look at a concrete setup:
    the server-side OpAMP part and the collector (or a supervisor controlling the
    collector) implementing OpAMP client-side.
 
+### Quick start
+
 You can try out a simple OpAMP setup yourself by using the [OpAMP protocol
 implementation in Go][opamp-go]. For the following walkthrough you will need to
-have Go in version 1.19 or above available.
+have Go in version 1.22 or above available.
 
 We will set up a simple OpAMP control plane consisting of an example OpAMP
-server and let an OpenTelemetry Collector connect to it via an example OpAMP
-supervisor.
+server and let an OpenTelemetry Collector connect to it via the [OpAMP
+Supervisor][opamp-supervisor].
+
+#### Step 1 - Start the OpAMP server
 
-First, clone the `open-telemetry/opamp-go` repository:
+Clone the `open-telemetry/opamp-go` repository:
 
 ```sh
 git clone https://github.com/open-telemetry/opamp-go.git
 ```
 
-Next, we need an OpenTelemetry Collector binary that the OpAMP supervisor can
-manage. For that, install the [OpenTelemetry Collector Contrib][otelcolcontrib]
-distro. The path to the collector binary (where you installed it into) is
-referred to as `$OTEL_COLLECTOR_BINARY` in the following.
-
 In the `./opamp-go/internal/examples/server` directory, launch the OpAMP server:
 
 ```console
 $ go run .
-2023/02/08 13:31:32.004501 [MAIN] OpAMP Server starting...
-2023/02/08 13:31:32.004815 [MAIN] OpAMP Server running...
+2025/04/20 15:10:35.307207 [MAIN] OpAMP Server starting...
+2025/04/20 15:10:35.308201 [MAIN] OpAMP Server running...
+```
+
+#### Step 2 - Install the OpenTelemetry Collector
+
+We need an OpenTelemetry Collector binary that the OpAMP Supervisor can manage.
+For that, install the [OpenTelemetry Collector Contrib][otelcolcontrib] distro.
+The path to the collector binary (where you installed it into) is referred to as
+`$OTEL_COLLECTOR_BINARY` in the following.
+
+#### Step 3 - Install the OpAMP Supervisor
+
+The `opampsupervisor` binary is available as a downloadable asset from
+OpenTelemetry Collector [releases with `cmd/opampsupervisor` tags][tags]. You
+will find a list of assets named based on OS and chipset, so download the one
+that fits your configuration:
+
+{{< tabpane text=true >}}
+
+{{% tab "Linux (AMD 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_amd64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "Linux (ARM 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_arm64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "Linux (ppc64le) "%}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_ppc64le"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "macOS (AMD 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_darwin_amd64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "macOS (ARM 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_darwin_arm64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "Windows (AMD 64)" %}}
+
+```sh
+Invoke-WebRequest -Uri "https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_windows_amd64.exe" -OutFile "opampsupervisor.exe"
+Unblock-File -Path "opampsupervisor.exe"
 ```
 
-In the `./opamp-go/internal/examples/supervisor` directory create a file named
-`supervisor.yaml` with the following content (telling the supervisor where to
-find the server and what OpenTelemetry Collector binary to manage):
+{{% /tab %}} {{< /tabpane >}}
+
+#### Step 4 - Create an OpAMP Supervisor configuration file
+
+Create a file named `supervisor.yaml` with the following content:
 
 ```yaml
 server:
-  endpoint: ws://127.0.0.1:4320/v1/opamp
+  endpoint: wss://127.0.0.1:4320/v1/opamp
+  tls:
+    insecure_skip_verify: true
+
+capabilities:
+  accepts_remote_config: true
+  reports_effective_config: true
+  reports_own_metrics: false
+  reports_own_logs: true
+  reports_own_traces: false
+  reports_health: true
+  reports_remote_config: true
 
 agent:
   executable: $OTEL_COLLECTOR_BINARY
+
+storage:
+  directory: ./storage
 ```
 
 > **Note** Make sure to replace `$OTEL_COLLECTOR_BINARY` with the actual file
 > path. For example, in Linux or macOS, if you installed the collector in
 > `/usr/local/bin/` then you would replace `$OTEL_COLLECTOR_BINARY` with
 > `/usr/local/bin/otelcol`.
 
-Next, create a collector configuration as follows (save it in a file called
-`effective.yaml` in the `./opamp-go/internal/examples/supervisor` directory):
+#### Step 5 - Run the OpAMP Supervisor
+
+Now it's time to launch the supervisor (which in turn will launch your
+OpenTelemetry Collector):
+
+```console
+$ ./opampsupervisor --config=./supervisor.yaml
+{"level":"info","ts":1745154644.746028,"logger":"supervisor","caller":"supervisor/supervisor.go:340","msg":"Supervisor starting","id":"01965352-9958-72da-905c-e40329c32c64"}
+{"level":"info","ts":1745154644.74608,"logger":"supervisor","caller":"supervisor/supervisor.go:1086","msg":"No last received remote config found"}
+```
+
+If everything worked out you should now be able to go to
+[http://localhost:4321/](http://localhost:4321/) and access the OpAMP server UI
+where you should see your collector listed, managed by the supervisor:
+
+![OpAMP example setup](../img/opamp-server-ui.png)
+
+#### Step 6 - Configure the OpenTelemetry Collector remotely
+
+Click on the collector in the server UI and paste the following content to the
path: content/en/docs/collector/management.md
user: login: tiffany76
body: ```suggestion
Click on the Collector in the server UI and paste the following content to the
```
created_at: 2025-04-22T13:11:43Z
author_association: MEMBER
diff_hunk: @@ -81,129 +81,207 @@ Let's have a look at a concrete setup:
    the server-side OpAMP part and the collector (or a supervisor controlling the
    collector) implementing OpAMP client-side.
 
+### Quick start
+
 You can try out a simple OpAMP setup yourself by using the [OpAMP protocol
 implementation in Go][opamp-go]. For the following walkthrough you will need to
-have Go in version 1.19 or above available.
+have Go in version 1.22 or above available.
 
 We will set up a simple OpAMP control plane consisting of an example OpAMP
-server and let an OpenTelemetry Collector connect to it via an example OpAMP
-supervisor.
+server and let an OpenTelemetry Collector connect to it via the [OpAMP
+Supervisor][opamp-supervisor].
+
+#### Step 1 - Start the OpAMP server
 
-First, clone the `open-telemetry/opamp-go` repository:
+Clone the `open-telemetry/opamp-go` repository:
 
 ```sh
 git clone https://github.com/open-telemetry/opamp-go.git
 ```
 
-Next, we need an OpenTelemetry Collector binary that the OpAMP supervisor can
-manage. For that, install the [OpenTelemetry Collector Contrib][otelcolcontrib]
-distro. The path to the collector binary (where you installed it into) is
-referred to as `$OTEL_COLLECTOR_BINARY` in the following.
-
 In the `./opamp-go/internal/examples/server` directory, launch the OpAMP server:
 
 ```console
 $ go run .
-2023/02/08 13:31:32.004501 [MAIN] OpAMP Server starting...
-2023/02/08 13:31:32.004815 [MAIN] OpAMP Server running...
+2025/04/20 15:10:35.307207 [MAIN] OpAMP Server starting...
+2025/04/20 15:10:35.308201 [MAIN] OpAMP Server running...
+```
+
+#### Step 2 - Install the OpenTelemetry Collector
+
+We need an OpenTelemetry Collector binary that the OpAMP Supervisor can manage.
+For that, install the [OpenTelemetry Collector Contrib][otelcolcontrib] distro.
+The path to the collector binary (where you installed it into) is referred to as
+`$OTEL_COLLECTOR_BINARY` in the following.
+
+#### Step 3 - Install the OpAMP Supervisor
+
+The `opampsupervisor` binary is available as a downloadable asset from
+OpenTelemetry Collector [releases with `cmd/opampsupervisor` tags][tags]. You
+will find a list of assets named based on OS and chipset, so download the one
+that fits your configuration:
+
+{{< tabpane text=true >}}
+
+{{% tab "Linux (AMD 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_amd64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "Linux (ARM 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_arm64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "Linux (ppc64le) "%}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_ppc64le"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "macOS (AMD 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_darwin_amd64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "macOS (ARM 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_darwin_arm64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "Windows (AMD 64)" %}}
+
+```sh
+Invoke-WebRequest -Uri "https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_windows_amd64.exe" -OutFile "opampsupervisor.exe"
+Unblock-File -Path "opampsupervisor.exe"
 ```
 
-In the `./opamp-go/internal/examples/supervisor` directory create a file named
-`supervisor.yaml` with the following content (telling the supervisor where to
-find the server and what OpenTelemetry Collector binary to manage):
+{{% /tab %}} {{< /tabpane >}}
+
+#### Step 4 - Create an OpAMP Supervisor configuration file
+
+Create a file named `supervisor.yaml` with the following content:
 
 ```yaml
 server:
-  endpoint: ws://127.0.0.1:4320/v1/opamp
+  endpoint: wss://127.0.0.1:4320/v1/opamp
+  tls:
+    insecure_skip_verify: true
+
+capabilities:
+  accepts_remote_config: true
+  reports_effective_config: true
+  reports_own_metrics: false
+  reports_own_logs: true
+  reports_own_traces: false
+  reports_health: true
+  reports_remote_config: true
 
 agent:
   executable: $OTEL_COLLECTOR_BINARY
+
+storage:
+  directory: ./storage
 ```
 
 > **Note** Make sure to replace `$OTEL_COLLECTOR_BINARY` with the actual file
 > path. For example, in Linux or macOS, if you installed the collector in
 > `/usr/local/bin/` then you would replace `$OTEL_COLLECTOR_BINARY` with
 > `/usr/local/bin/otelcol`.
 
-Next, create a collector configuration as follows (save it in a file called
-`effective.yaml` in the `./opamp-go/internal/examples/supervisor` directory):
+#### Step 5 - Run the OpAMP Supervisor
+
+Now it's time to launch the supervisor (which in turn will launch your
+OpenTelemetry Collector):
+
+```console
+$ ./opampsupervisor --config=./supervisor.yaml
+{"level":"info","ts":1745154644.746028,"logger":"supervisor","caller":"supervisor/supervisor.go:340","msg":"Supervisor starting","id":"01965352-9958-72da-905c-e40329c32c64"}
+{"level":"info","ts":1745154644.74608,"logger":"supervisor","caller":"supervisor/supervisor.go:1086","msg":"No last received remote config found"}
+```
+
+If everything worked out you should now be able to go to
+[http://localhost:4321/](http://localhost:4321/) and access the OpAMP server UI
+where you should see your collector listed, managed by the supervisor:
+
+![OpAMP example setup](../img/opamp-server-ui.png)
+
+#### Step 6 - Configure the OpenTelemetry Collector remotely
+
+Click on the collector in the server UI and paste the following content to the
+`Additional Configuration` box:
 
 ```yaml
 receivers:
-  prometheus/own_metrics:
-    config:
-      scrape_configs:
-        - job_name: otel-collector
-          scrape_interval: 10s
-          static_configs:
-            - targets: [0.0.0.0:8888]
   hostmetrics:
     collection_interval: 10s
     scrapers:
-      load:
-      filesystem:
-      memory:
-      network:
+      cpu:
 
 exporters:
-  # NOTE: Prior to v0.86.0 use `logging` instead of `debug`.
   debug:
-    verbosity: detailed
 
 service:
   pipelines:
     metrics:
-      receivers: [hostmetrics, prometheus/own_metrics]
+      receivers: [hostmetrics]
       exporters: [debug]
 ```
 
-Now it's time to launch the supervisor (which in turn will launch your
-OpenTelemetry Collector):
+Click `Save and Send to Agent`:
 
-```console
-$ go run .
-2023/02/08 13:32:54 Supervisor starting, id=01GRRKNBJE06AFVGQT5ZYC0GEK, type=io.opentelemetry.collector, version=1.0.0.
-2023/02/08 13:32:54 Starting OpAMP client...
-2023/02/08 13:32:54 OpAMP Client started.
-2023/02/08 13:32:54 Starting agent /usr/local/bin/otelcol
-2023/02/08 13:32:54 Connected to the server.
-2023/02/08 13:32:54 Received remote config from server, hash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.
-2023/02/08 13:32:54 Agent process started, PID=13553
-2023/02/08 13:32:54 Effective config changed.
-2023/02/08 13:32:54 Enabling own metrics pipeline in the config<F11>
-2023/02/08 13:32:54 Effective config changed.
-2023/02/08 13:32:54 Config is changed. Signal to restart the agent.
-2023/02/08 13:32:54 Agent is not healthy: Get "http://localhost:13133": dial tcp [::1]:13133: connect: connection refused
-2023/02/08 13:32:54 Stopping the agent to apply new config.
-2023/02/08 13:32:54 Stopping agent process, PID=13553
-2023/02/08 13:32:54 Agent process PID=13553 successfully stopped.
-2023/02/08 13:32:54 Starting agent /usr/local/bin/otelcol
-2023/02/08 13:32:54 Agent process started, PID=13554
-2023/02/08 13:32:54 Agent is not healthy: Get "http://localhost:13133": dial tcp [::1]:13133: connect: connection refused
-2023/02/08 13:32:55 Agent is not healthy: health check on http://localhost:13133 returned 503
-2023/02/08 13:32:55 Agent is not healthy: health check on http://localhost:13133 returned 503
-2023/02/08 13:32:56 Agent is not healthy: health check on http://localhost:13133 returned 503
-2023/02/08 13:32:57 Agent is healthy.
-```
+![OpAMP additional configuration](../img/opamp-server-additional-config.png)
 
-If everything worked out you should now be able to go to
-[http://localhost:4321/](http://localhost:4321/) and access the OpAMP server UI
-where you should see your collector listed, managed by the supervisor:
+Reload the page and verify that the Agent status shows `Up: true`:
 
-![OpAMP example setup](../img/opamp-server-ui.png)
+![OpAMP agent](../img/opamp-server-agent.png)
 
-You can also query the collector for the metrics exported (note the label
-values):
+You can query the collector for the metrics exported (note the label values):
path: content/en/docs/collector/management.md
user: login: tiffany76
body: ```suggestion
You can query the Collector for the metrics exported (note the label values):
```
created_at: 2025-04-22T13:13:02Z
author_association: MEMBER
diff_hunk: @@ -81,129 +81,207 @@ Let's have a look at a concrete setup:
    the server-side OpAMP part and the collector (or a supervisor controlling the
    collector) implementing OpAMP client-side.
 
+### Quick start
+
 You can try out a simple OpAMP setup yourself by using the [OpAMP protocol
 implementation in Go][opamp-go]. For the following walkthrough you will need to
-have Go in version 1.19 or above available.
+have Go in version 1.22 or above available.
 
 We will set up a simple OpAMP control plane consisting of an example OpAMP
-server and let an OpenTelemetry Collector connect to it via an example OpAMP
-supervisor.
+server and let an OpenTelemetry Collector connect to it via the [OpAMP
+Supervisor][opamp-supervisor].
+
+#### Step 1 - Start the OpAMP server
 
-First, clone the `open-telemetry/opamp-go` repository:
+Clone the `open-telemetry/opamp-go` repository:
 
 ```sh
 git clone https://github.com/open-telemetry/opamp-go.git
 ```
 
-Next, we need an OpenTelemetry Collector binary that the OpAMP supervisor can
-manage. For that, install the [OpenTelemetry Collector Contrib][otelcolcontrib]
-distro. The path to the collector binary (where you installed it into) is
-referred to as `$OTEL_COLLECTOR_BINARY` in the following.
-
 In the `./opamp-go/internal/examples/server` directory, launch the OpAMP server:
 
 ```console
 $ go run .
-2023/02/08 13:31:32.004501 [MAIN] OpAMP Server starting...
-2023/02/08 13:31:32.004815 [MAIN] OpAMP Server running...
+2025/04/20 15:10:35.307207 [MAIN] OpAMP Server starting...
+2025/04/20 15:10:35.308201 [MAIN] OpAMP Server running...
+```
+
+#### Step 2 - Install the OpenTelemetry Collector
+
+We need an OpenTelemetry Collector binary that the OpAMP Supervisor can manage.
+For that, install the [OpenTelemetry Collector Contrib][otelcolcontrib] distro.
+The path to the collector binary (where you installed it into) is referred to as
+`$OTEL_COLLECTOR_BINARY` in the following.
+
+#### Step 3 - Install the OpAMP Supervisor
+
+The `opampsupervisor` binary is available as a downloadable asset from
+OpenTelemetry Collector [releases with `cmd/opampsupervisor` tags][tags]. You
+will find a list of assets named based on OS and chipset, so download the one
+that fits your configuration:
+
+{{< tabpane text=true >}}
+
+{{% tab "Linux (AMD 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_amd64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "Linux (ARM 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_arm64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "Linux (ppc64le) "%}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_ppc64le"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "macOS (AMD 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_darwin_amd64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "macOS (ARM 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_darwin_arm64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "Windows (AMD 64)" %}}
+
+```sh
+Invoke-WebRequest -Uri "https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_windows_amd64.exe" -OutFile "opampsupervisor.exe"
+Unblock-File -Path "opampsupervisor.exe"
 ```
 
-In the `./opamp-go/internal/examples/supervisor` directory create a file named
-`supervisor.yaml` with the following content (telling the supervisor where to
-find the server and what OpenTelemetry Collector binary to manage):
+{{% /tab %}} {{< /tabpane >}}
+
+#### Step 4 - Create an OpAMP Supervisor configuration file
+
+Create a file named `supervisor.yaml` with the following content:
 
 ```yaml
 server:
-  endpoint: ws://127.0.0.1:4320/v1/opamp
+  endpoint: wss://127.0.0.1:4320/v1/opamp
+  tls:
+    insecure_skip_verify: true
+
+capabilities:
+  accepts_remote_config: true
+  reports_effective_config: true
+  reports_own_metrics: false
+  reports_own_logs: true
+  reports_own_traces: false
+  reports_health: true
+  reports_remote_config: true
 
 agent:
   executable: $OTEL_COLLECTOR_BINARY
+
+storage:
+  directory: ./storage
 ```
 
 > **Note** Make sure to replace `$OTEL_COLLECTOR_BINARY` with the actual file
 > path. For example, in Linux or macOS, if you installed the collector in
 > `/usr/local/bin/` then you would replace `$OTEL_COLLECTOR_BINARY` with
 > `/usr/local/bin/otelcol`.
 
-Next, create a collector configuration as follows (save it in a file called
-`effective.yaml` in the `./opamp-go/internal/examples/supervisor` directory):
+#### Step 5 - Run the OpAMP Supervisor
+
+Now it's time to launch the supervisor (which in turn will launch your
+OpenTelemetry Collector):
+
+```console
+$ ./opampsupervisor --config=./supervisor.yaml
+{"level":"info","ts":1745154644.746028,"logger":"supervisor","caller":"supervisor/supervisor.go:340","msg":"Supervisor starting","id":"01965352-9958-72da-905c-e40329c32c64"}
+{"level":"info","ts":1745154644.74608,"logger":"supervisor","caller":"supervisor/supervisor.go:1086","msg":"No last received remote config found"}
+```
+
+If everything worked out you should now be able to go to
+[http://localhost:4321/](http://localhost:4321/) and access the OpAMP server UI
+where you should see your collector listed, managed by the supervisor:
+
+![OpAMP example setup](../img/opamp-server-ui.png)
+
+#### Step 6 - Configure the OpenTelemetry Collector remotely
+
+Click on the collector in the server UI and paste the following content to the
+`Additional Configuration` box:
 
 ```yaml
 receivers:
-  prometheus/own_metrics:
-    config:
-      scrape_configs:
-        - job_name: otel-collector
-          scrape_interval: 10s
-          static_configs:
-            - targets: [0.0.0.0:8888]
   hostmetrics:
     collection_interval: 10s
     scrapers:
-      load:
-      filesystem:
-      memory:
-      network:
+      cpu:
 
 exporters:
-  # NOTE: Prior to v0.86.0 use `logging` instead of `debug`.
   debug:
-    verbosity: detailed
 
 service:
   pipelines:
     metrics:
-      receivers: [hostmetrics, prometheus/own_metrics]
+      receivers: [hostmetrics]
       exporters: [debug]
 ```
 
-Now it's time to launch the supervisor (which in turn will launch your
-OpenTelemetry Collector):
+Click `Save and Send to Agent`:
 
-```console
-$ go run .
-2023/02/08 13:32:54 Supervisor starting, id=01GRRKNBJE06AFVGQT5ZYC0GEK, type=io.opentelemetry.collector, version=1.0.0.
-2023/02/08 13:32:54 Starting OpAMP client...
-2023/02/08 13:32:54 OpAMP Client started.
-2023/02/08 13:32:54 Starting agent /usr/local/bin/otelcol
-2023/02/08 13:32:54 Connected to the server.
-2023/02/08 13:32:54 Received remote config from server, hash=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.
-2023/02/08 13:32:54 Agent process started, PID=13553
-2023/02/08 13:32:54 Effective config changed.
-2023/02/08 13:32:54 Enabling own metrics pipeline in the config<F11>
-2023/02/08 13:32:54 Effective config changed.
-2023/02/08 13:32:54 Config is changed. Signal to restart the agent.
-2023/02/08 13:32:54 Agent is not healthy: Get "http://localhost:13133": dial tcp [::1]:13133: connect: connection refused
-2023/02/08 13:32:54 Stopping the agent to apply new config.
-2023/02/08 13:32:54 Stopping agent process, PID=13553
-2023/02/08 13:32:54 Agent process PID=13553 successfully stopped.
-2023/02/08 13:32:54 Starting agent /usr/local/bin/otelcol
-2023/02/08 13:32:54 Agent process started, PID=13554
-2023/02/08 13:32:54 Agent is not healthy: Get "http://localhost:13133": dial tcp [::1]:13133: connect: connection refused
-2023/02/08 13:32:55 Agent is not healthy: health check on http://localhost:13133 returned 503
-2023/02/08 13:32:55 Agent is not healthy: health check on http://localhost:13133 returned 503
-2023/02/08 13:32:56 Agent is not healthy: health check on http://localhost:13133 returned 503
-2023/02/08 13:32:57 Agent is healthy.
-```
+![OpAMP additional configuration](../img/opamp-server-additional-config.png)
 
-If everything worked out you should now be able to go to
-[http://localhost:4321/](http://localhost:4321/) and access the OpAMP server UI
-where you should see your collector listed, managed by the supervisor:
+Reload the page and verify that the Agent status shows `Up: true`:
 
-![OpAMP example setup](../img/opamp-server-ui.png)
+![OpAMP agent](../img/opamp-server-agent.png)
 
-You can also query the collector for the metrics exported (note the label
-values):
+You can query the collector for the metrics exported (note the label values):
 
 ```console
 $ curl localhost:8888/metrics
+# HELP otelcol_exporter_send_failed_metric_points Number of metric points in failed attempts to send to destination. [alpha]
+# TYPE otelcol_exporter_send_failed_metric_points counter
+otelcol_exporter_send_failed_metric_points{exporter="debug",service_instance_id="01965352-9958-72da-905c-e40329c32c64",service_name="otelcol-contrib",service_version="0.124.1"} 0
+# HELP otelcol_exporter_sent_metric_points Number of metric points successfully sent to destination. [alpha]
+# TYPE otelcol_exporter_sent_metric_points counter
+otelcol_exporter_sent_metric_points{exporter="debug",service_instance_id="01965352-9958-72da-905c-e40329c32c64",service_name="otelcol-contrib",service_version="0.124.1"} 132
+# HELP otelcol_process_cpu_seconds Total CPU user and system time in seconds [alpha]
+# TYPE otelcol_process_cpu_seconds counter
+otelcol_process_cpu_seconds{service_instance_id="01965352-9958-72da-905c-e40329c32c64",service_name="otelcol-contrib",service_version="0.124.1"} 0.127965
 ...
-# HELP otelcol_receiver_accepted_metric_points Number of metric points successfully pushed into the pipeline.
-# TYPE otelcol_receiver_accepted_metric_points counter
-otelcol_receiver_accepted_metric_points{receiver="prometheus/own_metrics",service_instance_id="01GRRKNBJE06AFVGQT5ZYC0GEK",service_name="io.opentelemetry.collector",service_version="1.0.0",transport="http"} 322
-# HELP otelcol_receiver_refused_metric_points Number of metric points that could not be pushed into the pipeline.
-# TYPE otelcol_receiver_refused_metric_points counter
-otelcol_receiver_refused_metric_points{receiver="prometheus/own_metrics",service_instance_id="01GRRKNBJE06AFVGQT5ZYC0GEK",service_name="io.opentelemetry.collector",service_version="1.0.0",transport="http"} 0
+```
+
+You can also inspect the collector's logs:
path: content/en/docs/collector/management.md
user: login: tiffany76
body: ```suggestion
You can also inspect the Collector's logs:
```
created_at: 2025-04-22T13:13:19Z
author_association: MEMBER
diff_hunk: @@ -2,7 +2,7 @@
 title: Management
 description: How to manage your OpenTelemetry collector deployment at scale
path: content/en/docs/collector/management.md
user: login: tiffany76
body: ```suggestion
description: How to manage your OpenTelemetry Collector deployment at scale
```
created_at: 2025-04-22T13:14:05Z
author_association: MEMBER
path: data/registry/collector-cmd-opampsupervisor.yml
user: login: tiffany76
body: I believe just creating the file in the registry directory includes it in the auto-update scripts, but I'll defer to @chalin for confirmation.
created_at: 2025-04-22T21:01:17Z
author_association: MEMBER
diff_hunk: @@ -81,129 +81,210 @@ Let's have a look at a concrete setup:
    the server-side OpAMP part and the collector (or a supervisor controlling the
    collector) implementing OpAMP client-side.
 
+### Quick start
path: content/en/docs/collector/management.md
user: login: chalin
body: Let's avoid "Quick start" since there is already a [Collector Quick start](https://opentelemetry.io/docs/collector/quick-start/).

Here's a simple fix:

```suggestion
### Try it out
```
created_at: 2025-04-23T16:41:27Z
author_association: CONTRIBUTOR
diff_hunk: @@ -81,129 +81,210 @@ Let's have a look at a concrete setup:
    the server-side OpAMP part and the collector (or a supervisor controlling the
    collector) implementing OpAMP client-side.
 
+### Quick start
path: content/en/docs/collector/management.md
user: login: chalin
body: Actually, I think that this new section is sizeable enough that it should be moved to a subpage. If you (@open-telemetry/docs-approvers) agree, I'll open a separate issue to track this.
created_at: 2025-04-23T16:41:53Z
author_association: CONTRIBUTOR
diff_hunk: @@ -81,129 +81,210 @@ Let's have a look at a concrete setup:
    the server-side OpAMP part and the collector (or a supervisor controlling the
    collector) implementing OpAMP client-side.
 
+### Quick start
+
 You can try out a simple OpAMP setup yourself by using the [OpAMP protocol
 implementation in Go][opamp-go]. For the following walkthrough you will need to
path: content/en/docs/collector/management.md
user: login: chalin
body: ```suggestion
implementation in Go][opamp-go]. For the following walkthrough you will need
```
created_at: 2025-04-23T16:42:36Z
author_association: CONTRIBUTOR
diff_hunk: @@ -81,129 +81,207 @@ Let's have a look at a concrete setup:
    the server-side OpAMP part and the collector (or a supervisor controlling the
    collector) implementing OpAMP client-side.
 
+### Quick start
+
 You can try out a simple OpAMP setup yourself by using the [OpAMP protocol
 implementation in Go][opamp-go]. For the following walkthrough you will need to
-have Go in version 1.19 or above available.
+have Go in version 1.22 or above available.
path: content/en/docs/collector/management.md
user: login: chalin
body: ```suggestion
Go 1.22+.
```
created_at: 2025-04-23T16:43:08Z
author_association: CONTRIBUTOR
path: data/registry/collector-cmd-opampsupervisor.yml
user: login: chalin
body: For now, let's continue to address this manually.
created_at: 2025-04-23T16:45:13Z
author_association: CONTRIBUTOR
diff_hunk: @@ -81,129 +81,210 @@ Let's have a look at a concrete setup:
    the server-side OpAMP part and the collector (or a supervisor controlling the
    collector) implementing OpAMP client-side.
 
+### Quick start
path: content/en/docs/collector/management.md
user: login: tiffany76
body: It's not actually a new section. @johannaojeling gave the old content a little more structure and updated it with current OpAMP info. If we remove the "Try it out" section, would you suggest removing all of the OpAMP content from the Management page? 
created_at: 2025-04-23T19:47:58Z
author_association: MEMBER
path: data/registry/collector-cmd-opampsupervisor.yml
user: login: tiffany76
body: So we would manually update the version in this registry entry? Sorry, I don't think I understand what you mean. 😅 
created_at: 2025-04-23T19:55:54Z
author_association: MEMBER
path: data/registry/collector-cmd-opampsupervisor.yml
user: login: chalin
body: Oops, my bad! I confused the Go version comment with this one. (Now I understand why I couldn't quite make sense of your comment.)

To clarify: the Go version in the docs will be updated manually. As for the version in this data file: yes, version numbers are updated automatically. So we're good to go here. And the registry entry seems fine:

> <img width="963" alt="image" src="https://github.com/user-attachments/assets/0855ef42-f888-471a-a860-c0124bd8c85d" />

created_at: 2025-04-24T00:15:11Z
author_association: CONTRIBUTOR
diff_hunk: @@ -81,129 +81,210 @@ Let's have a look at a concrete setup:
    the server-side OpAMP part and the collector (or a supervisor controlling the
    collector) implementing OpAMP client-side.
 
+### Quick start
path: content/en/docs/collector/management.md
user: login: chalin
body: Right. By "new section" I meant the new section heading. Let's track this separately. I'll create an issue and link it here:

- #6742
created_at: 2025-04-24T00:17:14Z
author_association: CONTRIBUTOR
diff_hunk: @@ -81,129 +81,210 @@ Let's have a look at a concrete setup:
    the server-side OpAMP part and the collector (or a supervisor controlling the
    collector) implementing OpAMP client-side.
 
+### Try it out
+
 You can try out a simple OpAMP setup yourself by using the [OpAMP protocol
-implementation in Go][opamp-go]. For the following walkthrough you will need to
-have Go in version 1.19 or above available.
+implementation in Go][opamp-go]. For the following walkthrough you will need
+Go 1.22+.
 
 We will set up a simple OpAMP control plane consisting of an example OpAMP
-server and let an OpenTelemetry Collector connect to it via an example OpAMP
-supervisor.
+server and let an OpenTelemetry Collector connect to it using the [OpAMP
+Supervisor][opamp-supervisor].
+
+#### Step 1 - Start the OpAMP server
 
-First, clone the `open-telemetry/opamp-go` repository:
+Clone the `open-telemetry/opamp-go` repository:
 
 ```sh
 git clone https://github.com/open-telemetry/opamp-go.git
 ```
 
-Next, we need an OpenTelemetry Collector binary that the OpAMP supervisor can
-manage. For that, install the [OpenTelemetry Collector Contrib][otelcolcontrib]
-distro. The path to the collector binary (where you installed it into) is
-referred to as `$OTEL_COLLECTOR_BINARY` in the following.
-
 In the `./opamp-go/internal/examples/server` directory, launch the OpAMP server:
 
 ```console
 $ go run .
-2023/02/08 13:31:32.004501 [MAIN] OpAMP Server starting...
-2023/02/08 13:31:32.004815 [MAIN] OpAMP Server running...
+2025/04/20 15:10:35.307207 [MAIN] OpAMP Server starting...
+2025/04/20 15:10:35.308201 [MAIN] OpAMP Server running...
+```
+
+#### Step 2 - Install the OpenTelemetry Collector
+
+We need an OpenTelemetry Collector binary that the OpAMP Supervisor can manage.
+For that, install the [OpenTelemetry Collector Contrib][otelcolcontrib] distro.
+The path where you installed the Collector binary is referred to as
+`$OTEL_COLLECTOR_BINARY` in the following configuration.
+
+#### Step 3 - Install the OpAMP Supervisor
+
+The `opampsupervisor` binary is available as a downloadable asset from
+OpenTelemetry Collector [releases with `cmd/opampsupervisor` tags][tags]. You
+will find a list of assets named based on OS and chipset, so download the one
+that fits your configuration:
+
+{{< tabpane text=true >}}
+
+{{% tab "Linux (AMD 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_amd64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "Linux (ARM 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_arm64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "Linux (ppc64le) "%}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_ppc64le"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "macOS (AMD 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_darwin_amd64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "macOS (ARM 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_darwin_arm64"
+chmod +x opampsupervisor
 ```
 
-In the `./opamp-go/internal/examples/supervisor` directory create a file named
-`supervisor.yaml` with the following content (telling the supervisor where to
-find the server and what OpenTelemetry Collector binary to manage):
+{{% /tab %}} {{% tab "Windows (AMD 64)" %}}
+
+```sh
+Invoke-WebRequest -Uri "https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_windows_amd64.exe" -OutFile "opampsupervisor.exe"
+Unblock-File -Path "opampsupervisor.exe"
+```
+
+{{% /tab %}} {{< /tabpane >}}
+
+#### Step 4 - Create an OpAMP Supervisor configuration file
+
+Create a file named `supervisor.yaml` with the following content:
 
 ```yaml
 server:
-  endpoint: ws://127.0.0.1:4320/v1/opamp
+  endpoint: wss://127.0.0.1:4320/v1/opamp
+  tls:
+    insecure_skip_verify: true
+
+capabilities:
+  accepts_remote_config: true
+  reports_effective_config: true
+  reports_own_metrics: false
+  reports_own_logs: true
+  reports_own_traces: false
+  reports_health: true
+  reports_remote_config: true
 
 agent:
   executable: $OTEL_COLLECTOR_BINARY
+
+storage:
+  directory: ./storage
 ```
 
-> **Note** Make sure to replace `$OTEL_COLLECTOR_BINARY` with the actual file
-> path. For example, in Linux or macOS, if you installed the collector in
-> `/usr/local/bin/` then you would replace `$OTEL_COLLECTOR_BINARY` with
-> `/usr/local/bin/otelcol`.
+{{% alert color="primary" title="NOTE" %}}
+
+Make sure to replace `$OTEL_COLLECTOR_BINARY` with the actual file path. For
+example, in Linux or macOS, if you installed the Collector in `/usr/local/bin/`,
+then you would replace `$OTEL_COLLECTOR_BINARY` with `/usr/local/bin/otelcol`.
+
+{{% /alert %}}
+
+#### Step 5 - Run the OpAMP Supervisor
 
-Next, create a collector configuration as follows (save it in a file called
-`effective.yaml` in the `./opamp-go/internal/examples/supervisor` directory):
+Now it's time to launch the supervisor, which in turn launches your
+OpenTelemetry Collector:
+
+```console
+$ ./opampsupervisor --config=./supervisor.yaml
+{"level":"info","ts":1745154644.746028,"logger":"supervisor","caller":"supervisor/supervisor.go:340","msg":"Supervisor starting","id":"01965352-9958-72da-905c-e40329c32c64"}
+{"level":"info","ts":1745154644.74608,"logger":"supervisor","caller":"supervisor/supervisor.go:1086","msg":"No last received remote config found"}
+```
+
+If everything worked out, you should now be able to go to
+[http://localhost:4321/](http://localhost:4321/) and access the OpAMP server UI.
+You should see your Collector listed among the agents managed by the Supervisor:
+
+![OpAMP example setup](../img/opamp-server-ui.png)
+
+#### Step 6 - Configure the OpenTelemetry Collector remotely
+
+Click on the Collector in the server UI and paste the following content to the
+`Additional Configuration` box:
 
 ```yaml
 receivers:
-  prometheus/own_metrics:
-    config:
-      scrape_configs:
-        - job_name: otel-collector
-          scrape_interval: 10s
-          static_configs:
-            - targets: [0.0.0.0:8888]
   hostmetrics:
     collection_interval: 10s
     scrapers:
-      load:
-      filesystem:
-      memory:
-      network:
+      cpu:
 
 exporters:
-  # NOTE: Prior to v0.86.0 use `logging` instead of `debug`.
   debug:
-    verbosity: detailed
path: content/en/docs/collector/management.md
user: login: dmitryax
body: Why is this line removed? The detailed level is typically used with the debug exporter to show the full details of the data passed to it.
created_at: 2025-04-24T00:31:43Z
author_association: MEMBER
diff_hunk: @@ -81,129 +81,210 @@ Let's have a look at a concrete setup:
    the server-side OpAMP part and the collector (or a supervisor controlling the
    collector) implementing OpAMP client-side.
 
+### Try it out
+
 You can try out a simple OpAMP setup yourself by using the [OpAMP protocol
-implementation in Go][opamp-go]. For the following walkthrough you will need to
-have Go in version 1.19 or above available.
+implementation in Go][opamp-go]. For the following walkthrough you will need
+Go 1.22+.
 
 We will set up a simple OpAMP control plane consisting of an example OpAMP
-server and let an OpenTelemetry Collector connect to it via an example OpAMP
-supervisor.
+server and let an OpenTelemetry Collector connect to it using the [OpAMP
+Supervisor][opamp-supervisor].
+
+#### Step 1 - Start the OpAMP server
 
-First, clone the `open-telemetry/opamp-go` repository:
+Clone the `open-telemetry/opamp-go` repository:
 
 ```sh
 git clone https://github.com/open-telemetry/opamp-go.git
 ```
 
-Next, we need an OpenTelemetry Collector binary that the OpAMP supervisor can
-manage. For that, install the [OpenTelemetry Collector Contrib][otelcolcontrib]
-distro. The path to the collector binary (where you installed it into) is
-referred to as `$OTEL_COLLECTOR_BINARY` in the following.
-
 In the `./opamp-go/internal/examples/server` directory, launch the OpAMP server:
 
 ```console
 $ go run .
-2023/02/08 13:31:32.004501 [MAIN] OpAMP Server starting...
-2023/02/08 13:31:32.004815 [MAIN] OpAMP Server running...
+2025/04/20 15:10:35.307207 [MAIN] OpAMP Server starting...
+2025/04/20 15:10:35.308201 [MAIN] OpAMP Server running...
+```
+
+#### Step 2 - Install the OpenTelemetry Collector
+
+We need an OpenTelemetry Collector binary that the OpAMP Supervisor can manage.
+For that, install the [OpenTelemetry Collector Contrib][otelcolcontrib] distro.
+The path where you installed the Collector binary is referred to as
+`$OTEL_COLLECTOR_BINARY` in the following configuration.
+
+#### Step 3 - Install the OpAMP Supervisor
+
+The `opampsupervisor` binary is available as a downloadable asset from
+OpenTelemetry Collector [releases with `cmd/opampsupervisor` tags][tags]. You
+will find a list of assets named based on OS and chipset, so download the one
+that fits your configuration:
+
+{{< tabpane text=true >}}
+
+{{% tab "Linux (AMD 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_amd64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "Linux (ARM 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_arm64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "Linux (ppc64le) "%}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_linux_ppc64le"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "macOS (AMD 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_darwin_amd64"
+chmod +x opampsupervisor
+```
+
+{{% /tab %}} {{% tab "macOS (ARM 64)" %}}
+
+```sh
+curl --proto '=https' --tlsv1.2 -fL -o opampsupervisor \
+"https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_darwin_arm64"
+chmod +x opampsupervisor
 ```
 
-In the `./opamp-go/internal/examples/supervisor` directory create a file named
-`supervisor.yaml` with the following content (telling the supervisor where to
-find the server and what OpenTelemetry Collector binary to manage):
+{{% /tab %}} {{% tab "Windows (AMD 64)" %}}
+
+```sh
+Invoke-WebRequest -Uri "https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fopampsupervisor%2F{{% version-from-registry collector-cmd-opampsupervisor %}}/opampsupervisor_{{% version-from-registry collector-cmd-opampsupervisor noPrefix %}}_windows_amd64.exe" -OutFile "opampsupervisor.exe"
+Unblock-File -Path "opampsupervisor.exe"
+```
+
+{{% /tab %}} {{< /tabpane >}}
+
+#### Step 4 - Create an OpAMP Supervisor configuration file
+
+Create a file named `supervisor.yaml` with the following content:
 
 ```yaml
 server:
-  endpoint: ws://127.0.0.1:4320/v1/opamp
+  endpoint: wss://127.0.0.1:4320/v1/opamp
+  tls:
+    insecure_skip_verify: true
+
+capabilities:
+  accepts_remote_config: true
+  reports_effective_config: true
+  reports_own_metrics: false
+  reports_own_logs: true
+  reports_own_traces: false
+  reports_health: true
+  reports_remote_config: true
 
 agent:
   executable: $OTEL_COLLECTOR_BINARY
+
+storage:
+  directory: ./storage
 ```
 
-> **Note** Make sure to replace `$OTEL_COLLECTOR_BINARY` with the actual file
-> path. For example, in Linux or macOS, if you installed the collector in
-> `/usr/local/bin/` then you would replace `$OTEL_COLLECTOR_BINARY` with
-> `/usr/local/bin/otelcol`.
+{{% alert color="primary" title="NOTE" %}}
+
+Make sure to replace `$OTEL_COLLECTOR_BINARY` with the actual file path. For
+example, in Linux or macOS, if you installed the Collector in `/usr/local/bin/`,
+then you would replace `$OTEL_COLLECTOR_BINARY` with `/usr/local/bin/otelcol`.
+
+{{% /alert %}}
+
+#### Step 5 - Run the OpAMP Supervisor
 
-Next, create a collector configuration as follows (save it in a file called
-`effective.yaml` in the `./opamp-go/internal/examples/supervisor` directory):
+Now it's time to launch the supervisor, which in turn launches your
+OpenTelemetry Collector:
+
+```console
+$ ./opampsupervisor --config=./supervisor.yaml
+{"level":"info","ts":1745154644.746028,"logger":"supervisor","caller":"supervisor/supervisor.go:340","msg":"Supervisor starting","id":"01965352-9958-72da-905c-e40329c32c64"}
+{"level":"info","ts":1745154644.74608,"logger":"supervisor","caller":"supervisor/supervisor.go:1086","msg":"No last received remote config found"}
+```
+
+If everything worked out, you should now be able to go to
+[http://localhost:4321/](http://localhost:4321/) and access the OpAMP server UI.
+You should see your Collector listed among the agents managed by the Supervisor:
+
+![OpAMP example setup](../img/opamp-server-ui.png)
+
+#### Step 6 - Configure the OpenTelemetry Collector remotely
+
+Click on the Collector in the server UI and paste the following content to the
+`Additional Configuration` box:
 
 ```yaml
 receivers:
-  prometheus/own_metrics:
-    config:
-      scrape_configs:
-        - job_name: otel-collector
-          scrape_interval: 10s
-          static_configs:
-            - targets: [0.0.0.0:8888]
   hostmetrics:
     collection_interval: 10s
     scrapers:
-      load:
-      filesystem:
-      memory:
-      network:
+      cpu:
 
 exporters:
-  # NOTE: Prior to v0.86.0 use `logging` instead of `debug`.
   debug:
-    verbosity: detailed
path: content/en/docs/collector/management.md
user: login: johannaojeling
body: Good catch, thanks!
created_at: 2025-04-24T06:23:50Z
author_association: MEMBER

PR comments:
user: login: theletterf
created_at: 2025-04-22T07:45:34Z
body: @open-telemetry/collector-approvers Please have a look, thanks!
author_association: MEMBER
user: login: johannaojeling
created_at: 2025-04-22T13:36:19Z
body: Thanks @tiffany76! 🌟
author_association: MEMBER
user: login: opentelemetrybot
created_at: 2025-04-24T10:39:42Z
body: Thank you for your contribution! 🎉 We would like to hear from you about your experience contributing to OpenTelemetry by taking a few minutes to fill out this [survey](https://docs.google.com/forms/d/e/1FAIpQLSf2FfCsW-DimeWzdQgfl0KDzT2UEAqu69_f7F2BVPSxVae1cQ/viewform?entry.1540511742=open-telemetry/opentelemetry.io)
author_association: CONTRIBUTOR