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.

Grafana Alloy otelcol-contrib
Remote-config protocol remotecfg (HTTP poll, Connect-RPC) OpAMP (WebSocket)
Config language Alloy syntax (River) YAML
Auth per-collector bearer token (minted in UI) enrollment token on the OpAMP upgrade
LinkMesh capability Full (pipelines, processors, destinations) Full
Best for Teams standardised on the Grafana stack OpenTelemetry-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:

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).

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

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.