---
title: "Onboard standalone OpenTelemetry Collectors to Fleet Management | Grafana Cloud documentation"
description: "Learn how to onboard standalone OpenTelemetry Collectors to Grafana Fleet Management"
---

> For a curated documentation index, see [llms.txt](/llms.txt). For the complete documentation index, see [llms-full.txt](/llms-full.txt).

# Onboard standalone OpenTelemetry Collectors to Fleet Management

Learn how to register your existing OpenTelemetry Collectors in Grafana Fleet Management when they are installed outside of containers and directly on a host or virtual machine. If you’d like to use Fleet Management for self-managed collectors, refer to the [set up instructions](/docs/grafana-cloud/send-data/fleet-management/set-up/connectivity-options/self-managed/).

## Before you begin

Before you get started with Fleet Management, make sure you have:

For this OpenTelemetry Collector guide, you also need:

- A supported OpenTelemetry Collector distribution that includes the [OpAMP extension](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/extension/opampextension).
- The [OpAMP Supervisor](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/cmd/opampsupervisor) installed on the same host. For more information, refer to [OpenTelemetry Collector management](https://opentelemetry.io/docs/collector/management/).

> Note
> 
> You can monitor the health of Collectors connected to Fleet Management with the OpAMP extension only, but you won’t be able to configure them remotely. Use the Supervisor to enable remote configuration.

## Create an access token

The generated token comes with the predefined scope `set:otel-data-write`, which includes scopes for reading remote configurations in Fleet Management and writing telemetry to Grafana Cloud databases. You can view the defined scopes by hovering over `set:otel-data-write`:

- `fleet-management:read`
- `metrics:write`
- `logs:write`
- `traces:write`
- `profiles:write`

For more information about creating access policies, refer to [Grafana Cloud access policies](/docs/grafana-cloud/account-management/authentication-and-permissions/access-policies/).

> Note
> 
> If you create a policy using a different workflow or if you’re modifying an existing access policy, make sure to add the `set:otel-data-write` scope.

## Configure the OpAMP Supervisor

Configure the OpAMP Supervisor to connect to Fleet Management and run the OpenTelemetry Collector. The Supervisor manages the Collector process and applies remote configuration that Fleet Management assigns to the Collector.

> Note
> 
> You can shortcut these steps by following the [Get started](/docs/grafana-cloud/send-data/fleet-management/get-started/opentelemetry-collector/) workflow to create a copyable Supervisor YAML configuration personalized to your Grafana Cloud stack.

1. Set the following environment variables:
   
   - `GCLOUD_FM_URL` to the Fleet Management URL used by your Grafana Cloud stack. In your stack, navigate to **Connections** &gt; **Fleet Management**, select the **API** tab, and scroll to the Base URLs section. Copy the base URL, making sure to remove any trailing slashes.
   - `GCLOUD_INSTANCE_ID` to your Grafana Cloud instance ID. On the same **API** tab in the Fleet Management application, scroll to the API Authentication section. Copy the instance ID.
   - `GCLOUD_RW_API_KEY` to the cloud access policy token that you created in Step 1.
   - `GCLOUD_BASIC_AUTH_BASE64` to the base64-encoded representation of your authentication credentials in username:password format, where the username is your `GCLOUD_INSTANCE_ID` and the password is the `GCLOUD_RW_API_KEY`.
2. Create a Supervisor configuration file named `supervisor.yaml`.
   
   YAML ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy
   
   ```yaml
   server:
     endpoint: "${env:GCLOUD_FM_URL}/v1/opamp"
     headers:
       Authorization: "Basic ${env:GCLOUD_BASIC_AUTH_BASE64}"
   
   capabilities:
     reports_effective_config: true
     accepts_remote_config: true
     reports_remote_config: true
   
   agent:
     executable: "<OTELCOL_EXECUTABLE_PATH>"
     description:
       identifying_attributes:
         service.name: "<OTEL_COLLECTOR_NAME>"
       non_identifying_attributes:
         environment: "dev"
     args: [--feature-gates, service.AllowNoPipelines]
   
   storage:
     directory: "<STORAGE_DIRECTORY>"
   ```
   
   Replace the placeholders as follows:
   
   - `<OTELCOL_EXECUTABLE_PATH>` with your local OpenTelemetry Collector executable path.
   - `<OTEL_COLLECTOR_NAME>` with a name of your choosing.
   - `<STORAGE_DIRECTORY>` with the path to a writable directory to use for [persistent data storage](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/cmd/opampsupervisor/README.md#persistent-data-storage), such as `/var/lib/otelcol/supervisor` for POSIX systems and `%ProgramData%/Otelcol/Supervisor` for Windows systems.

## Run the Collector with the OpAMP Supervisor

Start the OpAMP Supervisor to run the Collector and register it with Fleet Management.

sh ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```sh
opampsupervisor --config=supervisor.yaml
```

Your Collector is up and running, and it’s registered with Fleet Management.

## Add remote attributes

> Note
> 
> You can’t add remote attributes with the following keys because they are [reserved attributes](/docs/grafana-cloud/send-data/fleet-management/introduction/glossary/#attribute-reserved):
> 
> - `service.name`
> - `service.namespace`
> - `service.version`
> - `service.instance.id`
> - `os.type`
> - `os.description`
> - `host.*`
> - `cloud.*`
> - `collector.*`

## Next steps

You have registered your collectors with Fleet Management and assigned attributes to them. Learn how to [configure them remotely](/docs/grafana-cloud/send-data/fleet-management/set-up/configuration-pipelines/).
