github grafana/alloy v1.20.0

latest release: helm-chart/1.13.0
4 hours ago

1.20.0 (2026-09-25)

⚠ BREAKING CHANGES

  • discovery.hetzner: discovery.hetzner no longer exports the __meta_hetzner_datacenter label for targets with role = "hcloud". Relabeling rules that reference this label for hcloud targets silently stop matching. The label is unaffected for role = "robot" targets, which also now export it under the additional name __meta_hetzner_robot_datacenter.
  • otelcol.receiver.filelog: otelcol.receiver.filelog's top_n now distinguishes an explicit 0 ("track all files") from leaving it unset ("apply the default"), matching upstream. Breaking change: previously, top_n = 0 was treated the same as unset.
  • otelcol.exporter.awss3: Apply upstream retry defaults and expose retry_on_failure (#7138)
  • otelcol.processor.memory_limiter: Apply upstream GC interval defaults and expose them (#7137)
  • otelcol.receiver.kafka: plaintext credentials are now translated into a sasl block with mechanism set to PLAIN, matching what upstream's Kafka client actually requires. This also applies to otelcol.exporter.kafka. Configs relying on the old (broken) silent-drop behavior will now authenticate correctly instead of connecting anonymously.
  • otelcol.processor.k8sattributes: otelcol.processor.k8sattributes now extracts container.image.tags (a list) instead of container.image.tag (a string) by default. Default label/annotation attribute keys for pod, namespace, and node sources change from the deprecated plural form (k8s.pod.labels.) to the singular form (k8s.pod.label.). There's no configuration option to restore the previous behavior. The deployment_name_from_replicaset argument has also been removed; the processor now always extracts the deployment name from the ReplicaSet name.
  • otelcol.receiver.faro: otelcol.receiver.faro now emits deployment.environment.name instead of the deprecated deployment.environment resource attribute by default.
  • otelcol.processor.transform: Base64Decode has been removed. Use Decode(value, "base64") instead. This also affects otelcol.processor.filter and any other OTTL-consuming component.
  • otelcol.processor.transform: Previously a no-op, set(target, nil) now sets target to nil, because upstream's ottl.set.allowNil feature gate is enabled by default as of this bump.
  • prometheus.exporter.windows now applies the documented default textfile directory (\textfile_inputs) when neither textfile.directories nor the deprecated text_file.text_file_directory is set, restoring behavior that was lost in v1.11.0. Deployments that were relying on the collector silently returning nothing will start receiving any .prom files found there, or an error if that directory doesn't exist, either of which can be avoided by setting directories explicitly or removing textfile from enabled_collectors.

Features 🌟

Bug Fixes 🐛

Upgrading

Read the release notes for specific instructions on upgrading from older versions:

Installation

Refer to our installation guide for how to install Grafana Alloy.

Don't miss a new alloy release

NewReleases is sending notifications on new releases.