RousselTMLEARNING

Observability

Fleet Management, Kubernetes Monitoring and the OpenTelemetry engine: Alloy at scale

Manage hundreds of Alloys with remotecfg and Fleet Management, deploy the k8s-monitoring v4 Helm chart, run an OpenTelemetry Collector configuration with alloy otel.

1. Fleet Management and remotecfg #

Remote configuration.

The principle #

Updating 300 Alloys one by one doesn't scale. With Fleet Management (Grafana Cloud, or self-hosted for enterprise offers), you create pipelines matched to attributes; each Alloy polls the service with the remotecfg block and applies the pipelines matching its attributes. The inventory shows each collector's health, version and attributes.

Fleet Management distributes pipelines by attributes

config.alloy #

remotecfg {
  url            = sys.env("GCLOUD_FLEET_URL")
  id             = constants.hostname
  attributes     = {"env" = "production", "team" = "payments"}
  poll_frequency = "1m"

  basic_auth {
    username = sys.env("GCLOUD_FLEET_USER")
    password = sys.env("GCLOUD_RW_API_KEY")
  }
}

Configuration validated with alloy validate (Alloy v1.21.3, November 2026).

  • id: collector ID; without it, Alloy generates a UUID kept in alloy_seed.json.
  • attributes: used to select pipelines; the collector. prefix is reserved (collector.os and collector.version are added automatically).
  • poll_frequency: 1 min by default, 10 s minimum.
  • The alloy-remote-config protocol is open (Apache 2.0): you can implement your own server.
Keep a minimal local configuration (the remotecfg block and self-monitoring): if the service is unreachable, Alloy keeps the last configuration received.

2. Kubernetes Monitoring #

The k8s-monitoring Helm chart.

Several specialized Alloys #

The k8s-monitoring Helm chart (version 4 and later) deploys, via the Alloy Operator, several Alloys with distinct roles. In v4, you name the collectors yourself (collectors) and apply presets; each feature (clusterMetrics, podLogs, applicationObservability, autoInstrumentation…) is attached to a collector, and destinations are typed by protocol (prometheus, loki, otlp, pyroscope).

CollectorPresetsRole
Metricsclustered, statefulsetkubelet, cAdvisor, kube-state-metrics, ServiceMonitor
EventssingletonCluster events (single instance)
Logsfilesystem-log-reader, daemonsetPod and node logs
ReceiverdaemonsetOTLP pushed by applications
Profilesprivileged, daemonsetContinuous profiling
The Alloy Operator deploys specialized collectors
helm repo add grafana https://grafana.github.io/helm-charts
helm upgrade --install k8s-monitoring grafana/k8s-monitoring \
  --namespace monitoring --create-namespace -f values.yaml

The autoInstrumentation option also deploys Beyla as a DaemonSet. The values.yaml format changed between major versions: start from the Grafana Cloud wizard or the chart repository examples.

3. The OpenTelemetry engine #

A Collector configuration in Alloy.

alloy otel #

Already have OpenTelemetry Collector YAML configurations? Alloy's OTel engine (public preview) runs them as-is, without translating them to Alloy syntax. With alloy otel-supervisor, a built-in OpAMP supervisor lets Fleet Management drive that configuration remotely.

alloy otel --config otelcol.yaml
alloy convert --source-format=otelcol --output=config.alloy otelcol.yaml   # or convert to Alloy syntax
NeedChoice
New configuration, Grafana components (faro, beyla, clustering)Default engine (Alloy syntax)
Taking over an existing OpenTelemetry Collector fleetOTel engine + OpAMP

Sources #

Related articles

Alloy and the Grafana Labs ecosystem: which component for which tool?

The map of Alloy integrations with Faro, Beyla, k6, Loki, Mimir, Tempo, Pyroscope, Database Observability, Fl…

Faro and Alloy: receiving front-end RUM with faro.receiver

Configure faro.receiver: CORS, API key, rate limiting, source maps, then send browser errors, Web Vitals and …

Beyla and Alloy: zero-code RED metrics and traces with beyla.ebpf

Enable Beyla eBPF instrumentation in Alloy: service discovery, RED metrics to Mimir, traces to Tempo, require…

Keep learning

Support us

♥ SUPPORT US

Support RousselTM Learning

Courses, articles, labs and certificates stay free with no intrusive ads. A voluntary contribution, of any amount you choose, pays for hosting, lab environments and new content.

Contribute with PayPal Any amount · card or PayPal accountLearn more
QR code PayPal
Or scan this QR code with your phone

Thank you, every contribution counts!