This is release v1.12.0-rc.2 of Grafana Alloy.
Upgrading
Read the release notes for specific instructions on upgrading from older versions:
Notable changes:
Breaking changes
prometheus.exporter.blackbox,prometheus.exporter.snmpandprometheus.exporter.statsdnow use the component ID instead of the hostname as
theirinstancelabel in their exported metrics. This is a consequence of a bug fix that could lead to missing data when using the exporter
with clustering. If you would like to retain the previous behaviour, you can usediscovery.relabelwithaction = "replace"rule to
set theinstancelabel tosys.env("HOSTNAME"). (@thampiotr)
Features
-
(Experimental) Add an
otelcol.receiver.cloudflarecomponent to receive
logs pushed by Cloudflare's LogPush jobs. (@x1unix) -
(Experimental) Additions to experimental
database_observability.mysqlcomponent:explain_plans- collector now changes schema before returning the connection to the pool (@cristiangreco)
- collector now passes queries more permissively, expressly to allow queries beginning in
with(@rgeyer)
- enable
explain_planscollector by default (@rgeyer)
-
(Experimental) Additions to experimental
database_observability.postgrescomponent:explain_plansquery_samples- add
userfield to wait events withinquery_samplescollector (@gaantunes) - rework the query samples collector to buffer per-query execution state across scrapes and emit finalized entries (@gaantunes)
- process turned idle rows to calculate finalization times precisely and emit first seen idle rows (@gaantunes)
- add
query_details- escape queries coming from pg_stat_statements with quotes (@gaantunes)
- enable
explain_planscollector by default (@rgeyer) - safely generate server_id when UDP socket used for database connection (@matthewnolf)
- add table registry and include "validated" in parsed table name logs (@fridgepoet)
-
Add
otelcol.exporter.googlecloudpubsubcommunity component to export metrics, traces, and logs to Google Cloud Pub/Sub topic. (@eraac) -
Add
structured_metadata_dropstage forloki.processto filter structured metadata. (@baurmatt) -
Send remote config status to the remote server for the remotecfg service. (@erikbaranowski)
-
Send effective config to the remote server for the remotecfg service. (@erikbaranowski)
-
Add a
stat_statementsconfiguration block to theprometheus.exporter.postgrescomponent to enable selecting both the query ID and the full SQL statement. The new block includes one option to enable statement selection, and another to configure the maximum length of the statement text. (@SimonSerrano) -
Add
truncatestage forloki.processto truncate log entries, label values, and structured_metadata values. (@dehaansa) -
Add
u_probe_links&load_probeconfiguration fields to alloy pyroscope.ebpf to extend configuration of the opentelemetry-ebpf-profiler to allow uprobe profiling and dynamic probing. (@luweglarz) -
Add
verbose_modeconfiguration fields to alloy pyroscope.ebpf to be enable ebpf-profiler verbose mode. (@luweglarz) -
Add
file_matchblock toloki.source.filefor built-in file discovery using glob patterns. (@kalleep) -
Add a
regexargument to thestructured_metadatastage inloki.processto extract labels matching a regular expression. (@timonegk) -
OpenTelemetry Collector dependencies upgraded from v0.134.0 to v0.139.0. (@dehaansa)
- All
otelcol.receiver.*components leveraging an HTTP server can configure HTTP keep alive behavior withkeep_alives_enabled. - All
otelcol.exporter.*components providing thesending_queue>batchblock have defaultbatchvalues. - The
otelcol.processor.k8sattributescomponent has support for extracting annotations from k8s jobs and daemonsets. - The
otelcol.processor.resourcedecetioncomponent supports nine new detectors. - The
otelcol.exporter.kafkacomponent supports partitioning logs by trace ID (partition_logs_by_trace_id) and configuring default behavior if topic does not exist (allow_auto_topic_creation). - The
otelcol.receiver.kafkacomponent has new configuration optionsmax_partition_fetch_size,rack_id, anduse_leader_epoch. - The
otelcol.exporter.s3component has new configuration optionss3_base_prefixands3_partition_timezone. - The
otelcol.processor.servicegraphcomponent now supports defining the maximum number of buckets for generated exponential histograms. - See the upstream [core][https://github.com/open-telemetry/opentelemetry-collector/blob/v0.139.0/CHANGELOG.md] and [contrib][https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.139.0/CHANGELOG.md] changelogs for more details.
- All
-
A new
mimir.alerts.kubernetescomponent which discoversAlertmanagerConfigKubernetes resources and loads them into a Mimir instance. (@ptodev) -
Mark
stage.windowseventblock in theloki.processcomponent as GA. (@kgeckhart)
Enhancements
-
Add per-application rate limiting with the
strategyattribute in thefaro.receivercomponent, to prevent one application from consuming the rate limit quota of others. (@hhertout) -
Add support of
tlsin componentsloki.source.(awsfirehose|gcplog|heroku|api)andprometheus.receive_httpandpyroscope.receive_http. (@fgouteroux) -
Remove SendSIGKILL=no from unit files and recommendations (@oleg-kozlyuk-grafana)
-
Reduce memory overhead of
prometheus.remote_write's WAL by lowering the size of the allocated series storage. (@kgeckhart) -
Reduce lock wait/contention on the labelstore.LabelStore by removing unecessary usage from
prometheus.relabel. (@kgeckhart) -
prometheus.exporter.postgresdependency has been updated to v0.18.1. This includes newstat_progress_vacuumandbuffercache_summarycollectors, as well as other bugfixes and enhancements. (@cristiangreco) -
Update Beyla component to 2.7.8. (@grcevski)
-
Support delimiters in
stage.luhn. (@dehaansa) -
pyroscope.java: update async-profiler to 4.2 (@korniltsev-grafanista)
-
Improve debug info output from exported receivers (loki, prometheus and pyroscope). (@kalleep)
-
prometheus.exporter.unix: Add anarpconfig block to configure the ARP collector. (@ptodev) -
prometheus.exporter.snowflakedependency has been updated to 20251016132346-6d442402afb2, which updates data ownership queries to uselast_over_timefor a 24 hour period. (@Dasomeone) -
loki.source.podlogsnow supportspreserve_discovered_labelsparameter to preserve discovered pod metadata labels for use by downstream components. (@QuentinBisson) -
Rework underlying framework of Alloy UI to use Vite instead of Create React App. (@jharvey10)
-
Use POST requests for remote config requests to avoid hitting http2 header limits. (@tpaschalis)
-
loki.source.apiduring component shutdown will now reject all the inflight requests with status code 503 aftergraceful_shutdown_timeouthas expired. (@kalleep) -
kubernetes.discoveryAdd support for attaching namespace metadata. (@kgeckhart) -
Add
meta_cache_addresstobeyla.ebpfcomponent. (@skl)
Bugfixes
-
Stop
loki.source.kubernetesdiscarding log lines with duplicate timestamps. (@ciaranj) -
Fix direction of arrows for pyroscope components in UI graph. (@dehaansa)
-
Only log EOF errors for syslog port investigations in
loki.source.syslogas Debug, not Warn. (@dehaansa) -
Fix prometheus.exporter.process ignoring the
remove_empty_groupsargument. (@mhamzahkhan) -
Fix issues with "unknown series ref when trying to add exemplar" from
prometheus.remote_writeby allowing series ref links to be updated if they change. (@kgeckhart) -
Fix
loki.source.podlogscomponent to register the Kubernetes field index forspec.nodeNamewhen node filtering is enabled, preventing "Index with name field:spec.nodeName does not exist" errors. (@QuentinBisson) -
Fix issue in
loki.source.filewhere scheduling files could take too long. (@kalleep) -
Fix
loki.writeno longer includes internal labels__. (@matt-gp) -
Fix missing native histograms custom buckets (NHCB) samples from
prometheus.remote_write. (@krajorama) -
otelcol.receiver.prometheusnow supports mixed histograms ifprometheus.scrapehashonor_metadataset totrue. (@ptodev)
A mixed histogram is one which has both classic and exponential buckets. -
loki.source.filehas better support for non-UTF-8 encoded files. (@ptodev)- A BOM will be taken into account if the file is UTF-16 encoded and
encodingis set toUTF-16. (NotUTF-16BEorUTF-16LE) - The carriage return symbol in Windows log files with CLRF endings will no longer be part of the log line.
- These bugs used to cause some logs to show up with Chinese characters. Notably, this would happen on MSSQL UTF-16 LE logs.
- A BOM will be taken into account if the file is UTF-16 encoded and
-
Fix the
loki.writeendpoint block'senable_http2attribute to actually affect the client. HTTP2 was previously disabled regardless of configuration. (@dehaansa) -
Optionally remove trailing newlines before appending entries in
stage.multiline. (@dehaansa) -
loki.source.apino longer drops request when relabel rules drops a specific stream. (@kalleep)
Installation
Refer to our installation guide for how to install Grafana Alloy.