Releases: grafana/alloy
v1.11.3
This is release v1.11.3 of Grafana Alloy.
Upgrading
Read the release notes for specific instructions on upgrading from older versions:
Notable changes:
Enhancements
-
Schedule new path targets faster in
loki.source.file. (@kalleep) -
Add
prometheus.static.exporterthat exposes metrics specified in a text file in Prometheus exposition format. (@kalleep)
Bugfixes
-
local.file_matchnow publish targets faster whenever targets in arguments changes. (@kalleep) -
Fix
otelcol.exporter.splunkhecarguments missing documentedotel_attrs_to_hec_metadatablock. (@dehaansa) -
Support Scrape Protocol specification in CRDS for
prometheus.operator.*components. (@dehaansa) -
Fix panic in
otelcol.receiver.syslogwhen no tcp block was configured. (@kalleep)
For a full list of changes, please refer to the CHANGELOG!
Installation
Refer to our installation guide for how to install Grafana Alloy.
v1.11.2
This is release v1.11.2 of Grafana Alloy.
Upgrading
Read the release notes for specific instructions on upgrading from older versions:
Notable changes:
Bugfixes
-
Fix potential deadlock in
loki.source.journalwhen stopping or reloading the component. (@thampiotr) -
Honor sync timeout when waiting for network availability for prometheus.operator.* components. (@dehaansa)
-
Fix
prometheus.exporter.cloudwatchto not always emit debug logs but respect debug property. (@kalleep) -
Fix an issue where component shutdown could block indefinitely by adding a warning log message and a deadline of 10 minutes. The deadline can be configured with the
--feature.component-shutdown-deadlineflag if the default is not suitable. (@thampiotr) -
Fix potential deadlocks in
loki.source.fileandloki.source.journalwhen component is shutting down. (@kalleep, @thampiotr)
Installation
Refer to our installation guide for how to install Grafana Alloy.
v1.11.0
This is release v1.11.0 of Grafana Alloy.
Upgrading
Read the release notes for specific instructions on upgrading from older versions:
Notable changes:
Breaking changes
-
Prometheus dependency had a major version upgrade from v2.55.1 to v3.4.2. (@thampiotr)
-
The
.pattern in regular expressions in PromQL matches newline characters now. With this change a regular expressions like.*matches strings that include\n. This applies to matchers in queries and relabel configs in Prometheus and Loki components. -
The
enable_http2inprometheus.remote_writecomponent's endpoints has been changed tofalseby default. Previously, in Prometheus v2 the remote write http client would default to use http2. In order to parallelize multiple remote write queues across multiple sockets its preferable to not default to http2. If you prefer to use http2 for remote write you must now setenable_http2totruein yourprometheus.remote_writeendpoints configuration section. -
The experimental CLI flag
--feature.prometheus.metric-validation-schemehas been deprecated and has no effect. You can configure the metric validation scheme individually for eachprometheus.scrapecomponent. -
Log message format has changed for some of the
prometheus.*components as part of the upgrade to Prometheus v3. -
The values of the
lelabel of classic histograms and thequantilelabel of summaries are now normalized upon ingestion. In previous Alloy versions, that used Prometheus v2, the value of these labels depended on the scrape protocol (protobuf vs text format) in some situations. This led to label values changing based on the scrape protocol. E.g. a metric exposed asmy_classic_hist{le="1"}would be ingested asmy_classic_hist{le="1"}via the text format, but asmy_classic_hist{le="1.0"}via protobuf. This changed the identity of the metric and caused problems when querying the metric. In current Alloy release, which uses Prometheus v3, these label values will always be normalized to a float like representation. I.e. the above example will always result inmy_classic_hist{le="1.0"}being ingested into Prometheus, no matter via which protocol. The effect of this change is that alerts, recording rules and dashboards that directly reference label values as whole numbers such asle="1"will stop working.The recommended way to deal with this change is to fix references to integer
leandquantilelabel values, but otherwise do nothing and accept that some queries that span the transition time will produce inaccurate or unexpected results.
See the upstream Prometheus v3 migration guide for more details.
-
-
prometheus.exporter.windowsdependency has been updated to v0.31.1. (@dehaansa)- There are various renamed metrics and two removed collectors (
cs,logon).
- There are various renamed metrics and two removed collectors (
-
scrape_native_histogramsattribute forprometheus.scrapeis now set tofalse, whereas in previous versions of Alloy it would default totrue. This means that it is no longer enough to just configurescrape_protocolsto start withPrometheusPrototo scrape native histograms -scrape_native_histogramshas to be enabled. Ifscrape_native_histogramsis enabled,scrape_protocolswill automatically be configured correctly for you to includePrometheusProto. If you configure it explicitly, Alloy will validate thatPrometheusProtois in thescrape_protocolslist. -
Add
otel_attrs_to_hec_metadataconfiguration block tootelcol.exporter.splunkhecto matchotelcol.receiver.splunkhec. (@cgetzen) -
[
otelcol.processor.batch] Two arguments have different default values. (@ptodev)send_batch_sizeis now set to 2000 by default. It used to be 8192.send_batch_max_sizeis now set to 3000 by default. It used to be 0.- This helps prevent issues with ingestion of batches that are too large.
-
OpenTelemetry Collector dependencies upgraded from v0.128.0 to v0.134.0. (@ptodev)
- The
otelcol.receiver.opencensuscomponent has been deprecated and will be removed in a future release, useotelcol.receiver.otelpinstead. - [
otelcol.exporter.*] The deprecatedblockingargument in thesending_queueblock has been removed.
Useblock_on_overflowinstead. - [
otelcol.receiver.kafka,otelcol.exporter.kafka]: Removed thebroker_addrargument from theaws_mskblock.
Also removed theSASL/AWS_MSK_IAMauthentication mechanism. - [
otelcol.exporter.splunkhec] Thebatcherblock is deprecated and will be removed in a future release. Use thequeueblock instead. - [
otelcol.exporter.loadbalancing] Use a linear probe to decrease variance caused by hash collisions, which was causing a non-uniform distribution of loadbalancing. - [
otelcol.connector.servicegraph] Thedatabase_name_attributeargument has been removed. - [
otelcol.connector.spanmetrics] Adds a default maximum number of exemplars within the metric export interval. - [
otelcol.processor.tail_sampling] Add a newblock_on_overflowconfig attribute.
- The
Features
-
Add the
otelcol.receiver.fluentforwardreceiver to receive logs via Fluent Forward Protocol. (@rucciva) -
Add the
prometheus.enrichcomponent to enrich metrics using labels fromdiscovery.*components. (@ArkovKonstantin) -
Add
node_filterconfiguration block toloki.source.podlogscomponent to enable node-based filtering for pod discovery. When enabled, only pods running on the specified node will be discovered and monitored, significantly reducing API server load and network traffic in DaemonSet deployments. (@QuentinBisson) -
(Experimental) Additions to experimental
database_observability.mysqlcomponent:query_samplecollector now supports auto-enabling the necessarysetup_consumerssettings (@cristiangreco)query_samplecollector is now compatible with mysql less than 8.0.28 (@cristiangreco)- include
server_idlabel on log entries (@matthewnolf) - support receiving targets argument and relabel those to include
server_id(@matthewnolf) - updated the config blocks and documentation (@cristiangreco)
-
(Experimental) Additions to experimental
database_observability.postgrescomponent:- add
query_tablescollector for postgres (@matthewnolf) - add
cloud_provider.awsconfiguration that enables optionally supplying the ARN of the database under observation. The ARN is appended to metric samples as labels for easier filtering and grouping of resources. - add
query_samplecollector for postgres (@gaantunes) - add
schema_tablecollector for postgres (@fridgepoet) - include
server_idlabel on logs and metrics (@matthewnolf)
- add
-
Add
otelcol.receiver.googlecloudpubsubcommunity component to receive metrics, traces, and logs from Google Cloud Pub/Sub subscription. (@eraac) -
(Experimental) Add a
honor_metadataconfiguration argument to theprometheus.scrapecomponent.
When set totrue, it will propagate metric metadata to downstream components. -
Add a flag to pyroscope.ebpf alloy configuration to set the off-cpu profiling threshold. (@luweglarz)
-
Add
encoding.url_encodeandencoding.url_decodestd lib functions. (@kalleep)
For a full list of changes, please refer to the CHANGELOG!
Installation
Refer to our installation guide for how to install Grafana Alloy.
v1.11.0-rc.3
This is release v1.11.0-rc.3 of Grafana Alloy.
Upgrading
Read the release notes for specific instructions on upgrading from older versions:
Notable changes:
Bugfixes
-
Fix graph UI so it generates correct URLs for components in
remotecfgmodules. (@patrickeasters) -
Fix panic in
loki.writewhen component is shutting down andexternal_labelsare configured. (@kalleep)
Installation
Refer to our installation guide for how to install Grafana Alloy.
v1.11.0-rc.2
This is release v1.11.0-rc.2 of Grafana Alloy.
Upgrading
Read the release notes for specific instructions on upgrading from older versions:
Notable changes:
Bugfixes
- Use new cache for metadata cache in
prometheus.write.queueand support disabling the metadata cache with it disable by default. (@kgeckhart, @dehaansa)
Installation
Refer to our installation guide for how to install Grafana Alloy.
v1.11.0-rc.1
This is release v1.11.0-rc.1 of Grafana Alloy.
Upgrading
Read the release notes for specific instructions on upgrading from older versions:
Notable changes:
Bugfixes
-
Fix
loki.source.podlogscomponent to properly collect logs from Kubernetes Jobs and CronJobs. Previously, the component would fail to scrape logs from short-lived or terminated jobs due to race conditions between job completion and pod discovery. The fix includes:- Job-aware termination logic with extended grace periods (10-60 seconds) to ensure all logs are captured
- Proper handling of pod deletion and race conditions between job completion and controller cleanup
- Separation of concerns:
shouldStopTailingContainer()handles standard Kubernetes restart policies for regular pods, whileshouldStopTailingJobContainer()handles job-specific lifecycle with grace periods - Enhanced deduplication mechanisms to prevent duplicate log collection while ensuring comprehensive coverage
- Comprehensive test coverage including unit tests and deduplication validation
This resolves the issue where job logs were being missed, particularly for fast-completing jobs or jobs that terminated before discovery. (@QuentinBisson)
-
Fix
prometheus.exporter.rediscomponent so that it no longer ignores theMaxDistinctKeyGroupsconfiguration option. If key group metrics are enabled, this will increase the cardinality of the generated metrics. (@stegosaurus21) -
Fix
loki.source.journalcreation failing with an error when the journal file is not found. (@thampiotr)
For a full list of changes, please refer to the CHANGELOG!
Installation
Refer to our installation guide for how to install Grafana Alloy.
v1.11.0-rc.0
This is release v1.11.0-rc.0 of Grafana Alloy.
Upgrading
Read the release notes for specific instructions on upgrading from older versions:
Notable changes:
Breaking changes
-
Prometheus dependency had a major version upgrade from v2.55.1 to v3.4.2. (@thampiotr)
-
The
.pattern in regular expressions in PromQL matches newline characters now. With this change a regular expressions like.*matches strings that include\n. This applies to matchers in queries and relabel configs in Prometheus and Loki components. -
The
enable_http2inprometheus.remote_writecomponent's endpoints has been changed tofalseby default. Previously, in Prometheus v2 the remote write http client would default to use http2. In order to parallelize multiple remote write queues across multiple sockets its preferable to not default to http2. If you prefer to use http2 for remote write you must now setenable_http2totruein yourprometheus.remote_writeendpoints configuration section. -
The experimental CLI flag
--feature.prometheus.metric-validation-schemehas been deprecated and has no effect. You can configure the metric validation scheme individually for eachprometheus.scrapecomponent. -
Log message format has changed for some of the
prometheus.*components as part of the upgrade to Prometheus v3. -
The values of the
lelabel of classic histograms and thequantilelabel of summaries are now normalized upon ingestion. In previous Alloy versions, that used Prometheus v2, the value of these labels depended on the scrape protocol (protobuf vs text format) in some situations. This led to label values changing based on the scrape protocol. E.g. a metric exposed asmy_classic_hist{le="1"}would be ingested asmy_classic_hist{le="1"}via the text format, but asmy_classic_hist{le="1.0"}via protobuf. This changed the identity of the metric and caused problems when querying the metric. In current Alloy release, which uses Prometheus v3, these label values will always be normalized to a float like representation. I.e. the above example will always result inmy_classic_hist{le="1.0"}being ingested into Prometheus, no matter via which protocol. The effect of this change is that alerts, recording rules and dashboards that directly reference label values as whole numbers such asle="1"will stop working.The recommended way to deal with this change is to fix references to integer
leandquantilelabel values, but otherwise do nothing and accept that some queries that span the transition time will produce inaccurate or unexpected results.
See the upstream Prometheus v3 migration guide for more details.
-
-
prometheus.exporter.windowsdependency has been updated to v0.31.1. (@dehaansa)- There are various renamed metrics and two removed collectors (
cs,logon).
- There are various renamed metrics and two removed collectors (
-
Add
otel_attrs_to_hec_metadataconfiguration block tootelcol.exporter.splunkhecto matchotelcol.receiver.splunkhec. (@cgetzen) -
[
otelcol.processor.batch] Two arguments have different default values. (@ptodev)send_batch_sizeis now set to 2000 by default. It used to be 8192.send_batch_max_sizeis now set to 3000 by default. It used to be 0.- This helps prevent issues with ingestion of batches that are too large.
-
OpenTelemetry Collector dependencies upgraded from v0.128.0 to v0.134.0. (@ptodev)
- The
otelcol.receiver.opencensuscomponent has been deprecated and will be removed in a future release, useotelcol.receiver.otelpinstead. - [
otelcol.exporter.*] The deprecatedblockingargument in thesending_queueblock has been removed.
Useblock_on_overflowinstead. - [
otelcol.receiver.kafka,otelcol.exporter.kafka]: Removed thebroker_addrargument from theaws_mskblock.
Also removed theSASL/AWS_MSK_IAMauthentication mechanism. - [
otelcol.exporter.splunkhec] Thebatcherblock is deprecated and will be removed in a future release. Use thequeueblock instead. - [
otelcol.exporter.loadbalancing] Use a linear probe to decrease variance caused by hash collisions, which was causing a non-uniform distribution of loadbalancing. - [
otelcol.connector.servicegraph] Thedatabase_name_attributeargument has been removed. - [
otelcol.connector.spanmetrics] Adds a default maximum number of exemplars within the metric export interval. - [
otelcol.processor.tail_sampling] Add a newblock_on_overflowconfig attribute.
- The
Features
-
Add the
otelcol.receiver.fluentforwardreceiver to receive logs via Fluent Forward Protocol. (@rucciva) -
Add the
prometheus.enrichcomponent to enrich metrics using labels fromdiscovery.*components. (@ArkovKonstantin) -
Add
node_filterconfiguration block toloki.source.podlogscomponent to enable node-based filtering for pod discovery. When enabled, only pods running on the specified node will be discovered and monitored, significantly reducing API server load and network traffic in DaemonSet deployments. (@QuentinBisson) -
(Experimental) Additions to experimental
database_observability.mysqlcomponent:query_samplecollector now supports auto-enabling the necessarysetup_consumerssettings (@cristiangreco)query_samplecollector is now compatible with mysql less than 8.0.28 (@cristiangreco)- include
server_idlabel on log entries (@matthewnolf) - support receiving targets argument and relabel those to include
server_id(@matthewnolf) - updated the config blocks and documentation (@cristiangreco)
-
(Experimental) Additions to experimental
database_observability.postgrescomponent:- add
query_tablescollector for postgres (@matthewnolf) - add
cloud_provider.awsconfiguration that enables optionally supplying the ARN of the database under observation. The ARN is appended to metric samples as labels for easier filtering and grouping of resources. - add
query_samplecollector for postgres (@gaantunes) - add
schema_tablecollector for postgres (@fridgepoet) - include
server_idlabel on logs and metrics (@matthewnolf)
- add
-
Add
otelcol.receiver.googlecloudpubsubcommunity component to receive metrics, traces, and logs from Google Cloud Pub/Sub subscription. (@eraac) -
(Experimental) Add a
honor_metadataconfiguration argument to theprometheus.scrapecomponent.
When set totrue, it will propagate metric metadata to downstream components. -
Add a flag to pyroscope.ebpf alloy configuration to set the off-cpu profiling threshold. (@luweglarz)
-
Add
encoding.url_encodeandencoding.url_decodestd lib functions. (@kalleep)
For a full list of changes, please refer to the CHANGELOG!
Installation
Refer to our installation guide for how to install Grafana Alloy.
v1.10.2
This is release v1.10.2 of Grafana Alloy.
Upgrading
Read the release notes for specific instructions on upgrading from older versions:
Notable changes:
Bugfixes
-
Fix issue in
prometheus.write.queuecausing inability to increase shard count if existing WAL data was present on start. (@kgeckhart) -
Fix issue with
loki.source.gcplogwhen push messages sent by gcp pub/sub only includesmessageId. (@kalleep)
Installation
Refer to our installation guide for how to install Grafana Alloy.
v1.10.1
This is release v1.10.1 of Grafana Alloy.
Upgrading
Read the release notes for specific instructions on upgrading from older versions:
Notable changes:
Bugfixes
-
Fix issue with
faro.receivercors not allowing X-Scope-OrgID and traceparent headers. (@mar4uk) -
Fix issues with propagating cluster peers change notifications to components configured with remotecfg. (@dehaansa)
-
Fix issues with statistics reporter not including components only configured with remotecfg. (@dehaansa)
-
Fix issues with
prometheus.exporter.windowsnot propagatingdnscollector config. (@dehaansa) -
Fixed a bug in
prometheus.write.queuewhich caused retries even whenmax_retry_attemptswas set to0. (@ptodev) -
Fixed a bug in
prometheus.write.queuewhich caused labelling issues when providing more than one label inexternal_labels. (@dehaansa) -
Add
application_hostandnetwork_inter_zonefeatures tobeyla.ebpfcomponent. (@marctc) -
Fix issues in
loki.processwherestage.multilinedid not pass through structured metadata. (@jan-mrm) -
Fix URLs in the Windows installer being wrapped in quotes. (@martincostello)
-
Fixed an issue where certain
otelcol.*components could prevent Alloy from shutting down when provided invalid configuration. (@thampiotr)
For a full list of changes, please refer to the CHANGELOG
Installation
Refer to our installation guide for how to install Grafana Alloy.
v1.10.0
This is release v1.10.0 of Grafana Alloy.
Upgrading
Read the release notes for specific instructions on upgrading from older versions.
Notable changes
Breaking changes
- Removing the
nanoserver-1809container image for Windows 2019. (@ptodev)
This is due to the deprecation ofwindows-2019GitHub Actions runners.
Thewindowsservercore-ltsc2022Alloy image is still being published to DockerHub.
Bugfixes
- Upgrade
otelcolcomponents from OpenTelemetry v0.126.0 to v0.128.0 (@korniltsev, @dehaansa)- [
otelcol.exporter.kafka]: Allow kafka exporter to produce to topics based on metadata key values. - [
otelcol.receiver.kafka]: Enforce a backoff mechanism on non-permanent errors, such as when the queue is full. - [
otelcol.receiver.kafka]: Don't restart the Kafka consumer on failed errors when message marking is enabled for them. - [
otelcol.connector.spanmetrics]: Fix bug causing span metrics calls count to be always 0 when using delta temporality.
- [
Features
-
(Experimental) Add an
array.group_bystdlib function to group items in an array by a key. (@wildum) -
Add the
otelcol.exporter.faroexporter to export traces and logs to Faro endpoint. (@mar4uk) -
Add the
otelcol.receiver.faroreceiver to receive traces and logs from the Grafana Faro Web SDK. (@mar4uk) -
Add entropy support for
loki.secretfilter(@romain-gaillard)
Enhancements
-
Add
hash_string_idargument toforeachblock to hash the string representation of the pipeline id instead of using the string itself. (@wildum) -
(Experimental) Additions to experimental
database_observability.mysqlcomponent:- Add
explain_plancollector todatabase_observability.mysqlcomponent. (@rgeyer) locks: addition of data locks collector (@gaantunes @fridgepoet)- Query sample collector is now enabled by default (@matthewnolf)
- Add
-
(Experimental)
prometheus.write.queueadd support for exemplars. (@dehaansa) -
Wire in survey block for beyla.ebpf component. (@grcevski, @tpaschalis)
-
Upgrade
otelcolcomponents from OpenTelemetry v0.126.0 to v0.128.0 (@korniltsev, @dehaansa)- [
otelcol.processor.resourcedetection]: Add additional OS properties to resource detection:os.build.idandos.name. - [
otelcol.processor.resourcedetection]: Addhost.interfaceresource attribute tosystemdetector. - [
otelcol.exporter.kafka]: Fix Snappy compression codec support for the Kafka exporter. - [
otelcol.receiver.filelog]: Introduceutf8-rawencoding to avoid replacing invalid bytes with \uFFFD when reading UTF-8 input. - [
otelcol.processor.k8sattributes]: Support extracting labels and annotations from k8s Deployments. - [
otelcol.processor.k8sattributes]: Add option to configure automatic service resource attributes. - [
otelcol.exporter.datadog]: Addshostname_detection_timeoutconfiguration option for Datadog Exporter and sets default to 25 seconds. - [
otelcol.receiver.datadog]: Address semantic conventions noncompliance and add support for http/db. - [
otelcol.exporter.awss3]: Add the retry mode, max attempts and max backoff to the settings.
- [
-
Add support for
conditionsand statement-specificerror_modeinotelcol.processor.transform. (@ptodev) -
Add
storageandstart_fromargs to cloudwatch logs receiver. (@boernd)
Bugfixes
- Fix extension registration for
otelcol.receiver.splunkhecauth extensions. (@dehaansa)
Other changes
-
Mark
pyroscope.receive_httpandpyroscope.relabelcomponents as GA. (@marcsanmi) -
Upgrade
otelcol.exporter.windowsto v0.30.8 to get bugfixes and fixupdatecollector support. (@dehaansa)
For a full list of changes, please refer to the CHANGELOG!
Installation
Refer to our installation guide for how to install Grafana Alloy.