Skip to content

Enrol an upstream collector (choose a runtime)

A collector runs one of two upstream runtimes — both are stock binaries with no proprietary code in the data path. LinkMesh delivers its config through the runtime’s own native channel: Grafana Alloy pulls via remotecfg, or otelcol-contrib receives pushes via OpAMP. See Native remote config for the model.

Pick a runtime

Grafana Alloyotelcol-contrib
Remote-config protocolremotecfg (HTTP poll, Connect-RPC)OpAMP (WebSocket)
Config languageAlloy syntax (River)YAML
Authper-collector bearer token (minted in UI)enrollment token on the OpAMP upgrade
LinkMesh capabilityFull (pipelines, processors, destinations)Full
Best forTeams standardised on the Grafana stackOpenTelemetry-native shops

Both runtimes get the same per-component throughput on the topology canvas and the same fleet-management surface. Pick whichever fits your existing tooling, then follow its step-by-step guide:

What happens after enrollment

The collector immediately starts pulling its real pipeline config (Alloy via remotecfg, otelcol-contrib via OpAMP RemoteConfig). When you wire a source or destination to it in the LinkMesh UI:

  • LinkMesh renders the pipeline as Alloy syntax or OTel YAML.
  • The collector pulls (or is pushed) the updated config within ~60s and reloads without downtime.
  • Per-component throughput appears on the topology canvas once data flows — the collector pushes its own internal metrics to LinkMesh over OTLP (its own self-telemetry, not LinkMesh scraping anything).

Removing a collector

On the host, stop and disable the collector, then remove its config:

Terminal window
sudo systemctl disable --now alloy # or: otelcol-contrib
sudo rm -f /etc/alloy/config.alloy # or: /etc/otelcol-contrib/config.yaml

In the LinkMesh UI, deregister the collector from Collectors → … → Deregister. This revokes its token immediately — if the host comes back it will fail to authenticate, and you’ll re-onboard it with a fresh token.