# Changelog ## [1.18.0](https://github.com/grafana/alloy/compare/v1.17.0...v1.18.0) (2026-07-17) ### ⚠ BREAKING CHANGES * `otelcol.receiver.otlp`, `otelcol.receiver.faro`, `otelcol.receiver.jaeger`, `otelcol.receiver.zipkin`, `otelcol.receiver.influxdb`, `otelcol.receiver.splunkhec`, `otelcol.receiver.datadog`, and `otelcol.extension.jaeger_remote_sampling` now default to `idle_timeout = "1m"`, `read_header_timeout = "1m"`, and `write_timeout = "30s"` on their HTTP servers, matching upstream default. These were previously being defaulted to `"0s"`. You can explicitly set them to `"0s"` to restore the previous behavior. * `otelcol.receiver.kafka` and `otelcol.exporter.kafka`: `resolve_canonical_bootstrap_servers_only` is now a no-op and deprecated. The upstream migration from migration from `sarama` to `franz-go dropped the behavior. The argument still parses but no longer resolves bootstrap server addresses. * `otelcol.exporter.splunkhec` — `batcher` block removed (upstream deletion in otel-contrib v0.151). Configs using it will fail to load. Migration: move the equivalent fields under `sending_queue.batch` (`enabled` → presence of the block; `flush_timeout`/`sizer`/`min_size`/`max_size` keep their names). ### Features 🌟 * Add alloy.command to override the Alloy Helm container entrypoint ([#6509](https://github.com/grafana/alloy/issues/6509)) ([fea3056](https://github.com/grafana/alloy/commit/fea3056107bf6506ee5ab090c42c08a5e3796e5b)) * Add k8sleaderelector Extension and k8scluster Receiver to OTel Engine ([#6450](https://github.com/grafana/alloy/issues/6450)) ([24fc846](https://github.com/grafana/alloy/commit/24fc84634920e01fbc289ad421aa0ca5605ed238)) * Add OpAmp Extension to OTel Engine ([#6632](https://github.com/grafana/alloy/issues/6632)) ([a32e83b](https://github.com/grafana/alloy/commit/a32e83bd69f2d0c4acd19b0be181ce98b041cb3d)) * Add otelcol.connector.signaltometrics component ([#6410](https://github.com/grafana/alloy/issues/6410)) ([887ca3f](https://github.com/grafana/alloy/commit/887ca3f1f8a162e484cacc88de4baed72bbf8272)) * **database_observability.mysql:** Collect mysql query error info ([#6675](https://github.com/grafana/alloy/issues/6675)) ([d63d9ff](https://github.com/grafana/alloy/commit/d63d9ffe8db41f0505e0ea8a7812ad062cfad357)) * **database_observability.postgres:** Emit `op=error_message` Loki entries with query fingerprint ([#6180](https://github.com/grafana/alloy/issues/6180)) ([377f1d0](https://github.com/grafana/alloy/commit/377f1d0046e06333b722558c19904312f54462a1)) * **database_observability.sql_server:** Add `table_spec` to `schema_details` collector ([#6641](https://github.com/grafana/alloy/issues/6641)) ([db801a6](https://github.com/grafana/alloy/commit/db801a6b55ae4da900bab260d306a9e1db8d08b0)) * **database_observability.sql_server:** Add scaffolding for sql_server `schema_details` collector ([#6624](https://github.com/grafana/alloy/issues/6624)) ([0cedb33](https://github.com/grafana/alloy/commit/0cedb331e6f1985aada77f3c5e549811a2a085d4)) * **database_observability.sql_server:** Scan all databases in `schema_details` collector ([#6672](https://github.com/grafana/alloy/issues/6672)) ([dd1eabe](https://github.com/grafana/alloy/commit/dd1eabe7abc72bc70942aa975c74f67dafd6a8e6)) * **discovery.aws:** Add AWS unified service discovery component ([#6658](https://github.com/grafana/alloy/issues/6658)) ([25cb5f0](https://github.com/grafana/alloy/commit/25cb5f0133307d6a3bbae0d2a2851731de50e8d3)) * Expose HTTP server idle/read/read_header/write timeouts in OTel Components ([#6636](https://github.com/grafana/alloy/issues/6636)) ([7cc28ee](https://github.com/grafana/alloy/commit/7cc28ee64183382f23c17dc28c3a35eff50ac75f)) * **Helm Chart:** Make service.externalTrafficPolicy avaliable ([#4511](https://github.com/grafana/alloy/issues/4511)) ([a987e33](https://github.com/grafana/alloy/commit/a987e33af93f6756c32d776c37a6af4484b66183)) * Inline config support for Alloy Otel Extension ([#6442](https://github.com/grafana/alloy/issues/6442)) ([53589bd](https://github.com/grafana/alloy/commit/53589bd0b7d2261580cf3448d059f573907a86a2)) * Make alloyengine extension OCB-able ([#6395](https://github.com/grafana/alloy/issues/6395)) ([b6c5b20](https://github.com/grafana/alloy/commit/b6c5b2075840f874a7e9a01a7ac5e21da0275af7)) * **metrics:** Add native histogram support for self-monitoring metrics ([#6385](https://github.com/grafana/alloy/issues/6385)) ([6045de1](https://github.com/grafana/alloy/commit/6045de1264724c23fa4e3d6423f109b7585088aa)) * **otelcol.connector.spanmetrics:** Expose include_collector_instance_id ([#6635](https://github.com/grafana/alloy/issues/6635)) ([ca46cb4](https://github.com/grafana/alloy/commit/ca46cb4e80ae075a7d77af865747f91db9ddc67e)) * **otelcol:** Expose small v0.152/v0.153 upstream config field additions ([#6664](https://github.com/grafana/alloy/issues/6664)) ([f824237](https://github.com/grafana/alloy/commit/f824237c7a1b6ad2d2675ca55c6fa8e8ec277045)) * **prometheus.exporter.windows:** Add time collector to the Windows exporter ([#6517](https://github.com/grafana/alloy/issues/6517)) ([6289603](https://github.com/grafana/alloy/commit/62896033de73b65cb64227f2fcdb6e88d8d91d52)) * **prometheus.remote_write:** Expose google_iam, round_robin_dns, and additional sigv4/azuread auth options ([#6637](https://github.com/grafana/alloy/issues/6637)) ([96dd5e0](https://github.com/grafana/alloy/commit/96dd5e0adcb27f22c5941a85a4af039cb532d3c3)) * **pyroscope.ebpf:** Add no_kernel_version_check argument ([#6475](https://github.com/grafana/alloy/issues/6475)) ([020d74c](https://github.com/grafana/alloy/commit/020d74cc572d55879cdf2500f92e0046dd463f09)) * **pyroscope:** Add scope labels to Alloy profiles ([#6569](https://github.com/grafana/alloy/issues/6569)) ([cb771b6](https://github.com/grafana/alloy/commit/cb771b6223aff623783d240eadacf46972e18a8d)) * **ui:** Render pipeline graph via @grafana/alloy-pipeline-graph ([#6566](https://github.com/grafana/alloy/issues/6566)) ([7772bf8](https://github.com/grafana/alloy/commit/7772bf80b52d1e694eac5c59f87c5691615afce0)) * Upgrade Prometheus to v3.12.0 (GA) and OpenTelemetry Collector to v0.153.0 ([#6597](https://github.com/grafana/alloy/issues/6597)) ([118a5d1](https://github.com/grafana/alloy/commit/118a5d1e1c22c3beac3abc355b62aa440cce9f0d)) * Upgrade Prometheus to v3.12.0-rc.0, otel-contrib to v0.151.0, Loki to v3.7.1 ([#6240](https://github.com/grafana/alloy/issues/6240)) ([b4b6747](https://github.com/grafana/alloy/commit/b4b674749ecdd5b9e8e73e98ff58bf842f98d40e)) * Upgrade to Beyla 3.22 ([#6452](https://github.com/grafana/alloy/issues/6452)) ([1cb72f6](https://github.com/grafana/alloy/commit/1cb72f65db6f4fdaea8c763cf3fe74abf246fe39)) ### Bug Fixes 🐛 * Back off usage reporting on persistent failure instead of retrying every minute ([#6478](https://github.com/grafana/alloy/issues/6478)) ([0a1d139](https://github.com/grafana/alloy/commit/0a1d13919326e9321ece2d0694e5a0b42a691233)) * Beyla glob parsing ([#6525](https://github.com/grafana/alloy/issues/6525)) ([beddf1b](https://github.com/grafana/alloy/commit/beddf1bbc99dfffa98df4d2d9b9017b94f2b45c9)) * Bump github.com/prometheus/procfs To Pull XFS Collector Fix ([#6630](https://github.com/grafana/alloy/issues/6630)) ([976726c](https://github.com/grafana/alloy/commit/976726cd3a4d2ceab14c3eb9c23f4cf4c808e5eb)) * Bump moduledeps fixtures to go 1.26.4 ([#6521](https://github.com/grafana/alloy/issues/6521)) ([9d27acd](https://github.com/grafana/alloy/commit/9d27acd3141fc593b87cc99a3fc6411f0abd72c7)) * **ci:** Only stamp BuildDate for release builds ([#6541](https://github.com/grafana/alloy/issues/6541)) ([59ed586](https://github.com/grafana/alloy/commit/59ed586439f0bbdf57c519f606dd0d6b0431cae6)), closes [#4266](https://github.com/grafana/alloy/issues/4266) * **database_observability.mysql:** Simplify denylist in-memory map for `explain_plans` collector ([#6473](https://github.com/grafana/alloy/issues/6473)) ([18fe267](https://github.com/grafana/alloy/commit/18fe2673d33435005832b07919251d8f0173ce1f)) * **database_observability.postgres:** Handle Postgres DSN with unix sockets ([#6463](https://github.com/grafana/alloy/issues/6463)) ([d065b84](https://github.com/grafana/alloy/commit/d065b84626d15a713e95a7871461bcdb7564b54d)) * **database_observability.postgres:** Update postgres collect intervals to match mysql ([#6639](https://github.com/grafana/alloy/issues/6639)) ([d55dee0](https://github.com/grafana/alloy/commit/d55dee06218549804da54d295d9a5f7108a097ca)) * **database_observability/postgres:** Route Windows builds to the nocgo fingerprint stub ([#6690](https://github.com/grafana/alloy/issues/6690)) ([5ec00a4](https://github.com/grafana/alloy/commit/5ec00a45aca3e99a8cec76514095abb53df0ff5f)) * **database_observability:** Explain-plan conditions now redact ([7e8e72d](https://github.com/grafana/alloy/commit/7e8e72d39c4219b2957cf3810a9b3e914213987e)) * **deps:** Update high-confidence go dependencies ([#6558](https://github.com/grafana/alloy/issues/6558)) ([bd61eeb](https://github.com/grafana/alloy/commit/bd61eeb0a38344ab6c2b650e024842e0e5505a82)), closes [#6547](https://github.com/grafana/alloy/issues/6547) * Don't emit error log when remotecfg is unused ([#6483](https://github.com/grafana/alloy/issues/6483)) ([d0f30ea](https://github.com/grafana/alloy/commit/d0f30ea9befdd6e8cc948a47140391531f25fa7d)) * Ensure Alloy Logs Dashboard Accounts for New Native Histograms Options ([#6704](https://github.com/grafana/alloy/issues/6704)) ([5ab0b06](https://github.com/grafana/alloy/commit/5ab0b0652c92769f94dd522a2e5d59f7859e3882)) * Ensure generate-otel-collector-distro runs "go mod tidy" after all generation steps ([#6640](https://github.com/grafana/alloy/issues/6640)) ([7b15c04](https://github.com/grafana/alloy/commit/7b15c04f58de0a7ee8b0d3ecd64908676ed9ff27)) * Fix typo in the pull request template ([#6676](https://github.com/grafana/alloy/issues/6676)) ([a473efe](https://github.com/grafana/alloy/commit/a473efe2b676ba826ec1ba68897b6b1f475bcbbc)) * **loki.process:** Log logfmt decode failures at debug instead of error ([#6599](https://github.com/grafana/alloy/issues/6599)) ([66990eb](https://github.com/grafana/alloy/commit/66990ebbbe51345b2598f2f1ad1a093e8934e58e)) * **loki.process:** Prevent data race for metircs ([#6519](https://github.com/grafana/alloy/issues/6519)) ([2ae1848](https://github.com/grafana/alloy/commit/2ae18487d006f1ef2c2979d630b831ff1bd321cf)) * Make go mod tidy resilient to transient module-proxy failures ([#6491](https://github.com/grafana/alloy/issues/6491)) ([23e04c9](https://github.com/grafana/alloy/commit/23e04c920b5c2fd4b2cba8c719f3f17d852b351a)) * **prometheus.exporter.cloudwatch:** Stop forcing legacy metric-name validation process-wide ([#6616](https://github.com/grafana/alloy/issues/6616)) ([fabebf8](https://github.com/grafana/alloy/commit/fabebf8e61d6db35943730dbe5f0239fafc25ae7)) * **promethues.exporter.mongodb:** Add currentop_slow_time argument ([#6539](https://github.com/grafana/alloy/issues/6539)) ([dd48729](https://github.com/grafana/alloy/commit/dd48729d2b705faeb21a08d1d20fd19aa8546b6b)) * **pyroscope.ebpf:** Skip empty build ID debug info uploads ([#6634](https://github.com/grafana/alloy/issues/6634)) ([580d0a1](https://github.com/grafana/alloy/commit/580d0a1697166360fbe72cab9e387b542a898e45)) * Remove duplicate Time field in windows exporter ([#6633](https://github.com/grafana/alloy/issues/6633)) ([a97ec91](https://github.com/grafana/alloy/commit/a97ec91d4ae98964b744ecc78a77bcd053530f07)) * Remove extra bracketing of squid exporter host ([#6573](https://github.com/grafana/alloy/issues/6573)) ([4259b8f](https://github.com/grafana/alloy/commit/4259b8ff6dc3fe46fa2eee6b9a501f0fc64eb93b)) * **security/web/ui:** Update web/ui vite to v7.3.5 [SECURITY] ([#6497](https://github.com/grafana/alloy/issues/6497)) ([d2bb8c0](https://github.com/grafana/alloy/commit/d2bb8c06a610fa2b7ddf64bc2589d380e6da2572)) * Skip noop error log at collector registration ([#6543](https://github.com/grafana/alloy/issues/6543)) ([80968d4](https://github.com/grafana/alloy/commit/80968d44c4275ba4abd642063e177abac421c3c5)) * Stabilize ServiceMonitor e2e target injection sequencing ([#6523](https://github.com/grafana/alloy/issues/6523)) ([cddef2d](https://github.com/grafana/alloy/commit/cddef2d3d2e6cdb158f3989807b6fcbf8008be1d)) * Stabilize Windows CI in Loki tests and static converter ([#6524](https://github.com/grafana/alloy/issues/6524)) ([7284c0d](https://github.com/grafana/alloy/commit/7284c0dc6eecb0146e711ac9dbbad63abd574b89)) * **syntax:** Release syntax 0.1.1 ([#6549](https://github.com/grafana/alloy/issues/6549)) ([c43e289](https://github.com/grafana/alloy/commit/c43e289dfde392035e34f68ee3fecc8bb92369aa)) * Upgrade homebrew-bump-formula action ([#6708](https://github.com/grafana/alloy/issues/6708)) ([69cd783](https://github.com/grafana/alloy/commit/69cd783eb474aad6518150cc688d08c04745653e)) * **web/ui:** Bump esbuild to 0.28.1 ([#6522](https://github.com/grafana/alloy/issues/6522)) ([a2b3981](https://github.com/grafana/alloy/commit/a2b3981a3737c369ccce6abf53dd8b57768e88a5)) * **windows_service:** Gracefully terminate alloy when service is stopped ([#6593](https://github.com/grafana/alloy/issues/6593)) ([d3969ba](https://github.com/grafana/alloy/commit/d3969ba04081edb92cac50a7b37f674c3552e2d2)) * **windows:** Allow non-admin service account to start Alloy ([#6627](https://github.com/grafana/alloy/issues/6627)) ([bef2f3d](https://github.com/grafana/alloy/commit/bef2f3dbe4c7c43f5ec0f6fb03f857fb596068cb)) ## [1.17.0](https://github.com/grafana/alloy/compare/v1.16.0...v1.17.0) (2026-06-11) ### Features 🌟 * Add gql subcommand ([#6242](https://github.com/grafana/alloy/issues/6242)) ([ec09c43](https://github.com/grafana/alloy/commit/ec09c439407e61757bd2c626f86ada17dba9b262)) * **database_observability.mysql:** Add database_observability_wait_event_seconds_total counter ([#6106](https://github.com/grafana/alloy/issues/6106)) ([602b0b5](https://github.com/grafana/alloy/commit/602b0b54bc65290862920f5a6cd0a5ac949c092d)) * **database_observability.mysql:** Refactor bulk table metadata collection ([#6222](https://github.com/grafana/alloy/issues/6222)) ([e8d441b](https://github.com/grafana/alloy/commit/e8d441bb7f3f582627bf364f6e4529d32db0f177)) * **database_observability.mysql:** Refactor schema_details logging strategy ([#6239](https://github.com/grafana/alloy/issues/6239)) ([fd51530](https://github.com/grafana/alloy/commit/fd5153020f1561433a868e8a51ddc9f76b23f506)) * **database_observability.postgres:** Add `exclude_current_user` top-level setting ([#6187](https://github.com/grafana/alloy/issues/6187)) ([f019b5e](https://github.com/grafana/alloy/commit/f019b5e6c60c10485db48fec9eeb2f932f191068)) * **database_observability.postgres:** Improve monitoring user privileges check ([#6177](https://github.com/grafana/alloy/issues/6177)) ([96b50d1](https://github.com/grafana/alloy/commit/96b50d1cc734fa5cffbc6cf68fcd832b754fd92d)) * **database_observability.postgres:** Make health_check respect user/database exclusions settings ([#6144](https://github.com/grafana/alloy/issues/6144)) ([b4ee0a7](https://github.com/grafana/alloy/commit/b4ee0a77cec0ed8fd7ce3d8cd2ad8e886acfea09)) * **database_observability.postgres:** Throttle schema details create_statement logs ([#6260](https://github.com/grafana/alloy/issues/6260)) ([fcb3d3e](https://github.com/grafana/alloy/commit/fcb3d3ef3cc390424def01a7e7f62d8ce6cfb32d)) * **database_observability:** Add wait_event_v2 op with pre-classified wait_event_type ([#6105](https://github.com/grafana/alloy/issues/6105)) ([f7a1ebd](https://github.com/grafana/alloy/commit/f7a1ebd769e04924adad69f2e082ce92c85b5977)) * **database_observability:** Always extract traceparent in MySQL query_samples collector ([#6081](https://github.com/grafana/alloy/issues/6081)) ([bf2b436](https://github.com/grafana/alloy/commit/bf2b436f55fa9cf0eb7c2c2400c4c646b8a8ecb8)) * **database_observability:** Always extract traceparent in Postgres query_samples collector ([#6411](https://github.com/grafana/alloy/issues/6411)) ([74d595a](https://github.com/grafana/alloy/commit/74d595ab2ce8f7ccc86f558ad512eb75a40f4cfc)) * **database_observability:** Set query_sample, wait_event timestamps at query start for MySQL ([#6291](https://github.com/grafana/alloy/issues/6291)) ([a47de00](https://github.com/grafana/alloy/commit/a47de00d07475f2fdc54249e021fc39f2a4281df)) * **database_observability:** Set timestamp query_sample at query start for Postgres ([#6393](https://github.com/grafana/alloy/issues/6393)) ([62d8ecc](https://github.com/grafana/alloy/commit/62d8ecc299cb976e33d5dd340cafe9e675d5d547)) * **database_observability:** Update wait_event_v2 to a 6-bucket taxonomy and surface Mysql nested events ([#6143](https://github.com/grafana/alloy/issues/6143)) ([3df9542](https://github.com/grafana/alloy/commit/3df95423c5609b484c79dcd212fcc3e44b194857)) * **faro.receiver:** Support gzip-compressed request bodies ([#6195](https://github.com/grafana/alloy/issues/6195)) ([4fa44d2](https://github.com/grafana/alloy/commit/4fa44d2e014392a9a3278e958f14467188514622)) * GraphQL server ([#5580](https://github.com/grafana/alloy/issues/5580)) ([5a2562f](https://github.com/grafana/alloy/commit/5a2562f1093e13c7d9f03e9e0f708ef4143707af)) * **helm:** Support externally-managed HPAs via controller.autoscaling.horizontal.externalHPA ([#6311](https://github.com/grafana/alloy/issues/6311)) ([a1e61c7](https://github.com/grafana/alloy/commit/a1e61c7abc7c0840be9bc29b96ea208fe43be115)) * Integration tests for aws firehose and cloudflare logpull ([#6089](https://github.com/grafana/alloy/issues/6089)) ([f55f780](https://github.com/grafana/alloy/commit/f55f78039189186e6e77d3bdb8cfd2fb3480fe41)) * Integration tests for loki.source.azure_event_hubs ([#6113](https://github.com/grafana/alloy/issues/6113)) ([8e40165](https://github.com/grafana/alloy/commit/8e4016506250063be863ff35eeeda348b912295c)) * Integration tests for loki.source.gcplog ([#6161](https://github.com/grafana/alloy/issues/6161)) ([feceb8d](https://github.com/grafana/alloy/commit/feceb8d20d4aa0e7366c7c5c6cc35255af7d18f8)) * **loki.process:** Add regex field to logfmt and json stages ([#4941](https://github.com/grafana/alloy/issues/4941)) ([cfbabda](https://github.com/grafana/alloy/commit/cfbabda3eb9ffd4ece693e23baed38c8ee46ea0d)) * **loki.rules.kubernetes:** Add external_labels support ([#6320](https://github.com/grafana/alloy/issues/6320)) ([9166a61](https://github.com/grafana/alloy/commit/9166a61d408538e4f4aceeda0b8638069513484a)) * **loki.source.heroku:** Drop github.com/heroku/x package ([#6064](https://github.com/grafana/alloy/issues/6064)) ([3382721](https://github.com/grafana/alloy/commit/3382721d7a44647cfcd2e86ce1d82f8d282f7854)) * Migrate from Docker to Moby ([#6167](https://github.com/grafana/alloy/issues/6167)) ([1e2bbf9](https://github.com/grafana/alloy/commit/1e2bbf9d8d73f34c7ccec651a5c41a2b6718dacc)) * **mimir.rules.kubernetes, loki.rules.kubernetes:** Add configurable `mimir_namespace_separator` and `loki_namespace_separator` arguments to allow using a URL-safe separator ([#5961](https://github.com/grafana/alloy/issues/5961)) ([7dba4f1](https://github.com/grafana/alloy/commit/7dba4f196f06c9813c1ef9c4de6002076b6f6738)) * **otelcol.exporter.prometheus:** Config option to prevent stripping `service.*` attributes ([#6434](https://github.com/grafana/alloy/issues/6434)) ([c229b3c](https://github.com/grafana/alloy/commit/c229b3c64c512b69263a2e0ec329d6e3e12cde6f)) * **otelcol.exporter.prometheus:** Convert classic histograms to NHCB ([#6281](https://github.com/grafana/alloy/issues/6281)) ([46f4fb6](https://github.com/grafana/alloy/commit/46f4fb61e57f8e05110a21bfafc063a8ac6ec443)) * **otelcol:** Add Nginx receiver ([#6141](https://github.com/grafana/alloy/issues/6141)) ([fa8d520](https://github.com/grafana/alloy/commit/fa8d520297301f5d14cf83fde96818efa19587cd)) * **prometheus.enrich:** Support multi-label matching ([#5822](https://github.com/grafana/alloy/issues/5822)) ([04a1aba](https://github.com/grafana/alloy/commit/04a1aba1fcbac25bbe1ecc5e86cafdcdd5eff6b9)) * **prometheus.relabel:** Add opt-in TTL cache mode ([#6169](https://github.com/grafana/alloy/issues/6169)) ([40632c3](https://github.com/grafana/alloy/commit/40632c33aef80490f3735a767f2c193c8bfa4b62)) * **telemetry:** Add graph connection metrics ([#6243](https://github.com/grafana/alloy/issues/6243)) ([4f3bbbe](https://github.com/grafana/alloy/commit/4f3bbbefd67d4ba5f7291d713a9a6d52ea20dde6)) * **telemetry:** Add pyroscope_forwarded_entries_total metric ([#6244](https://github.com/grafana/alloy/issues/6244)) ([65ad64c](https://github.com/grafana/alloy/commit/65ad64c22e7bf9524e3e83823817cf3386dbe9a2)) * Update to Beyla 3.9.7 ([#6175](https://github.com/grafana/alloy/issues/6175)) ([4015bd9](https://github.com/grafana/alloy/commit/4015bd95f58d5f3375af93d20fb75f1fdd17b90a)) * Update to Beyla 3.9.8 ([#6189](https://github.com/grafana/alloy/issues/6189)) ([6fffa30](https://github.com/grafana/alloy/commit/6fffa30c273fa3c9a6870174b552c1be2934d9a8)) ### Bug Fixes 🐛 * Address Critical CVE's From Scanner ([#6232](https://github.com/grafana/alloy/issues/6232)) ([e713e7a](https://github.com/grafana/alloy/commit/e713e7ada335ec3800c66dd9913ee34c7dbee493)) * **alloycli:** Use filepath.Base for CLI Use name to fix shell completions ([#6217](https://github.com/grafana/alloy/issues/6217)) ([17cfd01](https://github.com/grafana/alloy/commit/17cfd01f03379e7e9d265932451c6f2b584da781)) * **cluster:** Fix nodes failing to join the cluster when TLS is enabled ([#6437](https://github.com/grafana/alloy/issues/6437)) ([efbad6d](https://github.com/grafana/alloy/commit/efbad6de6cdd67732bfa41ea1fe6191be0ee5b91)) * **database_observability.mysql:** Exclude system schemas from MySQL health check ([#6116](https://github.com/grafana/alloy/issues/6116)) ([fcae6f4](https://github.com/grafana/alloy/commit/fcae6f4beff1d582c7e3ac0708256ef12ab10302)) * **database_observability.postgres:** Count error logs when log_timezone is non-UTC ([#6274](https://github.com/grafana/alloy/issues/6274)) ([2eaa769](https://github.com/grafana/alloy/commit/2eaa76967e0932869843b39a17021bfc69ed2eda)) * **database_observability.postgres:** Do not retain query text in `explain_plans` collector ([#6461](https://github.com/grafana/alloy/issues/6461)) ([4c06a64](https://github.com/grafana/alloy/commit/4c06a64254aacabab5af377908df9c9f07323de7)) * **database_observability:** Exclude more explain plan output keywords ([#6145](https://github.com/grafana/alloy/issues/6145)) ([3ff6c14](https://github.com/grafana/alloy/commit/3ff6c1489882139822427e4232e9b186db0043e9)) * **deb:** Restart Alloy only on upgrade in postinst script ([#6094](https://github.com/grafana/alloy/issues/6094)) ([8c15cb3](https://github.com/grafana/alloy/commit/8c15cb358b7d8e5ff159e633a5b5ae867e3c2e94)) * **deps:** Pin dependencies ([#6376](https://github.com/grafana/alloy/issues/6376)) ([79323b5](https://github.com/grafana/alloy/commit/79323b5685acda5fc538b3a18ccc1906b14218e2)) * **deps:** Update dependencies for catchpoint, databricks, and snowflake exporters ([#6188](https://github.com/grafana/alloy/issues/6188)) ([c1b740c](https://github.com/grafana/alloy/commit/c1b740cd7fc7d2b521304ee15c9c9f61d0d5ceb0)) * **deps:** Update module go.opentelemetry.io/obi to v0.8.0 [SECURITY] ([#6091](https://github.com/grafana/alloy/issues/6091)) ([05c14af](https://github.com/grafana/alloy/commit/05c14af450000f11a367d5f62fd5e9334a49f160)) * **documentation:** Fix documentation for loki.rules.kubernetes ([#6088](https://github.com/grafana/alloy/issues/6088)) ([61f2b8a](https://github.com/grafana/alloy/commit/61f2b8a09e7705714553662de4dfc7a33a8536bb)) * Enforce Singleton For Running Alloy Extension Instances ([#5763](https://github.com/grafana/alloy/issues/5763)) ([83da6f0](https://github.com/grafana/alloy/commit/83da6f0cd3604a8b4306e5ddecd685db54d38361)) * **faro:** Abort on context cancelation ([#6104](https://github.com/grafana/alloy/issues/6104)) ([bf733a6](https://github.com/grafana/alloy/commit/bf733a6d549b4cd9320a9b19a2940a74fd15dfad)) * Fix bug that caused 'logging' block's 'write_to' to be used after config update even if not set ([#6264](https://github.com/grafana/alloy/issues/6264)) ([cba7243](https://github.com/grafana/alloy/commit/cba72437c9f34ce8658a4bf49dbbea1b1207db3f)) * **graphql:** Update cli flags for consistency ([#6441](https://github.com/grafana/alloy/issues/6441)) ([7749d4f](https://github.com/grafana/alloy/commit/7749d4f3f5f259e0352e029189691f6385d859d0)) * **helm:** Honor alloy.configMap.key in templates/configmap.yaml ([#6312](https://github.com/grafana/alloy/issues/6312)) ([415af2c](https://github.com/grafana/alloy/commit/415af2cb369dea327389c81832a6f7e4e241d2b2)) * **integration-tests:** Forward GO_TAGS to k8s integration tests ([#6220](https://github.com/grafana/alloy/issues/6220)) ([b00f79c](https://github.com/grafana/alloy/commit/b00f79c6f58b54806465685f11f7999d10bad964)) * **logging:** Fix startup deadlock when components log before logging config is evaluated ([#6112](https://github.com/grafana/alloy/issues/6112)) ([6cdce9e](https://github.com/grafana/alloy/commit/6cdce9ed9c225f0e4addef3300e9fb11df6e41b6)) * **loki.process:** Make limit stage shutdown cancelable ([#6215](https://github.com/grafana/alloy/issues/6215)) ([20717b5](https://github.com/grafana/alloy/commit/20717b56d17ac6fe487c4c3f665d2262c2afbde8)) * **loki.process:** New `action_on_duplicate_timestamp` config attribute to fudge identical log timestamps ([#5615](https://github.com/grafana/alloy/issues/5615)) ([7d56f50](https://github.com/grafana/alloy/commit/7d56f50fc860b7c417c8733e58000a7f6c297666)) * **loki.process:** No longer mutate rules in stage.truncate causing every config update to reload pipeline when this stage is used ([#6271](https://github.com/grafana/alloy/issues/6271)) ([b52a4d8](https://github.com/grafana/alloy/commit/b52a4d887b6cbeb06a9cd50426745e6ea4d1c48b)) * **loki.process:** Potential deadlock on update with stage and receiver changes ([#6270](https://github.com/grafana/alloy/issues/6270)) ([cb22e82](https://github.com/grafana/alloy/commit/cb22e82ce74f5727a8d8d0a5b743ff6a0033ba55)) * **loki.process:** Wrap NewPipeline error correctly in match stage ([#6216](https://github.com/grafana/alloy/issues/6216)) ([f3af2dd](https://github.com/grafana/alloy/commit/f3af2ddba71b17707c12529851c0c713746a9754)) * **loki.rules.kubernetes:** Add timeout to ruler sync calls ([26170d4](https://github.com/grafana/alloy/commit/26170d4d8fcb8b03dfda5dbff11fdf307496b96b)) * **loki.source.syslog:** Fix goroutine leak in UDP listener ([#6231](https://github.com/grafana/alloy/issues/6231)) ([268b260](https://github.com/grafana/alloy/commit/268b260fbb0c693fe6efbf275b41379fb000e5a2)) * **loki:** Clone structured metadata so we can perform fan-out correctly ([#6138](https://github.com/grafana/alloy/issues/6138)) ([473244d](https://github.com/grafana/alloy/commit/473244daec6de6a6d29284b4e49bdd0456b338da)) * **oracledb_exporter:** Support CGO_ENABLED=0 cross-compilation ([#6168](https://github.com/grafana/alloy/issues/6168)) ([63ab53d](https://github.com/grafana/alloy/commit/63ab53d8b477a0403ce24dbd759572707bd3fef2)) * **otelcol.exporter.awss3:** Add missing `unique_key_func_name` attribute ([#6184](https://github.com/grafana/alloy/issues/6184)) ([9ad2b44](https://github.com/grafana/alloy/commit/9ad2b4419620e8c4aa69dd63a166af6fb4e4d7ac)) * **prometheus.exporter.oracledb:** Fix issue with custom metrics not appearing when more than one instance of prometheus.exporter.oracledb is used ([#6228](https://github.com/grafana/alloy/issues/6228)) ([57de4f4](https://github.com/grafana/alloy/commit/57de4f4aab2c2cc4602f1c63a8f9989f0ed1143e)) * **prometheus.operator.*:** Pass ScrapeNativeHistograms to ScrapeOptions ([#6356](https://github.com/grafana/alloy/issues/6356)) ([a44fced](https://github.com/grafana/alloy/commit/a44fced4a7cfdeb663c90cec469a3fdf47e73fe6)) * **remotewrite:** Use blocking send with timeout in test server ([#6208](https://github.com/grafana/alloy/issues/6208)) ([a279088](https://github.com/grafana/alloy/commit/a2790882c9df8ca4228491719947912a6c4e97b9)) * **security:** Update module github.com/jackc/pgx/v5 to v5.9.2 [SECURITY] ([#6326](https://github.com/grafana/alloy/issues/6326)) ([bf3ff2e](https://github.com/grafana/alloy/commit/bf3ff2e22273e5ee22031dff7b2495bc7441b868)) * **security:** Update x/crypto and x/net for CVEs ([#6336](https://github.com/grafana/alloy/issues/6336)) ([4c7b93b](https://github.com/grafana/alloy/commit/4c7b93b9fd3c27cd519a1841654b34e1091c856b)) * **ui:** Reduce UI dependencies ([#6349](https://github.com/grafana/alloy/issues/6349)) ([85e12ba](https://github.com/grafana/alloy/commit/85e12ba42faa7331bb03156e2f1873f977bf2dae)) * **ui:** Update dependency minor versions ([#6288](https://github.com/grafana/alloy/issues/6288)) ([52a28d2](https://github.com/grafana/alloy/commit/52a28d2306e0b379436721f7ca2ec98ef32c1d31)) * Update go to v1.26.4 ([#6418](https://github.com/grafana/alloy/issues/6418)) ([51fb7d2](https://github.com/grafana/alloy/commit/51fb7d21eb9c2c328ad60f5ed3aae0c828672cde)) * **validation:** Improve type checking of ast.LiteralExpr ([#5916](https://github.com/grafana/alloy/issues/5916)) ([d0a1177](https://github.com/grafana/alloy/commit/d0a11773cd22ffd32e7c9e06d8f23256c44f0dcf)) ## [1.16.0](https://github.com/grafana/alloy/compare/v1.15.0...v1.16.0) (2026-04-22) ### Features 🌟 * Add clustering for `loki.source.kubernetes_events` ([#6027](https://github.com/grafana/alloy/issues/6027)) ([3dbf587](https://github.com/grafana/alloy/commit/3dbf58784723bf5da23d12bbc99bb5b1378d8bba)) * Add otelcol.auth.google client auth provider ([#5526](https://github.com/grafana/alloy/issues/5526)) ([da99a66](https://github.com/grafana/alloy/commit/da99a66dde2dcf931ee1a07a9a0c401a56d4f510)) * **beyla.ebpf:** Bump to v3.7.0 ([#5966](https://github.com/grafana/alloy/issues/5966)) ([5126c2e](https://github.com/grafana/alloy/commit/5126c2e80d362f738eb0f86f7f4e7ac2256a172a)) * **database_observability:** Add support for GCP Cloud SQL metadata ([#5875](https://github.com/grafana/alloy/issues/5875)) ([5d23245](https://github.com/grafana/alloy/commit/5d232459ad9d49d4ca66ad30f47ef503d3ec8718)) * **database_observability:** Make targets optional ([#5924](https://github.com/grafana/alloy/issues/5924)) ([54664b2](https://github.com/grafana/alloy/commit/54664b207666c7f1e080d5b0f0fd297e5709347e)) * **database_observability:** Update default excluded schemas and users ([#6080](https://github.com/grafana/alloy/issues/6080)) ([b386fff](https://github.com/grafana/alloy/commit/b386fffd713ad495d128c2671726914756802bd9)) * **faro.receiver:** Add sourcemap fetching from remote locations ([#4614](https://github.com/grafana/alloy/issues/4614)) ([b6cb5da](https://github.com/grafana/alloy/commit/b6cb5dac66addea4e43e08c864544e1d069558a6)) * **helm:** Add support for global.image.pullPolicy ([#6069](https://github.com/grafana/alloy/issues/6069)) ([2e2ce72](https://github.com/grafana/alloy/commit/2e2ce72cae99a00eecb9febe0f728de4c1465417)) * **helm:** Allow configuring image pull policy for config reloader ([#5923](https://github.com/grafana/alloy/issues/5923)) ([991539b](https://github.com/grafana/alloy/commit/991539bfc3c7bc0f32377f6eb45c445069a955bf)) * **loki.secretfilter:** Add `label_timed_out` option to mark timed-out log lines ([#5898](https://github.com/grafana/alloy/issues/5898)) ([2ad8834](https://github.com/grafana/alloy/commit/2ad8834551402bfd49cc33e659c4ae1308d09b05)) * **loki.secretfilter:** Add `secrets_redacted_by_category_total` metric combining rule and origin ([#5855](https://github.com/grafana/alloy/issues/5855)) ([053a2f7](https://github.com/grafana/alloy/commit/053a2f736b754fa67e2df718c1efe81e12dd973c)) * **loki.secretfilter:** Change secretfilter to use go-re2 regex library instead of stdlib ([#5909](https://github.com/grafana/alloy/issues/5909)) ([c16a660](https://github.com/grafana/alloy/commit/c16a660b912a948badc4e69de4eeab6edc1b3364)) * **loki.secretfilter:** Remove redundant `secrets_redacted_by_rule_total` and `secrets_redacted_by_origin metrics` ([#5970](https://github.com/grafana/alloy/issues/5970)) ([b16decb](https://github.com/grafana/alloy/commit/b16decb5ba4c6efe0c4aaeb0340c3e315c38bef7)) * Oracle exporter can scrape more than one DB ([#6008](https://github.com/grafana/alloy/issues/6008)) ([6fbad38](https://github.com/grafana/alloy/commit/6fbad386ed9afc99c51af073b8678f2b3321b1d1)) * **prometheus.exporter.cloudwatch:** Upgrade YACE and drop aws-sdk-go v1 support ([#5936](https://github.com/grafana/alloy/issues/5936)) ([f1c036d](https://github.com/grafana/alloy/commit/f1c036da4445a839a3f051bd187eb53fc7dae868)) * **prometheus.exporter.mysql:** Update to mysqld_exporter 0.19.0 ([#5836](https://github.com/grafana/alloy/issues/5836)) ([4f49b57](https://github.com/grafana/alloy/commit/4f49b57829bcbb8f5ecd18daa8b58127743562ba)) * **prometheus.remote_write:** Sync WAL with upstream Prometheus ([#5907](https://github.com/grafana/alloy/issues/5907)) ([e74a91b](https://github.com/grafana/alloy/commit/e74a91b346b5ec4ee0d93b6a82edb9921f6e26e6)) * **pyroscope:** Add support for extra async-profiler CLI arguments ([#5472](https://github.com/grafana/alloy/issues/5472)) ([9251e33](https://github.com/grafana/alloy/commit/9251e33515e953074722c23651cd4bc8f80861e0)) * **pyroscope:** Replace Parca gRPC debuginfo upload with Pyroscope Connect API ([#5891](https://github.com/grafana/alloy/issues/5891)) ([e7ea34a](https://github.com/grafana/alloy/commit/e7ea34adb71870b712d3a0d76fba71a5a56aebee)) * **pyroscope:** Update debuginfo client for HTTP/1.1 upload API ([#6037](https://github.com/grafana/alloy/issues/6037)) ([879d8e5](https://github.com/grafana/alloy/commit/879d8e508d3e617b3dd4eff666a4c2046a00cbcd)) ### Bug Fixes 🐛 * Change service stop command from 'sc' to 'net' ([#5906](https://github.com/grafana/alloy/issues/5906)) ([450973d](https://github.com/grafana/alloy/commit/450973d22b8174ed697f96b0bdef2ba104f098e6)) * **database_observability.mysql:** Refactor explain plan loop batch size ([#5894](https://github.com/grafana/alloy/issues/5894)) ([f0fcd6b](https://github.com/grafana/alloy/commit/f0fcd6ba364e04df3712c2408d81b6986e8f0840)) * **database_observability.postgres:** Cleanup embedded exporter collectors on reconnection ([#6079](https://github.com/grafana/alloy/issues/6079)) ([f30d9ae](https://github.com/grafana/alloy/commit/f30d9ae51c78e9a18eedde8bd0a122d5bca48ad6)) * **database_observability.postgres:** Fix EXPLAIN param count when placeholders repeat ([#6082](https://github.com/grafana/alloy/issues/6082)) ([b612b81](https://github.com/grafana/alloy/commit/b612b811bd8a07702dc77111a412d403711e0a2f)) * **database_observability:** Drop `schema_detection` from logs ([#6076](https://github.com/grafana/alloy/issues/6076)) ([b0105cb](https://github.com/grafana/alloy/commit/b0105cba30f219cf2ad32e107ef2d44d09e970b4)) * **database_observability:** Ensure connection_info_monitor goroutine exits on Stop ([#5874](https://github.com/grafana/alloy/issues/5874)) ([1e3334b](https://github.com/grafana/alloy/commit/1e3334bca541fe3e77521f3203c95a0b4b4a26ff)) * **deps:** Update module github.com/aws/aws-sdk-go-v2/service/s3 to v1.97.3 [SECURITY] ([#6004](https://github.com/grafana/alloy/issues/6004)) ([38f4346](https://github.com/grafana/alloy/commit/38f43467eaced756ee6556767426a36d2624b1de)) * **deps:** Update module github.com/go-git/go-git/v5 to v5.17.1 [SECURITY] ([#5934](https://github.com/grafana/alloy/issues/5934)) ([a5154af](https://github.com/grafana/alloy/commit/a5154af3dfc1ed58af087b34778fdbd135a51397)) * **deps:** Update module github.com/go-git/go-git/v5 to v5.18.0 [SECURITY] ([#6090](https://github.com/grafana/alloy/issues/6090)) ([0e59d64](https://github.com/grafana/alloy/commit/0e59d6438c60c64b705e5f5192e0d53dc2c80cd9)) * **deps:** Update module github.com/nwaples/rardecode/v2 to v2.2.0 [SECURITY] ([b44d51a](https://github.com/grafana/alloy/commit/b44d51ae1d282ee999498867e4590f39cf19c0ff)) * **deps:** Update module go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp to v1.43.0 [SECURITY] ([#6016](https://github.com/grafana/alloy/issues/6016)) ([d92c5c0](https://github.com/grafana/alloy/commit/d92c5c07ac137784967bb1d03816a0c111901293)) * **deps:** Update module go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp to v1.43.0 [SECURITY] ([#6017](https://github.com/grafana/alloy/issues/6017)) ([e655bbc](https://github.com/grafana/alloy/commit/e655bbc93ef51150d3cbcdc4ba13748ba9818f1a)) * **deps:** Update module go.opentelemetry.io/otel/sdk to v1.43.0 [SECURITY] ([#6018](https://github.com/grafana/alloy/issues/6018)) ([94006e8](https://github.com/grafana/alloy/commit/94006e8b117a3e2e86649465082a9eec4473b9a3)) * **deps:** Update some minor go dep versions ([#5896](https://github.com/grafana/alloy/issues/5896)) ([4ddd0ed](https://github.com/grafana/alloy/commit/4ddd0ed7b672515ed2f5b5a502fdce5630617a69)) * **go:** Update alloy builder image to Go 1.25.9 ([#6012](https://github.com/grafana/alloy/issues/6012)) ([d2ae8b8](https://github.com/grafana/alloy/commit/d2ae8b82e5d751a9c6a6055af01aed0ea2339b2a)) * **go:** Upgrade to Go 1.25.9 ([#6019](https://github.com/grafana/alloy/issues/6019)) ([d777ed1](https://github.com/grafana/alloy/commit/d777ed157c4d8df15c4298dbc7f7b6ab05a94975)) * **Helm:** RBAC template handles empty rule arrays ([#4860](https://github.com/grafana/alloy/issues/4860)) ([c9430e9](https://github.com/grafana/alloy/commit/c9430e9208b4b4390afbae15efe4314388518d12)) * **loki.process:** Eliminate per-stream goroutines in multiline stage ([#6036](https://github.com/grafana/alloy/issues/6036)) ([c089e2e](https://github.com/grafana/alloy/commit/c089e2ed73ae82888aa9b51df0f10555da3c6e15)) * **loki.process:** Prevent stage.structured_metadata from adding the same metadata several times ([#5965](https://github.com/grafana/alloy/issues/5965)) ([0ec8a26](https://github.com/grafana/alloy/commit/0ec8a26665b243c901925a139b3718c0825592dc)) * **loki.process:** Wrap template in a custom type and move validation to syntax.Validator ([#5910](https://github.com/grafana/alloy/issues/5910)) ([700dd7d](https://github.com/grafana/alloy/commit/700dd7d0f164f96293bbbb961f18587a2cc33a64)) * **prometheus.exporter.postgres:** Close DB connections on update ([#6021](https://github.com/grafana/alloy/issues/6021)) ([8da97cf](https://github.com/grafana/alloy/commit/8da97cf6732861f08c9047867f692dc5c7be8a8e)) * **prometheus.scrape:** Update scrape_native_histograms to be updated at runtime ([#6087](https://github.com/grafana/alloy/issues/6087)) ([18b205c](https://github.com/grafana/alloy/commit/18b205cf5ef3eed1fb5c513362a7ec347c0e6c67)) * **pyroscope.ebpf:** Fix deadlock on LRU eviction in irsymcache ([#5911](https://github.com/grafana/alloy/issues/5911)) ([03ca563](https://github.com/grafana/alloy/commit/03ca563b654eda057a9bcc70f18141ca13ba56eb)) * **pyroscope.ebpf:** Move Pyroscope ebpf metrics registration after component error handling ([#5540](https://github.com/grafana/alloy/issues/5540)) ([a3c57c0](https://github.com/grafana/alloy/commit/a3c57c0e5f6df99f21150c72af54db9177904c0b)) * **pyroscope:** Set user agent on debuginfo connect-go client ([#6022](https://github.com/grafana/alloy/issues/6022)) ([38ad1ef](https://github.com/grafana/alloy/commit/38ad1ef1823efd08836d681b79e4c1e971c6584b)) * **ui:** Large arguments are downloaded as files instead of rendered ([#5268](https://github.com/grafana/alloy/issues/5268)) ([26c67b3](https://github.com/grafana/alloy/commit/26c67b33ef830ce4aafa8fec46749a1caaa873c3)) * Update go-m1cpu v0.1.7 -> v0.2.1 to fix M5 chip crash ([#6034](https://github.com/grafana/alloy/issues/6034)) ([7fa0cbc](https://github.com/grafana/alloy/commit/7fa0cbce40c5d09cec5f6b45a10de823ec0c9732)) * **windows-installer:** Increase service restart on failure delays ([#5969](https://github.com/grafana/alloy/issues/5969)) ([add15b1](https://github.com/grafana/alloy/commit/add15b1aa026658d96de74ca6281c45027d09933)) ## [1.15.0](https://github.com/grafana/alloy/compare/v1.14.0...v1.15.0) (2026-03-26) ### ⚠ BREAKING CHANGES * **otelcol:** Upgrade to OTel Collector v0.147.0 ([#5784](https://github.com/grafana/alloy/issues/5784)) * Renamed undocumented metrics that was previously prefixed with _ to loki_source_awsfirehose_ ### Features 🌟 * **alloy-mixin:** Add filters, groupBy, and multi-select dashboard variables ([#5611](https://github.com/grafana/alloy/issues/5611)) ([3ef714e](https://github.com/grafana/alloy/commit/3ef714ea192ccba5c1536be727d81e02d4a425c1)) * **beyla.ebpf:** Add support for Prometheus native histograms ([#5812](https://github.com/grafana/alloy/issues/5812)) ([7d806fb](https://github.com/grafana/alloy/commit/7d806fbf5a2b83b42d603e61fc917ddd5a4d272f)) * **beyla.ebpf:** Bump Beyla to v3.6 ([#5833](https://github.com/grafana/alloy/issues/5833)) ([cd878d5](https://github.com/grafana/alloy/commit/cd878d590abe132d32d14f3b9cb5fb7f29801c7f)) * **converters:** Support converting Promtail limits_config ([#5777](https://github.com/grafana/alloy/issues/5777)) ([9491385](https://github.com/grafana/alloy/commit/9491385d8f695079e42aa0dd752946037b34f531)) * **database_observability.mysql:** Add filtering of query samples and wait events by minimum duration ([#5678](https://github.com/grafana/alloy/issues/5678)) ([5a4d03b](https://github.com/grafana/alloy/commit/5a4d03b0b3afe82bcab40ba9e50b212800c32ea1)) * **database_observability.mysql:** Embed prometheus exporter within db-o11y component ([#5711](https://github.com/grafana/alloy/issues/5711)) ([88bffb0](https://github.com/grafana/alloy/commit/88bffb0dd71d2e4bd5068048856604b6ba560f56)) * **database_observability.postgres:** Add configurable limit to `pg_stat_statements` query ([#5639](https://github.com/grafana/alloy/issues/5639)) ([0de0a3f](https://github.com/grafana/alloy/commit/0de0a3f1a76c109f62921fa5b795c5f218e59cb6)) * **database_observability.postgres:** Embed prometheus exporter within db-o11y component ([#5714](https://github.com/grafana/alloy/issues/5714)) ([9dc2e83](https://github.com/grafana/alloy/commit/9dc2e834eb8cba7a13f014f65bd545d25722fbec)) * **database_observability:** Add scaffolding for db-o11y integration tests ([#5575](https://github.com/grafana/alloy/issues/5575)) ([ca637d8](https://github.com/grafana/alloy/commit/ca637d8594eefa11abf0323609a09972c03b589d)) * **database_observability:** Promote components to stable ([#5736](https://github.com/grafana/alloy/issues/5736)) ([21a9af6](https://github.com/grafana/alloy/commit/21a9af67b1ccd9c2f3cda6c1a2ff8edfe5127445)) * Expose Functionality to Handle syslogs with Empty MSG Field ([#5687](https://github.com/grafana/alloy/issues/5687)) ([178b1e6](https://github.com/grafana/alloy/commit/178b1e642eb5da666ccc1c4d79dd78aa1a526573)) * **helm:** Allow setting `revisionHistoryLimit` in the helm chart ([#5847](https://github.com/grafana/alloy/issues/5847)) ([9713ad4](https://github.com/grafana/alloy/commit/9713ad4314e28b6bed4bbcee9cef5357dc58d4f4)) * **loki.process:** Support structured metadata as source type of stage.labels for loki.process ([#5055](https://github.com/grafana/alloy/issues/5055)) ([eda3152](https://github.com/grafana/alloy/commit/eda315237843048856706ffbd5a3c0c278f71683)) * **loki.secretfilter:** Add sampling for secretfilter entries ([#5663](https://github.com/grafana/alloy/issues/5663)) ([9997802](https://github.com/grafana/alloy/commit/9997802c5b6f2570834cf29d814a02320d02ac8b)) * **loki.source.gcplog:** Add alloy config for MaxOutstandingBytes and MaxOutstandingMessages ([#5760](https://github.com/grafana/alloy/issues/5760)) ([c2b9f0b](https://github.com/grafana/alloy/commit/c2b9f0b5fc6287b4abb61df7f64102c28c06aaad)) * **loki.write:** Add loki pipeline latency metric ([#5702](https://github.com/grafana/alloy/issues/5702)) ([cc744a1](https://github.com/grafana/alloy/commit/cc744a1f5abbd54f8a3a0680ca23161247a9bf8b)) * **mixin:** Update loki dashboard ([#5848](https://github.com/grafana/alloy/issues/5848)) ([b616d58](https://github.com/grafana/alloy/commit/b616d585605af017cabb5f1a65124ad4736a63a7)) * **otelcol.receiver.datadog:** Expose intake proxy and trace_id_cache_size settings ([#5776](https://github.com/grafana/alloy/issues/5776)) ([0384ad4](https://github.com/grafana/alloy/commit/0384ad4bde5ee641e75ec3d27809e4929c4ecdf8)) * **otelcol:** Upgrade to OTel Collector v0.147.0 ([#5784](https://github.com/grafana/alloy/issues/5784)) ([a9b5396](https://github.com/grafana/alloy/commit/a9b5396142bb84e97854296d093d1625c20d4410)) * **prometheus.exporter.cloudwatch:** Use aws-sdk-go-v2 by default ([#5768](https://github.com/grafana/alloy/issues/5768)) ([a2f3489](https://github.com/grafana/alloy/commit/a2f34892f52f3a0cfddb3a48f82e5770b77951ba)) * **pyroscope.ebpf:** Add comm, pid labels and kernel frame options ([#5769](https://github.com/grafana/alloy/issues/5769)) ([4fa7068](https://github.com/grafana/alloy/commit/4fa706876d43684d686f35e05e942f04e0bb3ad8)) * **pyroscope.ebpf:** Expose OTel eBPF profiler internal metrics to Prometheus ([#5774](https://github.com/grafana/alloy/issues/5774)) ([e713392](https://github.com/grafana/alloy/commit/e71339232b1d0b28fdd11a2b15c2a2ceb93aafc3)) * **pyroscope:** Copy prometheus common/config HTTP client into promhttp2 package ([#5810](https://github.com/grafana/alloy/issues/5810)) ([0b31aaa](https://github.com/grafana/alloy/commit/0b31aaa01c31f83e9a0146cbd1d3aa9fa21b92b7)) ### Bug Fixes 🐛 * **beyla:** Inject Beyla version into binary via ldflags ([#5735](https://github.com/grafana/alloy/issues/5735)) ([71c03ec](https://github.com/grafana/alloy/commit/71c03ec65f2c41d24f8d54a4c3c2673b48f6e347)) * Correctly handle the deprecated topic field in otelcol.receiver.kafka configuration ([#5726](https://github.com/grafana/alloy/issues/5726)) ([538ac75](https://github.com/grafana/alloy/commit/538ac7507e54b046fae46eded742b4d65f4c5e30)) * **database_observability.mysql:** Ensure result sets are properly closed ([#5893](https://github.com/grafana/alloy/issues/5893)) ([f28f91c](https://github.com/grafana/alloy/commit/f28f91c33dccfd419e10544b4dd0457696841f54)) * **database_observability:** Ensure all collectors are properly stopped ([#5796](https://github.com/grafana/alloy/issues/5796)) ([6bfa2a7](https://github.com/grafana/alloy/commit/6bfa2a7227db525fb6cfd48d55648304a76bbbc2)) * **database_observability:** Ensure that `connection_info` metric is only emitted for a given DB instance when it is available ([#5707](https://github.com/grafana/alloy/issues/5707)) ([bf0c3dc](https://github.com/grafana/alloy/commit/bf0c3dce4c80e5d870635e656a79c42449351914)) * **database_observability:** Solve test flakiness in MySQL and Postgres sample collectors ([#5130](https://github.com/grafana/alloy/issues/5130)) ([a7590d1](https://github.com/grafana/alloy/commit/a7590d1376f64119ce9c75f318d5b120d199bb0e)) * **deps:** Update module github.com/buger/jsonparser to v1.1.2 [SECURITY] ([#5834](https://github.com/grafana/alloy/issues/5834)) ([b2fee8a](https://github.com/grafana/alloy/commit/b2fee8a8a40bf3259e1b9f35ac4c89d40cef92cb)) * **deps:** Update module github.com/buger/jsonparser to v1.1.2 [SECURITY] ([#5870](https://github.com/grafana/alloy/issues/5870)) ([698b4e7](https://github.com/grafana/alloy/commit/698b4e7688b1dd3206b158efd1b4ad7006e99b82)) * **deps:** Update module google.golang.org/grpc to v1.79.3 [SECURITY] ([#5825](https://github.com/grafana/alloy/issues/5825)) ([5cfbcc4](https://github.com/grafana/alloy/commit/5cfbcc430600dba25a65edc255eec8345b72e923)) * **deps:** Update module google.golang.org/grpc to v1.79.3 [SECURITY] ([#5871](https://github.com/grafana/alloy/issues/5871)) ([259152d](https://github.com/grafana/alloy/commit/259152dbbffdd9e18b4760a6c4f66b569e67d5c3)) * **deps:** Update npm dependencies ([#5876](https://github.com/grafana/alloy/issues/5876)) ([f0f6a11](https://github.com/grafana/alloy/commit/f0f6a11b9455eda8c4a344d17455eceebc5a2613)) * **deps:** Update npm deps across repo to address CVE-2026-26996 and CVE-2026-22029 ([#5872](https://github.com/grafana/alloy/issues/5872)) ([df518dd](https://github.com/grafana/alloy/commit/df518dd738ec9354c37c99bba6a434efbd5e4562)) * **go:** Update build image to go v1.25.8 ([#5832](https://github.com/grafana/alloy/issues/5832)) ([f9b3043](https://github.com/grafana/alloy/commit/f9b304387fb76167d96f8cb8f719502e6c15bb7d)) * **go:** Update go to 1.25.8 ([#5844](https://github.com/grafana/alloy/issues/5844)) ([534e7db](https://github.com/grafana/alloy/commit/534e7db016849392b44be851f23cd74f3ae59dcb)) * Helm: alloy.extraPorts not working with service.type=NodePort [COPY] ([#5892](https://github.com/grafana/alloy/issues/5892)) ([162c6f7](https://github.com/grafana/alloy/commit/162c6f711b2cc34b312ce9f6241da43805e7921f)) * **loki.enrich:** Use shared loki functions and fix locking ([#5821](https://github.com/grafana/alloy/issues/5821)) ([f916c72](https://github.com/grafana/alloy/commit/f916c72a18eac0df7985c7d1ad9f88b8bce1ec4a)) * **loki.process:** Multiline no longer pass empty entry if start was flushed ([#5746](https://github.com/grafana/alloy/issues/5746)) ([7bdedf1](https://github.com/grafana/alloy/commit/7bdedf1af98a125f1c6ec4f6375c4f8b1de6e72d)) * **loki.process:** Protect against json that does not look like docker json format ([#5761](https://github.com/grafana/alloy/issues/5761)) ([0af6eaa](https://github.com/grafana/alloy/commit/0af6eaa238e6967b190c46666a4e21dc39076ff8)) * **loki.secretfilter:** Fix bug where entries were being shadow dropped ([#5786](https://github.com/grafana/alloy/issues/5786)) ([90243f9](https://github.com/grafana/alloy/commit/90243f9a9e30e847d11c8b755d8a09990cb76d6d)) * **loki.source.file:** Fix position tracking when component stops ([#5800](https://github.com/grafana/alloy/issues/5800)) ([9762946](https://github.com/grafana/alloy/commit/9762946bb836a166c4815c15a33dc53131993ed8)) * **loki.source.file:** Keep positions for compressed files when reading is finished ([#5723](https://github.com/grafana/alloy/issues/5723)) ([fb41d0a](https://github.com/grafana/alloy/commit/fb41d0aedc14284533d4579a2715838b01f7e754)) * **loki.source.gcplog:** Update to pubsub v2 and fix shutdown semantics ([#5713](https://github.com/grafana/alloy/issues/5713)) ([e9d9b69](https://github.com/grafana/alloy/commit/e9d9b69b223ae5dbfa73b45485f145edbdd1a66a)) * **loki.source.heroku:** Fix shutdown semantics and consume logs in batches ([#5804](https://github.com/grafana/alloy/issues/5804)) ([deda452](https://github.com/grafana/alloy/commit/deda4520fe29acaae5ad4f4a376753774b621875)) * **loki.write:** Remove noisy log ([#5837](https://github.com/grafana/alloy/issues/5837)) ([8e28f35](https://github.com/grafana/alloy/commit/8e28f353e220c619b9fa5eb2a713a031cbd4a274)) * **loki:** Make drain forward entries with fallback timeout ([#5830](https://github.com/grafana/alloy/issues/5830)) ([cfbca90](https://github.com/grafana/alloy/commit/cfbca9003399be738d68e7e71513550e3f962bd0)) * **prometheus.scrape:** Update arguments and targets even if `scrape_native_histograms` and `extra_metrics` are updated ([#5787](https://github.com/grafana/alloy/issues/5787)) ([dc4cb0a](https://github.com/grafana/alloy/commit/dc4cb0a64aa4cbe576d897c9dcb67c4d71acbf80)) * **pyroscope.ebpf:** Update opentelemetry-ebpf-profiler ([#5904](https://github.com/grafana/alloy/issues/5904)) ([dfaec47](https://github.com/grafana/alloy/commit/dfaec47c4ca2d035b34e9aeb0d28da3d2b380789)) * Stop components in a deterministic order ([#5613](https://github.com/grafana/alloy/issues/5613)) ([00cd371](https://github.com/grafana/alloy/commit/00cd371e3a896093578ca23cdb71e55412f564d4)) ### Chores * Use shared source structures for aws firehose ([#5739](https://github.com/grafana/alloy/issues/5739)) ([aef19dc](https://github.com/grafana/alloy/commit/aef19dccc245d6f92acd7228023117485c349070)) ## [1.14.0](https://github.com/grafana/alloy/compare/v1.13.0...v1.14.0) (2026-03-06) ### ⚠ BREAKING CHANGES * **loki.secretfilter:** Some config options are removed entirely: - `partial_mask` (replaced with `redact_percent`) - `allowlist` (now controlled with custom gitleaks config) - `enable_entropy` - `include_generic` (now controlled with custom gitleaks config) - `types` (now controlled with custom gitleaks config) * **otelcol.receiver.prometheus:** `otelcol.receiver.prometheus` no longer sets start times of OTLP metrics. Grafana Cloud and Mimir do not currently use OTLP metric start times. If you do want your metrics to have them, you can use `otelcol.processor.metric_start_time` with `strategy` set to `true_reset_point` to get the same behaviour. ### Features 🌟 * Add automatic reconnection to database_observability components ([#5444](https://github.com/grafana/alloy/issues/5444)) ([553f967](https://github.com/grafana/alloy/commit/553f9678c42abf63200cf0618a1e023eeebf0802)) * Add limited type checking for validate command ([#5076](https://github.com/grafana/alloy/issues/5076)) ([045fb76](https://github.com/grafana/alloy/commit/045fb76d8cc4098611fbeafff68c29f7645a7e84)) * **database_observability.mysql:** Collect client info for query samples ([#5552](https://github.com/grafana/alloy/issues/5552)) ([257a699](https://github.com/grafana/alloy/commit/257a699984b42ae39a4edf00ce83899cce3aec88)) * **database_observability.postgres:** Add exclude databases/users for `logs` collector ([#5569](https://github.com/grafana/alloy/issues/5569)) ([5dddd9b](https://github.com/grafana/alloy/commit/5dddd9b793bd673085c8a0b308c866a4123a8fc2)) * **database_observability.postgres:** Add logs collector ([#5445](https://github.com/grafana/alloy/issues/5445)) ([46d79d4](https://github.com/grafana/alloy/commit/46d79d44e41858ceb2f1d219794f4ba234f048b8)) * **database_observability.postgres:** Allow excluding queries ran by specific users ([#5544](https://github.com/grafana/alloy/issues/5544)) ([2d0ca15](https://github.com/grafana/alloy/commit/2d0ca15624f8dc20389a5b5515bf56589623f504)) * Deprecate prometheus.write.queue ([#5509](https://github.com/grafana/alloy/issues/5509)) ([ee0f227](https://github.com/grafana/alloy/commit/ee0f227bc5b1363de9699e65de7d6ae3fe8e33a9)) * Introduce SeriesRefMappingStore ([#5522](https://github.com/grafana/alloy/issues/5522)) ([33ee297](https://github.com/grafana/alloy/commit/33ee297fbd7a9b5380f98eaa0a83c9d05a718a9d)) * **local.file_match, loki.source.file:** Match multiple files using doublestar `{...}` expressions ([#5470](https://github.com/grafana/alloy/issues/5470)) ([284e48f](https://github.com/grafana/alloy/commit/284e48fa72bc8d7626e225a26e23281e6e941c8e)) * **loki.process:** Add debug metrics for CRI stage to track truncation of lines and partial line flushing ([#5399](https://github.com/grafana/alloy/issues/5399)) ([a1728f6](https://github.com/grafana/alloy/commit/a1728f642d5679e2223fce96fa4a979fd4851ae5)) * **mixin:** Add OTel Engine Overview dashboard ([#5573](https://github.com/grafana/alloy/issues/5573)) ([df52116](https://github.com/grafana/alloy/commit/df5211648c1f1c7cb5cbaf19f0b09152f7916091)) * **mixin:** Add zipped dashboards as a release artifact ([#5603](https://github.com/grafana/alloy/issues/5603)) ([4f7fe85](https://github.com/grafana/alloy/commit/4f7fe85ec6859cc07725a7aa1b0e9918d8a23985)) * **otel:** Add receivers used in the otel k8s helm chart presets ([#5466](https://github.com/grafana/alloy/issues/5466)) ([100f6ea](https://github.com/grafana/alloy/commit/100f6ea49056688ac93c9e82d0bcb74771bea95b)) * **otelcol.receiver.prometheus:** Remove requirement to run Alloy with `--stability.level=experimental` in order to translate Prometheus native histograms into OTLP exponential histograms. ([#5308](https://github.com/grafana/alloy/issues/5308)) ([237e985](https://github.com/grafana/alloy/commit/237e985451f2a89b779c0c2f24ad9fe3c611b98e)) * **otelcol:** Expose missing tail_sampling drop and bytes_limiting ([6021154](https://github.com/grafana/alloy/commit/6021154d159d186e45917aa03299158939d36333)) * **prometheus.exporter.postgres:** Update to version `0.19.0` and expose new collectors settings ([#4640](https://github.com/grafana/alloy/issues/4640)) ([aa01e45](https://github.com/grafana/alloy/commit/aa01e453ab1d9924192a7739ff3a0ac72f5b0b10)) * **prometheus.exporter.postgres:** Update to version 0.19.1 ([#5659](https://github.com/grafana/alloy/issues/5659)) ([9f4e88f](https://github.com/grafana/alloy/commit/9f4e88f6b810d60cd18872250e3d7806e85b8aad)) * Update github exporter with github app authentication ([#5377](https://github.com/grafana/alloy/issues/5377)) ([ca741a6](https://github.com/grafana/alloy/commit/ca741a61b294ef89d2ab24e88fb2dd51065186a5)) * Update grafana cadvisor fork to v0.54.1 ([#5447](https://github.com/grafana/alloy/issues/5447)) ([2a3aba0](https://github.com/grafana/alloy/commit/2a3aba0184b92c206400ef6b23d2f8f0878ef441)) * Upgrade prometheus to version 0.309.1 ([#5479](https://github.com/grafana/alloy/issues/5479)) ([633944b](https://github.com/grafana/alloy/commit/633944b76e9ad2eef7204d3047adb063a23b7570)) ### Bug Fixes 🐛 * Add /FORCEREGISTRY flag to windows installer ([#5517](https://github.com/grafana/alloy/issues/5517)) ([6b22d4e](https://github.com/grafana/alloy/commit/6b22d4e7b86b4ad5f98546b4e50064452defa9ef)) * Add missing otelcol alias to make OTel Engine work with OTel Collector helm chart ([#5473](https://github.com/grafana/alloy/issues/5473)) ([90478cd](https://github.com/grafana/alloy/commit/90478cdeb12f0c6d20d72b34b95fec4ae64fbf6a)) * **controller:** Prevent duplicate loaders from being created ([#5446](https://github.com/grafana/alloy/issues/5446)) ([31d5eea](https://github.com/grafana/alloy/commit/31d5eea269b5a9c5ac1c789856cb6d247962e75a)) * **database_observability.mysql:** Skip wait events with `NULL` timer_wait ([#5478](https://github.com/grafana/alloy/issues/5478)) ([48750e5](https://github.com/grafana/alloy/commit/48750e5848b5bcae2f87807ffd02b46249c0aebc)) * **database_observability.postgres:** Correctly handle table name casing when parsing postgres queries ([#5440](https://github.com/grafana/alloy/issues/5440)) ([7cca2b9](https://github.com/grafana/alloy/commit/7cca2b93037a4f8f15fb64ac43bde2a4f79fa5cd)) * **deps:** Update module github.com/go-git/go-git/v5 to v5.16.5 [SECURITY] ([#5485](https://github.com/grafana/alloy/issues/5485)) ([71a1b8b](https://github.com/grafana/alloy/commit/71a1b8ba28d59ca2ff01fef5d44cffb4f054c66d)) * Ensure Valid/Clear States in Alloy Engine Extension ([#5551](https://github.com/grafana/alloy/issues/5551)) ([99ad024](https://github.com/grafana/alloy/commit/99ad0242853f6cce1c1439f341e141a77b760dc1)) * Expose missing `otelcol.processor.tail_sampling` options ([#5606](https://github.com/grafana/alloy/issues/5606)) ([6021154](https://github.com/grafana/alloy/commit/6021154d159d186e45917aa03299158939d36333)) * **loki.process:** Registration of stage.metric when used inside stage.match ([#5460](https://github.com/grafana/alloy/issues/5460)) ([81caf72](https://github.com/grafana/alloy/commit/81caf72c3d9b3d62c5874aed59e3288a90689021)) * **loki.source.docker:** Parse timestamp correctly when log line only contains newline ([#5489](https://github.com/grafana/alloy/issues/5489)) ([162011d](https://github.com/grafana/alloy/commit/162011dbaf1fa06932d4c435f913271a571e2008)) * **loki.source.file:** Close file if we cannot find encoding ([#5528](https://github.com/grafana/alloy/issues/5528)) ([56bcb26](https://github.com/grafana/alloy/commit/56bcb2664c0c7f21523a985ba664a2fe2014a2e7)) * **mixin:** Support OTel exporter batching ([#5618](https://github.com/grafana/alloy/issues/5618)) ([f2b7cb8](https://github.com/grafana/alloy/commit/f2b7cb8f7285cf4cb4777c0acd2b653483efe2d6)) * **prometheus.echo:** Return zero for SeriesRef ([#5622](https://github.com/grafana/alloy/issues/5622)) ([31a8680](https://github.com/grafana/alloy/commit/31a86805cd1f0154edc96545ecc60ba5a13cdcb3)) * **prometheus.exporter.cloudwatch:** Respect debug flag ([#5469](https://github.com/grafana/alloy/issues/5469)) ([44ade00](https://github.com/grafana/alloy/commit/44ade003e16de4559609ad7379dd85dfbf8df3be)) * **prometheus.receive_http:** Bump prometheus patch for bugfix ([#5505](https://github.com/grafana/alloy/issues/5505)) ([b7a1d05](https://github.com/grafana/alloy/commit/b7a1d056cc2213e89484f8bcacca0409e11264e6)) * **prometheus.remote_write:** Fix sent_batch_duration_seconds measuring before the request was sent [backport] ([#5698](https://github.com/grafana/alloy/issues/5698)) ([150aecb](https://github.com/grafana/alloy/commit/150aecb11e8a1072c56c55330bf315335949f4e3)) * Use read-write mutex locks to prevent concurrent tagsCache map reads and writes ([#5534](https://github.com/grafana/alloy/issues/5534)) ([8efed2e](https://github.com/grafana/alloy/commit/8efed2e6a21dc9680b32da2d11b8ee8776c4a3db)) ### Performance * **loki.secretfilter:** Change secretfilter implementation to use Gitleaks ([#5503](https://github.com/grafana/alloy/issues/5503)) ([08e265c](https://github.com/grafana/alloy/commit/08e265cca7fa6a37cb1a3938ebbdec48ba73e0b6)) ## [1.13.2](https://github.com/grafana/alloy/compare/v1.13.1...v1.13.2) (2026-02-23) ### Bug Fixes 🐛 * Expose missing `otelcol.processor.tail_sampling` options [backport] ([#5614](https://github.com/grafana/alloy/issues/5614)) ([3225ea3](https://github.com/grafana/alloy/commit/3225ea38da1cbf31f065cc5da0b1ee0645eefa15)) * **mixin:** Add zipped dashboards as a release artifact [backport] ([#5625](https://github.com/grafana/alloy/issues/5625)) ([37ff20f](https://github.com/grafana/alloy/commit/37ff20fd3074869adc57420d7f88a6c9386898d6)) * **profiler:** Backport Go 1.26 gopclntab textStart fix ([#5572](https://github.com/grafana/alloy/issues/5572)) ([5ca05c9](https://github.com/grafana/alloy/commit/5ca05c9d69ebb3ef3b4f9cfce5585a90e4d4432c)) * **prometheus.exporter.postgres:** Update version of the exporter fork to fix pg_settings ([#5574](https://github.com/grafana/alloy/issues/5574)) ([62a52f8](https://github.com/grafana/alloy/commit/62a52f8537cd15c9cf1a329c4c35f32f86316740)) * **pyroscope.ebpf:** Backport dotnet nibble map fix ([#5553](https://github.com/grafana/alloy/issues/5553)) ([6c62760](https://github.com/grafana/alloy/commit/6c62760e6121b1f2c6c75276f7ee6f7f7055bd5e)) ## [1.13.1](https://github.com/grafana/alloy/compare/v1.13.0...v1.13.1) (2026-02-13) ### Bug Fixes 🐛 * **database_observability.mysql:** Make query sample text nullable in MySQL query details collector [backport] ([#5519](https://github.com/grafana/alloy/issues/5519)) ([fc49bfe](https://github.com/grafana/alloy/commit/fc49bfe172aaed8a9ef5ee8bce7e639e59f432fb)) * **database_observability.mysql:** Skip wait events with `NULL` timer_wait [backport] ([#5521](https://github.com/grafana/alloy/issues/5521)) ([2f43c91](https://github.com/grafana/alloy/commit/2f43c9123ef8ad75af72bd7c85dc3d08b4034ed1)) * **database_observability.postgres:** Improvements to SET search_path for postgres explain plans [backport] ([#5520](https://github.com/grafana/alloy/issues/5520)) ([ecbb577](https://github.com/grafana/alloy/commit/ecbb577fce3ca5061294aae74406e98f5f2a464a)) * **loki.process:** Registration of stage.metric when used inside stage.match [backport] ([#5495](https://github.com/grafana/alloy/issues/5495)) ([2bbc37e](https://github.com/grafana/alloy/commit/2bbc37e1c810d4c6c5655ec4204ff7e30a703d05)) * **loki.source.docker:** Parse timestamp correctly when log line only contains newline [backport] ([#5496](https://github.com/grafana/alloy/issues/5496)) ([55a82f0](https://github.com/grafana/alloy/commit/55a82f0f634f57bbd5634e486afe276d8c176e51)) * **loki.source.file:** Close file if we cannot find encoding [backport] ([#5531](https://github.com/grafana/alloy/issues/5531)) ([ccda4a5](https://github.com/grafana/alloy/commit/ccda4a50c38e230b2ed9caff718a8487da2b3f73)) * **prometheus.receive_http:** Bump prometheus patch for bugfix [backport] ([#5516](https://github.com/grafana/alloy/issues/5516)) ([b3531fb](https://github.com/grafana/alloy/commit/b3531fb8730256eac7f34c877fa6cf73c5a8a60b)) * **scheduling:** Shutdown runnables with a timeout before starting new ones [backport] ([#5443](https://github.com/grafana/alloy/issues/5443)) ([d446610](https://github.com/grafana/alloy/commit/d44661062d11711e9dae216fa98aaad61f027c30)) ## [1.13.0](https://github.com/grafana/alloy/compare/v1.12.1...v1.13.0) (2026-02-05) ### ⚠ BREAKING CHANGES * **otelcol:** Upgrade to OTel Collector v0.142.0 * **otelcol.receiver.kafka:** The global `topic` attribute has been deleted; use the `topics` attributes inside the `logs`, `metrics`, and `traces` blocks instead. * `otelcol.exporter` > `sending_queue` > `batch` > `min_size` changed from `8192` to `2000` and `max_size` changed from `0` to `3000` ### Features 🌟 * Add a `virtual_node_peer_attributes` and `virtual_node_extra_label` arguments to `otelcol.connector.servicegraph` ([#5058](https://github.com/grafana/alloy/issues/5058)) ([20900c6](https://github.com/grafana/alloy/commit/20900c6cc1c60800b60313c68c6a81834c4adab3)) * Add an `otelcol.processor.metric_start_time` component ([#5342](https://github.com/grafana/alloy/issues/5342)) ([3fb13ac](https://github.com/grafana/alloy/commit/3fb13ac2809176a043e6021d938479300ba69e77)) * Add job level `period`, `length`, and `add_cloudwatch_timestamp` options and labels_snake_case to CW exporter [backport] ([#5355](https://github.com/grafana/alloy/issues/5355)) ([60d73b7](https://github.com/grafana/alloy/commit/60d73b7813f2fe1e3c9b2e57e4a84d3be5f310c4)) * Add missing configuration parameter `deployment_name_from_replicaset` to k8sattributes processor ([#5183](https://github.com/grafana/alloy/issues/5183)) ([b54ca77](https://github.com/grafana/alloy/commit/b54ca777eed56cbbd7f76ed84e71f7b7174747c5)) * Add parcas symbols upload to pyroscope.ebpf ([#4948](https://github.com/grafana/alloy/issues/4948)) ([30f2242](https://github.com/grafana/alloy/commit/30f2242ca15b9888150f77968f8f5854f1fd37cb)) * Add sharding for loki.write ([#4882](https://github.com/grafana/alloy/issues/4882)) ([7570d65](https://github.com/grafana/alloy/commit/7570d656498501c8777f7e970108795f7bbf4173)) * Add unexposed otel engine and extension to codebase and change build structure ([#5114](https://github.com/grafana/alloy/issues/5114)) ([6438176](https://github.com/grafana/alloy/commit/6438176d0451b2ba17feb553eb24f2efeb079310)) * **beyla.ebpf:** Add meta_cache_address to beyla.ebpf.attributes.kubernetes ([#4871](https://github.com/grafana/alloy/issues/4871)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * **beyla.ebpf:** Upgrade Beyla to v2.8.5 ([f1f457f](https://github.com/grafana/alloy/commit/f1f457fa110e97623228426ee36479558a6397d4)) * Change the defaults for `sending_queue` > `batch` block inside `otelcol.exporter` components ([#5061](https://github.com/grafana/alloy/issues/5061)) ([714a2ed](https://github.com/grafana/alloy/commit/714a2ed6c57b3aa7172b8da194caf1fe8a724680)) * **cluster:** Support DNS discovery mode prefixes in --cluster.join-addresses flag ([#5034](https://github.com/grafana/alloy/issues/5034)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * **converter:** Update promtail converter to use file_match block for loki.source.file ([#4791](https://github.com/grafana/alloy/issues/4791)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * Database_observability: add health check collector for postgres component ([#5222](https://github.com/grafana/alloy/issues/5222)) ([80917b1](https://github.com/grafana/alloy/commit/80917b1bc494b22faa4ea8df20c841bfe8579a76)) * Database_observability: expose `exclude_schemas` and `exclude_databases` settings ([#5334](https://github.com/grafana/alloy/issues/5334)) ([37656f8](https://github.com/grafana/alloy/commit/37656f894551bfd857a5aed88462f87fc5a89361)) * Database_observability: support Azure cloud provider config data ([#5245](https://github.com/grafana/alloy/issues/5245)) ([d7a469f](https://github.com/grafana/alloy/commit/d7a469fe41c26fd9ddb220bb512b1e942dfae48f)) * Database_observability: support Azure privatelink db name ([#5260](https://github.com/grafana/alloy/issues/5260)) ([22e4991](https://github.com/grafana/alloy/commit/22e4991e4d21728bb22ab513d513dfc6840311b1)) * Database_observability.mysql: support excluding schemas in all collectors [backport] ([#5380](https://github.com/grafana/alloy/issues/5380)) ([d67268c](https://github.com/grafana/alloy/commit/d67268c7d3013015bb67babddd252a3a955deb01)) * Database_observability.postgres: support excluding DBs in all collectors [backport] ([#5383](https://github.com/grafana/alloy/issues/5383)) ([165492c](https://github.com/grafana/alloy/commit/165492c8b2cd63d73179111f02cddf3d6d567f90)) * **database_observability:** Add health_check collector to validate configuration ([#5115](https://github.com/grafana/alloy/issues/5115)) ([6d96740](https://github.com/grafana/alloy/commit/6d96740f7b758ce8ffa1872108ffacdbda99b276)) * **database_observability:** Always send explain plan log for each query including status ([#4969](https://github.com/grafana/alloy/issues/4969)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * **database_observability:** Append cloud provider information labels to metrics ([#4942](https://github.com/grafana/alloy/issues/4942)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * **database_observability:** Stop tracking own instrumentation queries ([#4991](https://github.com/grafana/alloy/issues/4991)) ([0b55557](https://github.com/grafana/alloy/commit/0b55557657fa3e9f1a3463444c372b6fdde4bcf2)) * **deps:** Update Prometheus to v3.8.0 and Loki to v3.6.2 ([#5035](https://github.com/grafana/alloy/issues/5035)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * Expose otel subcommand and add user-facing documentation ([#5244](https://github.com/grafana/alloy/issues/5244)) ([93f20b8](https://github.com/grafana/alloy/commit/93f20b83c247c6e9444444644c59278d0015e330)) * Improve faro.receiver.sourcemaps caching strategy ([#4337](https://github.com/grafana/alloy/issues/4337)) ([41e655c](https://github.com/grafana/alloy/commit/41e655c75da5f78645d617ab34b778a1db7479e3)) * **loki.process:** Mark stage.windowsevent as GA ([#4879](https://github.com/grafana/alloy/issues/4879)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * **loki.source.file:** Refactor tailer to reduce resource usage ([#5003](https://github.com/grafana/alloy/issues/5003)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * **loki.source.syslog:** Implement livedebugging support ([#5216](https://github.com/grafana/alloy/issues/5216)) ([e26badb](https://github.com/grafana/alloy/commit/e26badb1bb22d0dbe418bffe2e14e3b2dfc0eb08)) * **loki.source.syslog:** Support cisco-specific syslog fields ([#5165](https://github.com/grafana/alloy/issues/5165)) ([3230ba0](https://github.com/grafana/alloy/commit/3230ba0560991c28e267e0f27c5f6ac3a2be5242)) * **loki.source.syslog:** Support raw format ([#5140](https://github.com/grafana/alloy/issues/5140)) ([923d127](https://github.com/grafana/alloy/commit/923d127c50949f88a37ac808154240de0649df09)) * **mimir.alerts.kubernetes:** Add `alertmanagerconfig_matcher` block to change the matcher strategy ([f2b9671](https://github.com/grafana/alloy/commit/f2b9671603375b2f42c81fa6195b994c3436bfec)) * **mimir.alerts.kubernetes:** Add component to discover AlertmanagerConfig Kubernetes resources ([#3448](https://github.com/grafana/alloy/issues/3448)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * **mixin:** Provide rendered mixin outputs ([#5118](https://github.com/grafana/alloy/issues/5118)) ([738b9fb](https://github.com/grafana/alloy/commit/738b9fb4e99595d5d202db9dbc89f71e95402ce0)) * **otelcol.auth.basic:** Add htpasswd file based authentication ([#3916](https://github.com/grafana/alloy/issues/3916)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * **otelcol.connector.count:** Add component to count spans, metrics, and logs ([#4913](https://github.com/grafana/alloy/issues/4913)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * **otelcol.exporter.file:** Add `otelcol.exporter.file` component to write metrics, logs, and traces to disk with optional rotation, compression, and grouping by resource attribute ([#4475](https://github.com/grafana/alloy/issues/4475)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * **otelcol.exporter.prometheus:** Add `honor_metadata` config argument [backport] ([#5439](https://github.com/grafana/alloy/issues/5439)) ([32cb175](https://github.com/grafana/alloy/commit/32cb175fca3bf00250fdc2508a92024d2ac847ba)) * **otelcol.receiver.awss3:** Add experimental receiver for traces stored in S3 ([#4928](https://github.com/grafana/alloy/issues/4928)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * **otelcol.receiver.kafka:** Deprecate the `topic` attribute inside the `logs`, `metrics`, and `traces` blocks in favour of a new `topics` attribute. ([f1f457f](https://github.com/grafana/alloy/commit/f1f457fa110e97623228426ee36479558a6397d4)) * **otelcol.receiver.kafka:** Remove the global `topic` attribute ([f1f457f](https://github.com/grafana/alloy/commit/f1f457fa110e97623228426ee36479558a6397d4)) * **otelcol:** Upgrade to OTel Collector v0.142.0 ([f1f457f](https://github.com/grafana/alloy/commit/f1f457fa110e97623228426ee36479558a6397d4)) * **prometheus.echo:** Add component for local metrics inspection in exposition format ([#4105](https://github.com/grafana/alloy/issues/4105)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * **prometheus.exporter.cloudwatch:** Add delay option to account for CloudWatch ingestion latency ([#4936](https://github.com/grafana/alloy/issues/4936)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * **prometheus.exporter.databricks:** Add Databricks exporter component ([#5054](https://github.com/grafana/alloy/issues/5054)) ([4442836](https://github.com/grafana/alloy/commit/44428361a210476c2fa89c4dbfd447a091391488)) * **prometheus.operator.scrapeconfigs:** Add HTTP service discovery support via httpSDConfigs ([#4826](https://github.com/grafana/alloy/issues/4826)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * **prometheus.remote_write:** Add metadata support to `prometheus.remote_write` component, but only if Remote Write v2 has been configured. In order for `prometheus.remote_write` to receive metadata, `prometheus.scrape` must be configured with `honor_metadata = true`. ([#5045](https://github.com/grafana/alloy/issues/5045)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * **prometheus:** Reduce resource overhead by removing unnecessary labelstore usage ([#4890](https://github.com/grafana/alloy/issues/4890)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * **pyroscope.ebpf:** Add `lazy_mode` argument to the `pyroscope.ebpf` to defer eBPF profiler startup until there are targets to profile ([#4824](https://github.com/grafana/alloy/issues/4824)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * **pyroscope.enrich:** Add experimental component to enrich profiles using discovery labels ([#4797](https://github.com/grafana/alloy/issues/4797)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * Strip comments from normalized sql text in `database_observability.postgres` ([#5005](https://github.com/grafana/alloy/issues/5005)) ([a58721a](https://github.com/grafana/alloy/commit/a58721a0aa8e076fc66508f22e3f8317cee933d1)) * Support setting default scrape limit for prometheus.operator components ([#5280](https://github.com/grafana/alloy/issues/5280)) ([40ffe08](https://github.com/grafana/alloy/commit/40ffe08377bebbbf8550b07b144c7180c54cb3cb)) * **tracing:** Add send_traceparent option to enable traceparent header propagation ([#4874](https://github.com/grafana/alloy/issues/4874)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) ### Bug Fixes 🐛 * Add support for compressed files for tail package [backport] ([#5415](https://github.com/grafana/alloy/issues/5415)) ([311662f](https://github.com/grafana/alloy/commit/311662f5a163d4ec6b2f75fcd725fde980a421ac)) * Allow loki.source.file to read renaming lines of a deleted file before it tries to re open a new one ([#5270](https://github.com/grafana/alloy/issues/5270)) ([f8b1de8](https://github.com/grafana/alloy/commit/f8b1de892a8235edbf098131f8dc58c388f1d961)) * Compute signatures from files so that loki.source.file can handle atomic writes ([#5143](https://github.com/grafana/alloy/issues/5143)) ([3090c4a](https://github.com/grafana/alloy/commit/3090c4a141430444864f6f5c1476265a14ed212c)) * **converter:** Fix promtail converter to limit Kubernetes discovery to same node ([#5046](https://github.com/grafana/alloy/issues/5046)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * Database_observability: add Azure provider relabeling rules [backport] ([#5382](https://github.com/grafana/alloy/issues/5382)) ([c121178](https://github.com/grafana/alloy/commit/c12117889fbad3de21962111b18c55327536e34a)) * Database_observability: allow setting limit for mysql query_details ([#5314](https://github.com/grafana/alloy/issues/5314)) ([085f300](https://github.com/grafana/alloy/commit/085f300442915b85bde472bd0e5c410b9ee66ed3)) * Database_observability: fix race in postgres query samples test ([#5315](https://github.com/grafana/alloy/issues/5315)) ([4f01753](https://github.com/grafana/alloy/commit/4f01753b6e393e64b4969ea77f5d72186db5c60e)) * Database_observability: grant check only require SELECT *.* on perf_schema ([#5294](https://github.com/grafana/alloy/issues/5294)) ([490017c](https://github.com/grafana/alloy/commit/490017cdd16eebdb586f177d13c25d40ac796f8e)) * Database_observability: reuse cloud provider regexes ([#5262](https://github.com/grafana/alloy/issues/5262)) ([6009c54](https://github.com/grafana/alloy/commit/6009c547c54defc54aed630f64c3f0fda8d75223)) * Database_observability: update BackendXID type to int64 to better map to PG xid [backport] ([#5373](https://github.com/grafana/alloy/issues/5373)) ([1cb4b0f](https://github.com/grafana/alloy/commit/1cb4b0fc67a2c6b15439dce1c0e93ca3465afd0f)) * Database_observability: update BackendXmin type to int64 to better map to PG BIGINT ([#5296](https://github.com/grafana/alloy/issues/5296)) ([d45ccc0](https://github.com/grafana/alloy/commit/d45ccc0f63d630c30a24a21a80ff6789b458edba)) * **database_observability.mysql:** Add setup_actors collector to avoid tracking own queries ([#4978](https://github.com/grafana/alloy/issues/4978)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * **database_observability.mysql:** Replace server_id label with hash from server_uuid and hostname ([#4943](https://github.com/grafana/alloy/issues/4943)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * **database_observability.postgres:** Fix schema_details collection for mixed case table names ([#4872](https://github.com/grafana/alloy/issues/4872)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * **database_observability:** Improve postgres version parsing for explain plans in database_observability component ([#5131](https://github.com/grafana/alloy/issues/5131)) ([23c7f37](https://github.com/grafana/alloy/commit/23c7f37afc25dabe267bb60d8b0ee0473f073e5b)) * **database_observability:** Skip explain plans which lookup individual records and return no rows ([#5203](https://github.com/grafana/alloy/issues/5203)) ([b7c7cbb](https://github.com/grafana/alloy/commit/b7c7cbbf0a9542af8b89592b2ff011df8a2a362e)) * **deps:** Update npm dependencies ([#5190](https://github.com/grafana/alloy/issues/5190)) ([cd027e2](https://github.com/grafana/alloy/commit/cd027e2f23f2e6649154f46ab953ac840c956d3a)) * **docker:** Fix log corruption for multiplexed long lines ([#4713](https://github.com/grafana/alloy/issues/4713)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * Ensure the squid exporter wrapper properly brackets ipv6 addresses ([#5199](https://github.com/grafana/alloy/issues/5199)) ([ee23162](https://github.com/grafana/alloy/commit/ee2316252e6e0ee901b0ff57c55d6d07750d14ab)) * Guard pyroscope otel profiler code with unix go build tag [backport] ([#5360](https://github.com/grafana/alloy/issues/5360)) ([b1ecdb6](https://github.com/grafana/alloy/commit/b1ecdb6736d5f41923e4b54e54b23fb6d59e1e32)) * HTTP/2 is no longer always disabled in loki.write ([#5267](https://github.com/grafana/alloy/issues/5267)) ([1c97c2d](https://github.com/grafana/alloy/commit/1c97c2d569fcda2f6761534150b063d1404dc388)) * Invalid handling of `id` in `foreach` when using discovery components ([#5322](https://github.com/grafana/alloy/issues/5322)) ([61fe184](https://github.com/grafana/alloy/commit/61fe1845d3b109992cbb0ec99a062ac113c1a411)), closes [#5297](https://github.com/grafana/alloy/issues/5297) * Issues when reading files using non UTF-8 encoding in loki.source.file ([#5259](https://github.com/grafana/alloy/issues/5259)) ([4740276](https://github.com/grafana/alloy/commit/4740276083121e5b1fac8e4ea0bedba96e4190e5)) * **loki.process:** Implement encoding.TextMarshaler and encoding.TextUnmarshaler for TruncateSourceType [backport] ([#5428](https://github.com/grafana/alloy/issues/5428)) ([3585393](https://github.com/grafana/alloy/commit/3585393d187432a4cf75fe59ad89906568e7b2eb)) * **loki.process:** Remove extraneous output stage from cri stage pipeline ([#5002](https://github.com/grafana/alloy/issues/5002)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * **loki.source.api:** Prevent dropping request when relabel rules drop a specific stream. ([#4834](https://github.com/grafana/alloy/issues/4834)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * **loki.source.file:** Make sure position is recorded when component exit [backport] ([#5418](https://github.com/grafana/alloy/issues/5418)) ([64fb278](https://github.com/grafana/alloy/commit/64fb278cec9b20b935f951b7a96144d8482efc6c)) * **loki.source.file:** Update `tail_from_end` to properly handle file encoding [backport] ([#5436](https://github.com/grafana/alloy/issues/5436)) ([731e8e5](https://github.com/grafana/alloy/commit/731e8e596d3baa5f0980103a93247fba23572f54)) * **mimir.alerts.kubernetes:** Fix crash when using Kubernetes secret or configmap in AlertmanagerConfig ([#5010](https://github.com/grafana/alloy/issues/5010)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * **mixin:** Correct invalid queries in alloy logs dashboard ([#5123](https://github.com/grafana/alloy/issues/5123)) ([ad8efd3](https://github.com/grafana/alloy/commit/ad8efd3511d3a64b9cd7aeb5d6c566b061c29918)) * Only alert on cluster drift when cluster_name is set ([#5181](https://github.com/grafana/alloy/issues/5181)) ([8b6f056](https://github.com/grafana/alloy/commit/8b6f056e39f0348f5c7121e938d86d15a04a5e99)) * **otelcol:** Allow configuration of force_attempt_http2 and default to true ([#5050](https://github.com/grafana/alloy/issues/5050)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * Perform drain when file is deleted in tail package ([#5139](https://github.com/grafana/alloy/issues/5139)) ([2e48867](https://github.com/grafana/alloy/commit/2e48867c639c5170c547443f16227133d6c6f604)) * Preserve meta labels in loki.source.podlogs ([#5097](https://github.com/grafana/alloy/issues/5097)) ([23d787c](https://github.com/grafana/alloy/commit/23d787c5c607a077dbb28dd382e6543aeee115fe)) * Prevent panic in import.git when update fails ([#5198](https://github.com/grafana/alloy/issues/5198)) ([577a591](https://github.com/grafana/alloy/commit/577a591537aeae7dfd3758c30dc2980af622a415)) * **prometheus.exporter.gcp:** Preserve colons in extra_filters filter expressions ([#5018](https://github.com/grafana/alloy/issues/5018)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * **prometheus.operator:** Enable native histogram ingestion in internal scrape manager ([#4750](https://github.com/grafana/alloy/issues/4750)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * **relabel:** Fix default values for source_labels to prevent labeldrop issues ([#5059](https://github.com/grafana/alloy/issues/5059)) ([08796f8](https://github.com/grafana/alloy/commit/08796f80fbc0cde6f278ed0a1022b3aced36e036)) * Remove Parca debug info upload from user configuration [backport] ([#5395](https://github.com/grafana/alloy/issues/5395)) ([58eb9cc](https://github.com/grafana/alloy/commit/58eb9cc3ed79bc4a84c59623adca43f10f0bfceb)) * Revert doublestar v4 update [backport] ([#5435](https://github.com/grafana/alloy/issues/5435)) ([0e9e615](https://github.com/grafana/alloy/commit/0e9e615c26bb2ca2aef526259147e9f9b2f219fe)) * Set content-encoding header in loki.write ([#5346](https://github.com/grafana/alloy/issues/5346)) ([ffd2bea](https://github.com/grafana/alloy/commit/ffd2bea7de35ae8599625b924dced7a3144e34c2)) * Show correct fallback alloy version instead of v1.13.0 ([#5110](https://github.com/grafana/alloy/issues/5110)) ([e2e96e9](https://github.com/grafana/alloy/commit/e2e96e95ff0dab600befbe63165e10eea096b968)) * Update to use doublestar v4 ([#5148](https://github.com/grafana/alloy/issues/5148)) ([d8f0b3e](https://github.com/grafana/alloy/commit/d8f0b3e9b5a8c8e842e0bc09adc059fd56c71165)) ## [1.12.2](https://github.com/grafana/alloy/compare/v1.12.1...v1.12.2) (2026-01-08) ### Bug Fixes 🐛 * Add missing configuration parameter `deployment_name_from_replicaset` to k8sattributes processor ([5b90a9d](https://github.com/grafana/alloy/commit/5b90a9d391d222eb9c8ea1e40e38a9dbbbd06ffd)) * **database_observability:** Fix schema_details collector to fetch column definitions with case sensitive table names ([#4872](https://github.com/grafana/alloy/issues/4872)) ([560dff4](https://github.com/grafana/alloy/commit/560dff4ccef090e2db85ef6dd9e59aeacf54e3f2)) * **deps:** Update jose2go to 1.7.0 ([#4858](https://github.com/grafana/alloy/issues/4858)) ([dfdd341](https://github.com/grafana/alloy/commit/dfdd341c8da5e7b972905d166a497e3093323be2)) * **deps:** Update npm dependencies [backport] ([#5201](https://github.com/grafana/alloy/issues/5201)) ([8e06c26](https://github.com/grafana/alloy/commit/8e06c2673c0f5790eba84e9f7091270b3ab0bf2d)) * Ensure the squid exporter wrapper properly brackets ipv6 addresses [backport] ([#5205](https://github.com/grafana/alloy/issues/5205)) ([e329cc6](https://github.com/grafana/alloy/commit/e329cc6ebdfd7fb52034b5f215082e2fac9640f6)) * Preserve meta labels in loki.source.podlogs ([#5097](https://github.com/grafana/alloy/issues/5097)) ([ab4b21e](https://github.com/grafana/alloy/commit/ab4b21ec0c8b4e892ffa39035c6a53149ee05555)) * Prevent panic in import.git when update fails [backport] ([#5204](https://github.com/grafana/alloy/issues/5204)) ([c82fbae](https://github.com/grafana/alloy/commit/c82fbae5431dca9fe3ba071c99978babc2f9b5b1)) * show correct fallback alloy version instead of v1.13.0 ([#5110](https://github.com/grafana/alloy/issues/5110)) ([b72be99](https://github.com/grafana/alloy/commit/b72be995908ac761c0ea9a4f881367dc6ec6da13)) ## [1.12.1](https://github.com/grafana/alloy/compare/v1.12.0...v1.12.1) (2025-12-15) ### Bug Fixes 🐛 * update to Beyla 2.7.10 ([#5019](https://github.com/grafana/alloy/issues/5019)) ([c149393](https://github.com/grafana/alloy/commit/c149393881e8c155681de9c03f8701b1fdbc6ea4)) ## [1.12.0](https://github.com/grafana/alloy/compare/v1.11.3...v1.12.0) (2025-12-01) ### Breaking changes - `prometheus.exporter.blackbox`, `prometheus.exporter.snmp` and `prometheus.exporter.statsd` now use the component ID instead of the hostname as their `instance` label 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 use `discovery.relabel` with `action = "replace"` rule to set the `instance` label to `sys.env("HOSTNAME")`. (@thampiotr) ### Features - Add `otelcol.exporter.file` component to write metrics, logs, and traces to disk with optional rotation, compression, and grouping by resource attribute. (@madhub) - (_Experimental_) Add an `otelcol.receiver.cloudflare` component to receive logs pushed by Cloudflare's [LogPush](https://developers.cloudflare.com/logs/logpush/) jobs. (@x1unix) - (_Experimental_) Additions to experimental `database_observability.mysql` component: - `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_plans` collector by default (@rgeyer) - (_Experimental_) Additions to experimental `database_observability.postgres` component: - `explain_plans` - added the explain plan collector (@rgeyer) - collector now passes queries more permissively, expressly to allow queries beginning in `with` (@rgeyer) - `query_samples` - add `user` field to wait events within `query_samples` collector (@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) - `query_details` - escape queries coming from pg_stat_statements with quotes (@gaantunes) - enable `explain_plans` collector 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 database exclusion list for Postgres schema_details collector (@fridgepoet) - Add `otelcol.exporter.googlecloudpubsub` community component to export metrics, traces, and logs to Google Cloud Pub/Sub topic. (@eraac) - Add `structured_metadata_drop` stage for `loki.process` to 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_statements` configuration block to the `prometheus.exporter.postgres` component 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 `truncate` stage for `loki.process` to truncate log entries, label values, and structured_metadata values. (@dehaansa) - Add `u_probe_links` & `load_probe` configuration fields to alloy pyroscope.ebpf to extend configuration of the opentelemetry-ebpf-profiler to allow uprobe profiling and dynamic probing. (@luweglarz) - Add `verbose_mode` configuration fields to alloy pyroscope.ebpf to be enable ebpf-profiler verbose mode. (@luweglarz) - Add `file_match` block to `loki.source.file` for built-in file discovery using glob patterns. (@kalleep) - Add a `regex` argument to the `structured_metadata` stage in `loki.process` to extract labels matching a regular expression. (@timonegk) - Add `lazy_mode` argument to the `pyroscope.ebpf` to defer eBPF profiler startup until there are targets to profile. (@luweglarz) - 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 with `keep_alives_enabled`. - All `otelcol.exporter.*` components providing the `sending_queue` > `batch` block have default `batch` values. - The `otelcol.processor.k8sattributes` component has support for extracting annotations from k8s jobs and daemonsets. - The `otelcol.processor.resourcedecetion` component supports nine new detectors. - The `otelcol.exporter.kafka` component 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.kafka` component has new configuration options `max_partition_fetch_size`, `rack_id`, and `use_leader_epoch`. - The `otelcol.exporter.s3` component has new configuration options `s3_base_prefix` and `s3_partition_timezone`. - The `otelcol.processor.servicegraph` component 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. - A new `mimir.alerts.kubernetes` component which discovers `AlertmanagerConfig` Kubernetes resources and loads them into a Mimir instance. (@ptodev) - Mark `stage.windowsevent` block in the `loki.process` component as GA. (@kgeckhart) ### Enhancements - Add per-application rate limiting with the `strategy` attribute in the `faro.receiver` component, to prevent one application from consuming the rate limit quota of others. (@hhertout) - Add support of `tls` in components `loki.source.(awsfirehose|gcplog|heroku|api)` and `prometheus.receive_http` and `pyroscope.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.postgres` dependency has been updated to v0.18.1. This includes new `stat_progress_vacuum` and `buffercache_summary` collectors, 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 an `arp` config block to configure the ARP collector. (@ptodev) - `prometheus.exporter.snowflake` dependency has been updated to 20251016132346-6d442402afb2, which updates data ownership queries to use `last_over_time` for a 24 hour period. (@dasomeone) - `loki.source.podlogs` now supports `preserve_discovered_labels` parameter 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.api` during component shutdown will now reject all the inflight requests with status code 503 after `graceful_shutdown_timeout` has expired. (@kalleep) - `kubernetes.discovery` Add support for attaching namespace metadata. (@kgeckhart) - Add `meta_cache_address` to `beyla.ebpf` component. (@skl) ### Bugfixes - Stop `loki.source.kubernetes` discarding 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.syslog` as Debug, not Warn. (@dehaansa) - Fix prometheus.exporter.process ignoring the `remove_empty_groups` argument. (@mhamzahkhan) - Fix issues with "unknown series ref when trying to add exemplar" from `prometheus.remote_write` by allowing series ref links to be updated if they change. (@kgeckhart) - Fix `loki.source.podlogs` component to register the Kubernetes field index for `spec.nodeName` when node filtering is enabled, preventing "Index with name field:spec.nodeName does not exist" errors. (@QuentinBisson) - Fix issue in `loki.source.file` where scheduling files could take too long. (@kalleep) - Fix `loki.write` no longer includes internal labels `__`. (@matt-gp) - Fix missing native histograms custom buckets (NHCB) samples from `prometheus.remote_write`. (@krajorama) - `otelcol.receiver.prometheus` now supports mixed histograms if `prometheus.scrape` has `honor_metadata` set to `true`. (@ptodev) A mixed histogram is one which has both classic and exponential buckets. - `loki.source.file` has better support for non-UTF-8 encoded files. (@ptodev) * A BOM will be taken into account if the file is UTF-16 encoded and `encoding` is set to `UTF-16`. (Not `UTF-16BE` or `UTF-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. - Fix the `loki.write` endpoint block's `enable_http2` attribute 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.api` no longer drops request when relabel rules drops a specific stream. (@kalleep) v1.11.3 ----------------- ### Enhancements - Schedule new path targets faster in `loki.source.file`. (@kalleep) - Add `prometheus.static.exporter` that exposes metrics specified in a text file in Prometheus exposition format. (@kalleep) ### Bugfixes - `local.file_match` now publish targets faster whenever targets in arguments changes. (@kalleep) - Fix `otelcol.exporter.splunkhec` arguments missing documented `otel_attrs_to_hec_metadata` block. (@dehaansa) - Support Scrape Protocol specification in CRDS for `prometheus.operator.*` components. (@dehaansa) - Fix panic in `otelcol.receiver.syslog` when no tcp block was configured. (@kalleep) - Fix breaking changes in the texfile collector for `prometheus.exporter.windows`, and `prometheus.exporter.unix`, when prometheus/common was upgraded. (@kgeckhart) - Support recovering from corrupted positions file entries in `loki.source.file`. (@dehaansa) ### Other changes - Augment prometheus.scrape 'scheme' argument strengthening link to protocol. (@lewismc) - Stop `faro.receiver` losing trace context when exception has stack trace. (@duartesaraiva98) v1.11.2 ----------------- ### Bugfixes - Fix potential deadlock in `loki.source.journal` when stopping or reloading the component. (@thampiotr) - Honor sync timeout when waiting for network availability for prometheus.operator.* components. (@dehaansa) - Fix `prometheus.exporter.cloudwatch` to 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-deadline` flag if the default is not suitable. (@thampiotr) - Fix potential deadlocks in `loki.source.file` and `loki.source.journal` when component is shutting down. (@kalleep, @thampiotr) v1.11.0 ----------------- ### 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_http2` in `prometheus.remote_write` component's endpoints has been changed to `false` by 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 set `enable_http2` to `true` in your `prometheus.remote_write` endpoints configuration section. - The experimental CLI flag `--feature.prometheus.metric-validation-scheme` has been deprecated and has no effect. You can configure the metric validation scheme individually for each `prometheus.scrape` component. - Log message format has changed for some of the `prometheus.*` components as part of the upgrade to Prometheus v3. - The values of the `le` label of classic histograms and the `quantile` label 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 as `my_classic_hist{le="1"}` would be ingested as `my_classic_hist{le="1"}` via the text format, but as `my_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 in `my_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 as `le="1"` will stop working. The recommended way to deal with this change is to fix references to integer `le` and `quantile` label 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](https://prometheus.io/docs/prometheus/3.4/migration/) for more details. - `prometheus.exporter.windows` dependency has been updated to v0.31.1. (@dehaansa) - There are various renamed metrics and two removed collectors (`cs`, `logon`), see the [v1.11 release notes][1_11-release-notes] for more information. [1_11-release-notes]: https://grafana.com/docs/alloy/latest/release-notes/#v111 - `scrape_native_histograms` attribute for `prometheus.scrape` is now set to `false`, whereas in previous versions of Alloy it would default to `true`. This means that it is no longer enough to just configure `scrape_protocols` to start with `PrometheusProto` to scrape native histograms - `scrape_native_histograms` has to be enabled. If `scrape_native_histograms` is enabled, `scrape_protocols` will automatically be configured correctly for you to include `PrometheusProto`. If you configure it explicitly, Alloy will validate that `PrometheusProto` is in the `scrape_protocols` list. - Add `otel_attrs_to_hec_metadata` configuration block to `otelcol.exporter.splunkhec` to match `otelcol.receiver.splunkhec`. (@cgetzen) - [`otelcol.processor.batch`] Two arguments have different default values. (@ptodev) - `send_batch_size` is now set to 2000 by default. It used to be 8192. - `send_batch_max_size` is 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.opencensus` component has been deprecated and will be removed in a future release, use `otelcol.receiver.otelp` instead. - [`otelcol.exporter.*`] The deprecated `blocking` argument in the `sending_queue` block has been removed. Use `block_on_overflow` instead. - [`otelcol.receiver.kafka`, `otelcol.exporter.kafka`]: Removed the `broker_addr` argument from the `aws_msk` block. Also removed the `SASL/AWS_MSK_IAM` authentication mechanism. - [`otelcol.exporter.splunkhec`] The `batcher` block is deprecated and will be removed in a future release. Use the `queue` block 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`] The `database_name_attribute` argument has been removed. - [`otelcol.connector.spanmetrics`] Adds a default maximum number of exemplars within the metric export interval. - [`otelcol.processor.tail_sampling`] Add a new `block_on_overflow` config attribute. ### Features - Add the `otelcol.receiver.fluentforward` receiver to receive logs via Fluent Forward Protocol. (@rucciva) - Add the `prometheus.enrich` component to enrich metrics using labels from `discovery.*` components. (@ArkovKonstantin) - Add the `otelcol.receiver.awsecscontainermetrics` receiver (from upstream OTEL contrib) to read AWS ECS task- and container-level resource usage metrics. (@gregbrowndev) - Add `node_filter` configuration block to `loki.source.podlogs` component 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.mysql` component: - `query_sample` collector now supports auto-enabling the necessary `setup_consumers` settings (@cristiangreco) - `query_sample` collector is now compatible with mysql less than 8.0.28 (@cristiangreco) - include `server_id` label 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.postgres` component: - add `query_tables` collector for postgres (@matthewnolf) - add `cloud_provider.aws` configuration 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_sample` collector for postgres (@gaantunes) - add `schema_details` collector for postgres (@fridgepoet) - include `server_id` label on logs and metrics (@matthewnolf) - Add `otelcol.receiver.googlecloudpubsub` community component to receive metrics, traces, and logs from Google Cloud Pub/Sub subscription. (@eraac) - Add otel collector converter for `otelcol.receiver.googlecloudpubsub`. (@kalleep) - (_Experimental_) Add a `honor_metadata` configuration argument to the `prometheus.scrape` component. When set to `true`, 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_encode` and `encoding.url_decode` std lib functions. (@kalleep) ### Enhancements - Ensure text in the UI does not overflow node boundaries in the graph. (@blewis12) - Fix `pyroscope.write` component's `AppendIngest` method to respect configured timeout and implement retry logic. The method now properly uses the configured `remote_timeout`, includes retry logic with exponential backoff, and tracks metrics for sent/dropped bytes and profiles consistently with the `Append` method. (@korniltsev) - `pyroscope.write`, `pyroscope.receive_http` components include `trace_id` in logs and propagate it downstream. (@korniltsev) - Improve logging in `pyroscope.write` component. (@korniltsev) - Add comprehensive latency metrics to `pyroscope.write` component with endpoint-specific tracking for both push and ingest operations. (@korniltsev, @claude) - `prometheus.scrape` now supports `convert_classic_histograms_to_nhcb`, `enable_compression`, `metric_name_validation_scheme`, `metric_name_escaping_scheme`, `native_histogram_bucket_limit`, and `native_histogram_min_bucket_factor` arguments. See reference documentation for more details. (@thampiotr) - Add `max_send_message_size` configuration option to `loki.source.api` component to control the maximum size of requests to the push API. (@thampiotr) - Add `protobuf_message` argument to `prometheus.remote_write` endpoint configuration to support both Prometheus Remote Write v1 and v2 protocols. The default remains `"prometheus.WriteRequest"` (v1) for backward compatibility. (@thampiotr) - Update the `yet-another-cloudwatch-exporter` dependency to point to the prometheus-community repo as it has been donated. Adds a few new services to `prometheus.exporter.cloudwatch`. (@dehaansa, @BoweFlex, @andriikushch) - `pyroscope.java` now supports configuring the `log_level` and `quiet` flags on async-profiler. (@deltamualpha) - Add `application_host` and `network_inter_zone` features to `beyla.ebpf` component. (@marctc) - Set the publisher name in the Windows installer to "Grafana Labs". (@martincostello) - Switch to the community maintained fork of `go-jmespath` that has more features. (@dehaansa) - Add a `stage.pattern` stage to `loki.process` that uses LogQL patterns to parse logs. (@dehaansa) - Add support to validate references, stdlib functions and arguments when using validate command. (@kalleep) - Update the `prometheus.exporter.process` component to get the `remove_empty_groups` option. (@dehaansa) - Remove unnecessary allocations in `stage.static_labels`. (@kalleep) - Upgrade `beyla.ebpf` from Beyla version v2.2.5 to v2.5.8 The full list of changes can be found in the [Beyla release notes](https://github.com/grafana/beyla/releases/tag/v2.5.2) (@marctc) - `prometheus.exporter.azure` supports setting `interval` and `timespan` independently allowing for further look back when querying metrics. (@kgeckhart) - `loki.source.journal` now supports `legacy_positon` block that can be used to translate Static Agent or Promtail position files. (@kalleep) - Normalize attr key name in logfmt logger. (@zry98) - (_Experimental_) Add an extra parameter to the `array.combine_maps` standard library function to enable preserving the first input list even if there is no match. (@ptodev) - Reduce memory overhead of `prometheus.remote_write`'s WAL by bringing in an upstream change to only track series in a slice if there's a hash conflict. (@kgeckhart) - Reduce log level from warning for `loki.write` when request fails and will be retried. (@kalleep) - Fix slow updates to `loki.source.file` when only targets have changed and pipeline is blocked on writes. (@kalleep) - Reduced allocation in `loki.write` when using external labels with mutliple endpoints. (@kalleep) - The Windows installer and executables are now code signed. (@martincostello) - Reduce compressed request size in `prometheus.write.queue` by ensuring append order is maintained when sending metrics to the WAL. (@kgeckhart) - Add `protobuf_message` and `metadata_cache_size` arguments to `prometheus.write.queue` endpoint configuration to support both Prometheus Remote Write v1 and v2 protocols. The default remains `"prometheus.WriteRequest"` (v1) for backward compatibility. (@dehaansa) - Reduce allocations for `loki.process` when `stage.template` is used. (@kalleep) - Reduce CPU of `prometheus.write.queue` by eliminating duplicate calls to calculate the protobuf Size. (@kgeckhart) - Use new cache for metadata cache in `prometheus.write.queue` and support disabling the metadata cache with it disable by default. (@kgeckhart, @dehaansa) ### Bugfixes - Update `webdevops/go-common` dependency to resolve concurrent map write panic. (@dehaansa) - Fix ebpf profiler metrics `pyroscope_ebpf_active_targets`, `pyroscope_ebpf_profiling_sessions_total`, `pyroscope_ebpf_profiling_sessions_failing_total` not being updated. (luweglarz) - Fix `prometheus.operator.podmonitors` so it now handle portNumber from PodMonitor CRD. (@kalleep) - Fix `pyroscope.receive_http` so it does not restart server if the server configuration has not changed. (@korniltsev) - Increase default connection limit in `pyroscope.receive_http` from 100 to 16k. (@korniltsev) - Fix issue in `prometheus.remote_write`'s WAL which could allow it to hold an active series forever. (@kgeckhart) - Fix issue in static and promtail converter where metrics type was not properly handled. (@kalleep) - Fix `prometheus.operator.*` components to allow them to scrape correctly Prometheus Operator CRDs. (@thomas-gouveia) - Fix `database_observability.mysql` and `database_observability.postgres` crashing alloy process due to uncaught errors. - Fix data race in`loki.source.docker` that could cause Alloy to panic. (@kalleep) - Fix race conditions in `loki.source.syslog` where it could deadlock or cause port bind errors during config reload or shutdown. (@thampiotr) - Fix `prometheus.exporter.redis` component so that it no longer ignores the `MaxDistinctKeyGroups` configuration option. If key group metrics are enabled, this will increase the cardinality of the generated metrics. (@stegosaurus21) - **Fix `loki.source.podlogs` component 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, while `shouldStopTailingJobContainer()` 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 `loki.source.journal` creation failing with an error when the journal file is not found. (@thampiotr) - Fix graph UI so it generates correct URLs for components in `remotecfg` modules. (@patrickeasters) - Fix panic in `loki.write` when component is shutting down and `external_labels` are configured. (@kalleep) - Fix excessive debug logs always being emitted by `prometheus.exporter.mongodb`. (@kalleep) v1.10.2 ----------------- ### Bugfixes - Fix issue in `prometheus.write.queue` causing inability to increase shard count if existing WAL data was present on start. (@kgeckhart) - Fix issue with `loki.source.gcplog` when push messages sent by gcp pub/sub only includes `messageId`. (@kalleep) v1.10.1 ----------------- ### Bugfixes - Fix issue with `faro.receiver` cors 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.windows` not propagating `dns` collector config. (@dehaansa) - Fixed a bug in `prometheus.write.queue` which caused retries even when `max_retry_attempts` was set to `0`. (@ptodev) - Fixed a bug in `prometheus.write.queue` which caused labelling issues when providing more than one label in `external_labels`. (@dehaansa) - Add `application_host` and `network_inter_zone` features to `beyla.ebpf` component. (@marctc) - Fix issues in `loki.process` where `stage.multiline` did 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) v1.10.0 ----------------- ### Breaking changes - Removing the `nanoserver-1809` container image for Windows 2019. (@ptodev) This is due to the deprecation of `windows-2019` GitHub Actions runners. The `windowsservercore-ltsc2022` Alloy image is still being published to DockerHub. ### Bugfixes - Upgrade `otelcol` components 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.exporter.datadog`]: Fix automatic intial point dropping when converting cumulative monotonic sum metrics. - [`otelcol.exporter.datadog`]: config `tls::insecure_skip_verify` is now taken into account in metrics path. - [`otelcol.exporter.datadog`]: Correctly treat summary counts as cumulative monotonic sums instead of cumulative non-monotonic sums. - [`otelcol.connector.spanmetrics`]: Fix bug causing span metrics calls count to be always 0 when using delta temporality. - [`otelcol.exporter.splunkhec`]: Treat HTTP 403 Forbidden as a permanent error. ### Features - (_Experimental_) Add an `array.group_by` stdlib function to group items in an array by a key. (@wildum) - Add the `otelcol.exporter.faro` exporter to export traces and logs to Faro endpoint. (@mar4uk) - Add the `otelcol.receiver.faro` receiver to receive traces and logs from the Grafana Faro Web SDK. (@mar4uk) - Add entropy support for `loki.secretfilter` (@romain-gaillard) ### Enhancements - Add `hash_string_id` argument to `foreach` block to hash the string representation of the pipeline id instead of using the string itself. (@wildum) - Update `async-profiler` binaries for `pyroscope.java` to 4.0-87b7b42 (@github-hamza-bouqal) - (_Experimental_) Additions to experimental `database_observability.mysql` component: - Add `explain_plan` collector to `database_observability.mysql` component. (@rgeyer) - `locks`: addition of data locks collector (@gaantunes @fridgepoet) - `query_sample` collector is now enabled by default (@matthewnolf) - `query_tables` collector now deals better with truncated statements (@cristiangreco) - (_Experimental_) `prometheus.write.queue` add support for exemplars. (@dehaansa) - (_Experimental_) `prometheus.write.queue` initialize queue metrics that are seconds values as time.Now, not 0. (@dehaansa) - Update secret-filter gitleaks.toml from v8.19.0 to v8.26.0 (@andrejshapal) - Wire in survey block for beyla.ebpf component. (@grcevski, @tpaschalis) - Upgrade `otelcol` components from OpenTelemetry v0.126.0 to v0.128.0 (@korniltsev, @dehaansa) - [`otelcol.processor.resourcedetection`]: Add additional OS properties to resource detection: `os.build.id` and `os.name`. - [`otelcol.processor.resourcedetection`]: Add `host.interface` resource attribute to `system` detector. - [`otelcol.exporter.kafka`]: Fix Snappy compression codec support for the Kafka exporter. - [`otelcol.receiver.filelog`]: Introduce `utf8-raw` encoding 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`]: Adds `hostname_detection_timeout` configuration 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 `enable_tracing` attribute to `prometheus.exporter.snowflake` component to support debugging issues. (@dehaansa) - Add support for `conditions` and statement-specific `error_mode` in `otelcol.processor.transform`. (@ptodev) - Add `storage` and `start_from` args to cloudwatch logs receiver. (@boernd) - Reduced allocation in Loki processing pipelines. (@thampiotr) - Update the `prometheus.exporter.postgres` component with latest changes and bugfixes for Postgres17 (@cristiangreco) - Add `tail_from_end` argument to `loki.source.podlogs` to optionally start reading from the end of a log stream for newly discovered pods. (@harshrai654) - Remove limitation in `loki.source.file` when `legacy_position_file` is unset. Alloy can now recover legacy positions even if labels are added. (@kalleep) ### Bugfixes - Fix path for correct injection of version into constants at build time. (@adlotsof) - Propagate the `-feature.community-components.enabled` flag for remote configuration components. (@tpaschalis) - Fix extension registration for `otelcol.receiver.splunkhec` auth extensions. (@dehaansa) ### Other changes - Mark `pyroscope.receive_http` and `pyroscope.relabel` components as GA. (@marcsanmi) - Upgrade `otelcol.exporter.windows` to v0.30.8 to get bugfixes and fix `update` collector support. (@dehaansa) - Add `User-Agent` header to remotecfg requests. (@tpaschalis) v1.9.2 ----------------- ### Bugfixes - Send profiles concurrently from `pyroscope.ebpf`. (@korniltsev) - Fix the `validate` command not understanding the `livedebugging` block. (@dehaansa) - Fix invalid class names in python profiles obtained with `pyroscope.ebpf`. (@korniltsev) - Fixed a bug which prevented non-secret optional secrets to be passed in as `number` arguments. (@ptodev) - For CRD-based components (`prometheus.operator.*`), retry initializing informers if the apiserver request fails. This rectifies issues where the apiserver is not reachable immediately after node restart. (@dehaansa) ### Other changes - Add no-op blocks and attributes to the `prometheus.exporter.windows` component (@ptodev). Version 1.9.0 of Alloy removed the `msmq` block, as well as the `enable_v2_collector`, `where_clause`, and `use_api` attributes in the `service` block. This made it difficult for users to upgrade, so those attributes have now been made a no-op instead of being removed. v1.9.1 ----------------- ### Features - Update the `prometheus.exporter.windows` component to version v0.30.7. This adds new metrics to the `dns` collector. (@dehaansa) ### Bugfixes - Update the `prometheus.exporter.windows` component to version v0.30.7. This fixes an error with the exchange collector and terminal_services collector (@dehaansa) - Fix `loki.source.firehose` to propagate specific cloudwatch event timestamps when useIncomingTs is set to true. (@michaelPotter) - Fix elevated CPU usage when using some `otelcol` components due to debug logging. (@thampiotr) ### Other changes - Upgrade `otelcol` components from OpenTelemetry v0.125.0 to v0.126.0 (@dehaansa): - [`pkg/ottl`] Add support for `HasPrefix` and `HasSuffix` functions. - [`pkg/configtls`] Add trusted platform module (TPM) support to TLS authentication for all `otelcol` components supporting TLS. - [`otelcol.connector.spanmetrics`] Add `calls_dimension` and `histogram:dimension` blocks for configuring additional dimensions for `traces.span.metrics.calls` and `traces.span.metrics.duration` metrics. - [`otelcol.exporter.datadog`] Enable `instrumentation_scope_metadata_as_tags` by default. - [`otelcol.exporter.kafka`] support configuration of `compression` `level` in producer configuration. - [`otelcol.processor.tailsampling`] `invert sample` and `inverted not sample` decisions deprecated, use the `drop` policy instead to explicitly not sample traces. - [`otelcol.receiver.filelog`] support `compression` value of `auto` to automatically detect file compression type. v1.9.0 ----------------- ### Breaking changes - The `prometheus.exporter.windows` component has been update to version v0.30.6. This update includes a significant rework of the exporter and includes some breaking changes. (@dehaansa) - The `msmq` and `service` collectors can no longer be configured with a WMI where clause. Any filtering previously done in a where clause will need to be done in a `prometheus.relabel` component. - The `service` collector no longer provides `enable_v2_collector` and `use_api` configuration options. - The `mscluster_*` and `netframework_*` collectors are now replaced with one `mscluster` and `netframework` collector that allows you to enable the separate metric groupings individually. - The `teradici_pcoip` and `vmware_blast` collectors have been removed from the exporter. - The `prometheus.exporter.oracledb` component now embeds the [`oracledb_exporter from oracle`](https://github.com/oracle/oracle-db-appdev-monitoring) instead of the deprecated [`oracledb_exporter from iamseth`](https://github.com/iamseth/oracledb_exporter) for collecting metrics from an OracleDB server: (@wildum) - The arguments `username`, `password`, `default_metrics`, and `custom_metrics` are now supported. - The previously undocumented argument `custom_metrics` is now expecting a list of paths to custom metrics files. - The following metrics are no longer available by default: oracledb_sessions_activity, oracledb_tablespace_free_bytes - (_Experimental_) The `enable_context_propagation` argument in `beyla.ebpf` has been replaced with the `context_propagation` argument. Set `enable_context_propagation` to `all` to get the same behaviour as `enable_context_propagation` being set to `true`. ### Features - Bump snmp_exporter and embedded modules in `prometheus.exporter.snmp` to v0.29.0, add cisco_device module support (@v-zhuravlev) - Add the `otelcol.storage.file` extension to support persistent sending queues and `otelcol.receiver.filelog` file state tracking between restarts. (@dehaansa) - Add `otelcol.exporter.googlecloud` community component to export metrics, traces, and logs to Google Cloud. (@motoki317) - Add support to configure basic authentication for alloy http server. (@kalleep) - Add `validate` command to alloy that will perform limited validation of alloy configuration files. (@kalleep) - Add support to validate foreach block when using `validate` command. (@kalleep) - Add `otelcol.receiver.splunkhec` component to receive events in splunk hec format and forward them to other `otelcol.*` components. (@kalleep) - Add support for Mimir federated rule groups in `mimir.rules.kubernetes` (@QuentinBisson) ### Enhancements - `prometheus.exporter.windows` has been significantly refactored upstream and includes new collectors like `filetime`, `pagefile`, `performancecounter`, `udp`, and `update` as well as new configuration options for existing collectors. (@dehaansa) - `prometheus.exporter.mongodb` now offers fine-grained control over collected metrics with new configuration options. (@TeTeHacko) - Add binary version to constants exposed in configuration file syntatx. (@adlots) - Update `loki.secretfilter` to include metrics about redactions (@kelnage) - (_Experimental_) Various changes to the experimental component `database_observability.mysql`: - `schema_table`: add support for index expressions (@cristiangreco) - `query_sample`: enable opt-in support to extract unredacted sql query (sql_text) (@matthewnolf) - `query_tables`: improve queries parsing (@cristiangreco) - make tidbparser the default choice (@cristiangreco) - `query_sample`: better handling of timer overflows (@fridgepoet) - collect metrics on enabled `performance_schema.setup_consumers` (@fridgepoet) - `query_sample`: base log entries on calculated timestamp from rows, not now() (@fridgepoet) - `query_sample`: check digest is not null (@cristiangreco) - `query_sample`: add additional logs for wait events (@fridgepoet) - make tidb the default and only sql parser - Mixin dashboards improvements: added minimum cluster size to Cluster Overview dashboard, fixed units in OpenTelemetry dashboard, fixed slow components evaluation time units in Controller dashboard and updated Prometheus dashboard to correctly aggregate across instances. (@thampiotr) - Reduced the lag time during targets handover in a cluster in `prometheus.scrape` components by reducing thread contention. (@thampiotr) - Pretty print diagnostic errors when using `alloy run` (@kalleep) - Add `labels_from_groups` attribute to `stage.regex` in `loki.process` to automatically add named capture groups as labels. (@harshrai654) - The `loki.rules.kubernetes` component now supports adding extra label matchers to all queries discovered via `PrometheusRule` CRDs. (@QuentinBisson) - Add optional `id` field to `foreach` block to generate more meaningful component paths in metrics by using a specific field from collection items. (@harshrai654) - The `mimir.rules.kubernetes` component now supports adding extra label matchers to all queries discovered via `PrometheusRule` CRDs by extracting label values defined on the `PrometheusRule`. (@QuentinBisson) - Fix validation logic in `beyla.ebpf` component to ensure that either metrics or traces are enabled. (@marctc) - Improve `foreach` UI and add graph support for it. (@wildum) - Update statsd_exporter to v0.28.0, most notable changes: (@kalleep) - [0.23.0] Support experimental native histograms. - [0.24.1] Support scaling parameter in mapping. - [0.26.0] Add option to honor original labels from event tags over labels specified in mapping configuration. - [0.27.1] Support dogstatsd extended aggregation - [0.27.2] Fix panic on certain invalid lines - Upgrade `beyla.ebpf` to v2.2.4-alloy. The full list of changes can be found in the [Beyla release notes](https://github.com/grafana/beyla/releases/tag/v2.2.4-alloy). (@grcevski) ### Bugfixes - Fix `otelcol.receiver.filelog` documentation's default value for `start_at`. (@petewall) - Fix `pyroscope.scrape` scraping godeltaprof profiles. (@korniltsev) - Fix [#3386](https://github.com/grafana/alloy/issues/3386) lower casing scheme in `prometheus.operator.scrapeconfigs`. (@alex-berger) - Fix [#3437](https://github.com/grafana/alloy/issues/3437) Component Graph links now follow `--server.http.ui-path-prefix`. (@solidcellaMoon) - Fix a bug in the `foreach` preventing the UI from showing the components in the template when the block was re-evaluated. (@wildum) - Fix alloy health handler so header is written before response body. (@kalleep) - Fix `prometheus.exporter.unix` to pass hwmon config correctly. (@kalleep) - Fix [#3408](https://github.com/grafana/alloy/issues/3408) `loki.source.docker` can now collect logs from containers not in the running state. (@adamamsmith) ### Other changes - Update the zap logging adapter used by `otelcol` components to log arrays and objects. (@dehaansa) - Updated Windows install script to add DisplayVersion into registry on install (@enessene) - Update Docker builds to install latest Linux security fixes on top of base image (@jharvey10) - Reduce Docker image size slightly by consolidating some RUN layers (@AchimGrolimund) - RPM artifacts in Alloy GitHub releases are no longer signed. The artifacts on the `https://rpm.grafana.com` repository used by the `yum` package manager will continue to be signed. (@ptodev) - Upgrade `otelcol` components from OpenTelemetry v0.122.0 to v0.125.0 (@ptodev): - [`pkg/ottl`] Enhance the Decode OTTL function to support all flavors of Base64. - [`otelcol.processor.resourcedetection`] Adding the `os.version` resource attribute to system processor. - [`otelcol.auth.bearer`] Allow the header name to be customized. - [`otelcol.exporter.awss3`] Add a new `sending_queue` feature. - [`otelcol.exporter.awss3`] Add a new `timeout` argument. - [`otelcol.exporter.awss3`] Add a new `resource_attrs_to_s3` configuration block. - [`otelcol.exporter.awss3`] Fixes an issue where the AWS S3 Exporter was forcing an ACL to be set, leading to unexpected behavior in S3 bucket permissions. - [`otelcol.connector.spanmetrics`] A new `include_instrumentation_scope` configuration argument. - [`otelcol.connector.spanmetrics`] Initialise new `calls_total` metrics at 0. - [`otelcol.connector.spanmetrics`] A new `aggregation_cardinality_limit` configuration argument to limit the number of unique combinations of dimensions that will be tracked for metrics aggregation. - [`otelcol.connector.spanmetrics`] Deprecate the unused argument `dimensions_cache_size`. - [`otelcol.connector.spanmetrics`] Moving the start timestamp (and last seen timestamp) from the resourceMetrics level to the individual metrics level. This will ensure that each metric has its own accurate start and last seen timestamps, regardless of its relationship to other spans. - [`otelcol.processor.k8sattributes`] Add option to configure automatic resource attributes - with annotation prefix. Implements [Specify resource attributes using Kubernetes annotations](https://github.com/open-telemetry/semantic-conventions/blob/main/docs/non-normative/k8s-attributes.md#specify-resource-attributes-using-kubernetes-annotations). - [`otelcol.connector.servicegraph`] Change `database_name_attribute` to accept a list of values. - [`otelcol.exporter.kafka`, `otelcol.receiver.kafka`] Deprecating the `auth` > `plain_text` block. Use `auth` > `sasl` with `mechanism` set to `PLAIN` instead. - [`otelcol.exporter.kafka`, `otelcol.receiver.kafka`] Deprecating the `topic` argument. Use `logs` > `topic`, `metrics` > `topic`, or `traces` > `topic` instead. - [`otelcol.exporter.kafka`, `otelcol.receiver.kafka`] Deprecate the `auth` > `tls` block. Use the top-level `tls` block instead. - [`otelcol.receiver.kafka`] Add max_fetch_wait config setting. This setting allows you to specify the maximum time that the broker will wait for min_fetch_size bytes of data to be available before sending a response to the client. - [ `otelcol.receiver.kafka`] Add support for configuring Kafka consumer rebalance strategy and group instance ID. v1.8.3 ----------------- ### Bugfixes - Fix `mimir.rules.kubernetes` panic on non-leader debug info retrieval (@TheoBrigitte) - Fix detection of the "streams limit exceeded" error in the Loki client so that metrics are correctly labeled as `ReasonStreamLimited`. (@maratkhv) - Fix `loki.source.file` race condition that often lead to panic when using `decompression`. (@kalleep) - Fix deadlock in `loki.source.file` that can happen when targets are removed. (@kalleep) - Fix `loki.process` to emit valid logfmt. (@kalleep) v1.8.2 ----------------- ### Bugfixes - Fix `otelcol.exporter.prometheus` dropping valid exemplars. (@github-vincent-miszczak) - Fix `loki.source.podlogs` not adding labels `__meta_kubernetes_namespace` and `__meta_kubernetes_pod_label_*`. (@kalleep) v1.8.1 ----------------- ### Bugfixes - `rfc3164_default_to_current_year` argument was not fully added to `loki.source.syslog` (@dehaansa) - Fix issue with `remoteCfg` service stopping immediately and logging noop error if not configured (@dehaansa) - Fix potential race condition in `remoteCfg` service metrics registration (@kalleep) - Fix panic in `prometheus.exporter.postgres` when using minimal url as data source name. (@kalleep) v1.8.0 ----------------- ### Breaking changes - Removed `open_port` and `executable_name` from top level configuration of Beyla component. Removed `enabled` argument from `network` block. (@marctc) - Breaking changes from the OpenTelemetry Collector v0.122 update: (@wildum) - `otelcol.exporter.splunkhec`: `min_size_items` and `max_size_items` were replaced by `min_size`, `max_size` and `sizer` in the `batcher` block to allow users to configure the size of the batch in a more flexible way. - The telemetry level of Otel components is no longer configurable. The `level` argument in the `debug_metrics` block is kept to avoid breaking changes but it is not used anymore. - `otelcol.processor.tailsampling` changed the unit of the decision timer metric from microseconds to milliseconds. (change unit of otelcol_processor_tail_sampling_sampling_decision_timer_latency) - `otelcol.processor.deltatocumulative`: rename `otelcol_deltatocumulative_datapoints_processed` to `otelcol_deltatocumulative_datapoints` and remove the metrics `otelcol_deltatocumulative_streams_evicted`, `otelcol_deltatocumulative_datapoints_dropped` and `otelcol_deltatocumulative_gaps_length`. - The `regex` attribute was removed from `otelcol.processor.k8sattributes`. The extract-patterns function from `otelcol.processor.transform` can be used instead. - The default value of `metrics_flush_interval` in `otelcol.connector.servicegraph` was changed from `0s` to `60s`. - `s3_partition` in `otelcol.exporter.awss3` was replaced by `s3_partition_format`. - (_Experimental_) `prometheus.write.queue` metric names changed to align better with prometheus standards. (@mattdurham) ### Features - Add `otelcol.receiver.awscloudwatch` component to receive logs from AWS CloudWatch and forward them to other `otelcol.*` components. (@wildum) - Add `loki.enrich` component to enrich logs using labels from `discovery.*` components. (@v-zhuravlev) - Add string concatenation for secrets type (@ravishankar15) - Add support for environment variables to OpenTelemetry Collector config. (@jharvey10) - Replace graph in Alloy UI with a new version that supports modules and data flow visualization. (@wildum) - Added `--cluster.wait-for-size` and `--cluster.wait-timeout` flags which allow to specify the minimum cluster size required before components that use clustering begin processing traffic to ensure adequate cluster capacity is available. (@thampiotr) - Add `trace_printer` to `beyla.ebpf` component to print trace information in a specific format. (@marctc) - Add support for live debugging and graph in the UI for components imported via remotecfg. (@wildum) ### Enhancements - Add the ability to set user for Windows Service with silent install (@dehaansa) - Add livedebugging support for structured_metadata in `loki.process` (@dehaansa) - (_Public Preview_) Add a `--windows.priority` flag to the run command, allowing users to set windows process priority for Alloy. (@dehaansa) - (_Experimental_) Adding a new `prometheus.operator.scrapeconfigs` which discovers and scrapes [ScrapeConfig](https://prometheus-operator.dev/docs/developer/scrapeconfig/) Kubernetes resources. (@alex-berger) - Add `rfc3164_default_to_current_year` argument to `loki.source.syslog` (@dehaansa) - Add `connection_name` support for `prometheus.exporter.mssql` (@bck01215) - Add livedebugging support for `prometheus.scrape` (@ravishankar15, @wildum) - Have `loki.echo` log the `entry_timestamp` and `structured_metadata` for any loki entries received (@dehaansa) - Bump snmp_exporter and embedded modules in `prometheus.exporter.snmp` to v0.28.0 (@v-zhuravlev) - Update mysqld_exporter to v0.17.2, most notable changes: (@cristiangreco) - [0.17.1] Add perf_schema quantile columns to collector - [0.17.1] Fix database quoting problem in collector 'info_schema.tables' - [0.17.1] Use SUM_LOCK_TIME and SUM_CPU_TIME with mysql >= 8.0.28 - [0.17.1] Fix query on perf_schema.events_statements_summary_by_digest - [0.17.2] Fix query on events_statements_summary_by_digest for mariadb - Added additional backwards compatibility metrics to `prometheus.write.queue`. (@mattdurham) - Add new stdlib functions encoding.to_json (@ravishankar15) - Added OpenTelemetry logs and metrics support to Alloy mixin's dashboards and alerts. (@thampiotr) - Add support for proxy and headers in `prometheus.write.queue`. (@mattdurham) - Added support for switching namespace between authentication and kv retrieval to support Vault Enterprise (@notedop) - (_Experimental_) Various changes to the experimental component `database_observability.mysql`: - `query_sample`: better handling of truncated queries (@cristiangreco) - `query_sample`: add option to use TiDB sql parser (@cristiangreco) - `query_tables`: rename collector from `query_sample` to better reflect responsibility (@matthewnolf) - `query_sample`: add new collector that replaces previous implementation to collect more detailed sample information (@matthewnolf) - `query_sample`: refactor parsing of truncated queries (@cristiangreco) - Add labels validation in `pyroscope.write` to prevent duplicate labels and invalid label names/values. (@marcsanmi) - Reduced lock contention in `prometheus.scrape` component (@thampiotr) - Support converting otel config which uses a common receiver across pipelines with different names. (@wildum) - Reduce CPU usage of the `loki.source.podlogs` component when pods logs target lots of pods (@QuentinBisson) - Add error body propagation in `pyroscope.write`, for `/ingest` calls. (@simonswine) - Add `tenant` label to remaining `loki_write_.+` metrics (@towolf) - Removed syntax highlighting from the component details UI view to improve rendering performance. (@tpaschalis) - A new `grafana/alloy:vX.Y.Z-windowsservercore-ltsc2022` Docker image is now published on DockerHub. (@ptodev) ### Bugfixes - Fix deadlocks in `loki.source.file` when tailing fails (@mblaschke) - Add missing RBAC permission for ScrapeConfig (@alex-berger) - Fixed an issue in the `mimir.rules.kubernetes` component that would keep the component as unhealthy even when it managed to start after temporary errors (@nicolasvan) - Allow kafka exporter to attempt to connect even if TLS enabled but cert & key are not specified (@dehaansa) - Fixed bug where all resources were not being collected from `prometheus.exporter.azure` when using `regions` (@kgeckhart) - Fix panic in `loki.source.file` when the tailer had no time to run before the runner was stopped (@wildum) ### Other changes - Upgrading to Prometheus v2.55.1. (@ptodev) - Added a new `http_headers` argument to many `discovery` and `prometheus` components. - Added a new `scrape_failure_log_file` argument to `prometheus.scrape`. - Non-breaking changes from the OpenTelemetry Collector v0.122 update: (@wildum) - `otelcol.processor.transform` has a new `statements` block for transformations which don't require a context to be specified explicitly. - `otelcol.receiver.syslog` has a new `on_error` argument to specify the action to take when an error occurs while receiving logs. - `otelcol.processor.resourcedetection` now supports `dynatrace` as a resource detector. - `otelcol.receiver.kafka` has a new `error_backoff` block to configure how failed requests are retried. - `otelcol.receiver.vcenter` has three new metrics `vcenter.vm.cpu.time`, `vcenter.vm.network.broadcast.packet.rate` and `vcenter.vm.network.multicast.packet.rate`. - `otelcol.exporter.awss3` has two new arguments `acl` and `storage_class`. - `otelcol.auth.headers` headers can now be populated using Authentication metadata using from_attribute - Change the stability of the `beyla.ebpf` component from "public preview" to "generally available". (@marctc) - The ingest API of `pyroscope.receive_http` no longer forwards all received headers, instead only passes through the `Content-Type` header. (@simonswine) v1.7.5 ----------------- ### Enhancements - Set zstd as default compression for `prometheus.write.queue`. (@mattdurham) v1.7.4 ----------------- ### Bugfixes - Revert the changes to `loki.source.file` from release v1.7.0. These changes introduced a potential deadlock. (@dehaansa) v1.7.3 ----------------- ### Breaking changes - Fixed the parsing of selections, application and network filter blocks for Beyla. (@raffaelroquetto) ### Enhancements - Add the `stat_checkpointer` collector in `prometheus.exporter.postgres` (@dehaansa) ### Bugfixes - Update the `prometheus.exporter.postgres` component to correctly support Postgres17 when `stat_bgwriter` collector is enabled (@dehaansa) - Fix `remoteCfg` logging and metrics reporting of `errNotModified` as a failure (@zackman0010) v1.7.2 ----------------- ### Bugfixes - Fixed an issue where the `otelcol.exporter.awss3` could not be started with the `sumo_ic` marshaler. (@wildum) - Update `jfr-parser` dependency to v0.9.3 to fix jfr parsing issues in `pyroscope.java`. (@korniltsev) - Fixed an issue where passing targets from some standard library functions was failing with `target::ConvertFrom` error. (@thampiotr) - Fixed an issue where indexing targets as maps (e.g. `target["foo"]`) or objects (e.g. `target.foo`) or using them with certain standard library functions was resulting in `expected object or array, got capsule` error under some circumstances. This could also lead to `foreach evaluation failed` errors when using the `foreach` configuration block. (@thampiotr) - Update `prometheus.write.queue` to reduce memory fragmentation and increase sent throughput. (@mattdurham) - Fixed an issue where the `otelcol.exporter.kafka` component would not start if the `encoding` was specific to a signal type. (@wildum) v1.7.1 ----------------- ### Bugfixes - Fixed an issue where some exporters such as `prometheus.exporter.snmp` couldn't accept targets from other components with an error `conversion to '*map[string]string' is not supported"`. (@thampiotr) - Enable batching of calls to the appender in `prometheus.write.queue` to reduce lock contention when scraping, which will lead to reduced scrape duration. (@mattdurham) v1.7.0 ----------------- ### Breaking changes - (_Experimental_) In `prometheus.write.queue` changed `parallelism` from attribute to a block to allow for dynamic scaling. (@mattdurham) - Remove `tls_basic_auth_config_path` attribute from `prometheus.exporter.mongodb` configuration as it does not configure TLS client behavior as previously documented. - Remove `encoding` and `encoding_file_ext` from `otelcol.exporter.awss3` component as it was not wired in to the otel component and Alloy does not currently integrate the upstream encoding extensions that this would utilize. ### Features - Add a `otelcol.receiver.tcplog` component to receive OpenTelemetry logs over a TCP connection. (@nosammai) - (_Public preview_) Add `otelcol.receiver.filelog` component to read otel log entries from files (@dehaansa) - (_Public preview_) Add a `otelcol.processor.cumulativetodelta` component to convert metrics from cumulative temporality to delta. (@madaraszg-tulip) - (_Experimental_) Add a `stage.windowsevent` block in the `loki.process` component. This aims to replace the existing `stage.eventlogmessage`. (@wildum) - Add `pyroscope.relabel` component to modify or filter profiles using Prometheus relabeling rules. (@marcsanmi) - (_Experimental_) A new `foreach` block which starts an Alloy pipeline for each item inside a list. (@wildum, @thampiotr, @ptodev) ### Enhancements - Upgrade to OpenTelemetry Collector v0.119.0 (@dehaansa): - `otelcol.processor.resourcedetection`: additional configuration for the `ec2` detector to configure retry behavior - `otelcol.processor.resourcedetection`: additional configuration for the `gcp` detector to collect Managed Instance Group attributes - `otelcol.processor.resourcedetection`: additional configuration for the `eks` detector to collect cloud account attributes - `otelcol.processor.resourcedetection`: add `kubeadm` detector to collect local cluster attributes - `otelcol.processor.cumulativetodelta`: add `metric_types` filtering options - `otelcol.exporter.awss3`: support configuring sending_queue behavior - `otelcol.exporter.otlphttp`: support configuring `compression_params`, which currently only includes `level` - `configtls`: opentelemetry components with tls config now support specifying TLS curve preferences - `sending_queue`: opentelemetry exporters with a `sending_queue` can now configure the queue to be `blocking` - Add `go_table_fallback` arg to `pyroscope.ebpf` (@korniltsev) - Memory optimizations in `pyroscope.scrape` (@korniltsev) - Do not drop `__meta` labels in `pyroscope.scrape`. (@korniltsev) - Add the possibility to export span events as logs in `otelcol.connector.spanlogs`. (@steve-hb) - Add json format support for log export via faro receiver (@ravishankar15) - (_Experimental_) Various changes to the experimental component `database_observability.mysql`: - `connection_info`: add namespace to the metric (@cristiangreco) - `query_sample`: better support for table name parsing (@cristiangreco) - `query_sample`: capture schema name for query samples (@cristiangreco) - `query_sample`: fix error handling during result set iteration (@cristiangreco) - `query_sample`: improve parsing of truncated queries (@cristiangreco) - `query_sample`: split out sql parsing logic to a separate file (@cristiangreco) - `schema_table`: add table columns parsing (@cristiagreco) - `schema_table`: correctly quote schema and table name in SHOW CREATE (@cristiangreco) - `schema_table`: fix handling of view table types when detecting schema (@matthewnolf) - `schema_table`: refactor cache config in schema_table collector (@cristiangreco) - Component: add enable/disable collector configurability to `database_observability.mysql`. This removes the `query_samples_enabled` argument, now configurable via enable/disable collector. (@fridgepoet) - Component: always log `instance` label key (@cristiangreco) - Component: better error handling for collectors (@cristiangreco) - Component: use labels for some indexed logs elements (@cristiangreco) - Reduce CPU usage of `loki.source.windowsevent` by up to 85% by updating the bookmark file every 10 seconds instead of after every event and by optimizing the retrieval of the process name. (@wildum) - Ensure consistent service_name label handling in `pyroscope.receive_http` to match Pyroscope's behavior. (@marcsanmi) - Improved memory and CPU performance of Prometheus pipelines by changing the underlying implementation of targets (@thampiotr) - Add `config_merge_strategy` in `prometheus.exporter.snmp` to optionally merge custom snmp config with embedded config instead of replacing. Useful for providing SNMP auths. (@v-zhuravlev) - Upgrade `beyla.ebpf` to v2.0.4. The full list of changes can be found in the [Beyla release notes](https://github.com/grafana/beyla/releases/tag/v2.0.0). (@marctc) ### Bugfixes - Fix log rotation for Windows in `loki.source.file` by refactoring the component to use the runner pkg. This should also reduce CPU consumption when tailing a lot of files in a dynamic environment. (@wildum) - Add livedebugging support for `prometheus.remote_write` (@ravishankar15) - Add livedebugging support for `otelcol.connector.*` components (@wildum) - Bump snmp_exporter and embedded modules to 0.27.0. Add support for multi-module handling by comma separation and expose argument to increase SNMP polling concurrency for `prometheus.exporter.snmp`. (@v-zhuravlev) - Add support for pushv1.PusherService Connect API in `pyroscope.receive_http`. (@simonswine) - Fixed an issue where `loki.process` would sometimes output live debugging entries out-of-order (@thampiotr) - Fixed a bug where components could be evaluated concurrently without the full context during a config reload (@wildum) - Fixed locks that wouldn't be released in the remotecfg service if some errors occurred during the configuration reload (@spartan0x117) - Fix issue with `prometheus.write.queue` that lead to excessive connections. (@mattdurham) - Fixed a bug where `loki.source.awsfirehose` and `loki.source.gcplog` could not be used from within a module. (@tpaschalis) - Fix an issue where Prometheus metric name validation scheme was set by default to UTF-8. It is now set back to the previous "legacy" scheme. An experimental flag `--feature.prometheus.metric-validation-scheme` can be used to switch it to `utf-8` to experiment with UTF-8 support. (@thampiotr) ### Other changes - Upgrading to Prometheus v2.54.1. (@ptodev) - `discovery.docker` has a new `match_first_network` attribute for matching the first network if the container has multiple networks defined, thus avoiding collecting duplicate targets. - `discovery.ec2`, `discovery.kubernetes`, `discovery.openstack`, and `discovery.ovhcloud` add extra `__meta_` labels. - `prometheus.remote_write` supports Azure OAuth and Azure SDK authentication. - `discovery.linode` has a new `region` attribute, as well as extra `__meta_` labels. - A new `scrape_native_histograms` argument for `prometheus.scrape`. This is enabled by default and can be used to explicitly disable native histogram support. In previous versions of Alloy, native histogram support has also been enabled by default as long as `scrape_protocols` starts with `PrometheusProto`. - Change the stability of the `remotecfg` feature from "public preview" to "generally available". (@erikbaranowski) v1.6.1 ----------------- ## Bugs - Resolve issue with Beyla starting. (@rafaelroquetto) v1.6.0 ----------------- ### Breaking changes - Upgrade to OpenTelemetry Collector v0.116.0: - `otelcol.processor.tailsampling`: Change decision precedence when using `and_sub_policy` and `invert_match`. For more information, see the [release notes for Alloy 1.6][release-notes-alloy-1_6]. [#33671]: https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/33671 [release-notes-alloy-1_6]: https://grafana.com/docs/alloy/latest/release-notes/#v16 ### Features - Add support for TLS to `prometheus.write.queue`. (@mattdurham) - Add `otelcol.receiver.syslog` component to receive otel logs in syslog format (@dehaansa) - Add support for metrics in `otelcol.exporter.loadbalancing` (@madaraszg-tulip) - Add `add_cloudwatch_timestamp` to `prometheus.exporter.cloudwatch` metrics. (@captncraig) - Add support to `prometheus.operator.servicemonitors` to allow `endpointslice` role. (@yoyosir) - Add `otelcol.exporter.splunkhec` allowing to export otel data to Splunk HEC (@adlotsof) - Add `otelcol.receiver.solace` component to receive traces from a Solace broker. (@wildum) - Add `otelcol.exporter.syslog` component to export logs in syslog format (@dehaansa) - (_Experimental_) Add a `database_observability.mysql` component to collect mysql performance data. (@cristiangreco & @matthewnolf) - Add `otelcol.receiver.influxdb` to convert influx metric into OTEL. (@EHSchmitt4395) - Add a new `/-/healthy` endpoint which returns HTTP 500 if one or more components are unhealthy. (@ptodev) ### Enhancements - Improved performance by reducing allocation in Prometheus write pipelines by ~30% (@thampiotr) - Update `prometheus.write.queue` to support v2 for cpu performance. (@mattdurham) - (_Experimental_) Add health reporting to `database_observability.mysql` component (@cristiangreco) - Add second metrics sample to the support bundle to provide delta information (@dehaansa) - Add all raw configuration files & a copy of the latest remote config to the support bundle (@dehaansa) - Add relevant golang environment variables to the support bundle (@dehaansa) - Add support for server authentication to otelcol components. (@aidaleuc) - Update mysqld_exporter from v0.15.0 to v0.16.0 (including 2ef168bf6), most notable changes: (@cristiangreco) - Support MySQL 8.4 replicas syntax - Fetch lock time and cpu time from performance schema - Fix fetching tmpTables vs tmpDiskTables from performance_schema - Skip SPACE_TYPE column for MariaDB >=10.5 - Fixed parsing of timestamps with non-zero padded days - Fix auto_increment metric collection errors caused by using collation in INFORMATION_SCHEMA searches - Change processlist query to support ONLY_FULL_GROUP_BY sql_mode - Add perf_schema quantile columns to collector - Live Debugging button should appear in UI only for supported components (@ravishankar15) - Add three new stdlib functions to_base64, from_URLbase64 and to_URLbase64 (@ravishankar15) - Add `ignore_older_than` option for local.file_match (@ravishankar15) - Add livedebugging support for discovery components (@ravishankar15) - Add livedebugging support for `discover.relabel` (@ravishankar15) - Performance optimization for live debugging feature (@ravishankar15) - Upgrade `github.com/goccy/go-json` to v0.10.4, which reduces the memory consumption of an Alloy instance by 20MB. If Alloy is running certain otelcol components, this reduction will not apply. (@ptodev) - improve performance in regexp component: call fmt only if debug is enabled (@r0ka) - Update `prometheus.write.queue` library for performance increases in cpu. (@mattdurham) - Update `loki.secretfilter` to be compatible with the new `[[rules.allowlists]]` gitleaks allowlist format (@romain-gaillard) - Update `async-profiler` binaries for `pyroscope.java` to 3.0-fa937db (@aleks-p) - Reduced memory allocation in discovery components by up to 30% (@thampiotr) ### Bugfixes - Fix issue where `alloy_prometheus_relabel_metrics_processed` was not being incremented. (@mattdurham) - Fixed issue with automemlimit logging bad messages and trying to access cgroup on non-linux builds (@dehaansa) - Fixed issue with reloading configuration and prometheus metrics duplication in `prometheus.write.queue`. (@mattdurham) - Updated `prometheus.write.queue` to fix issue with TTL comparing different scales of time. (@mattdurham) - Fixed an issue in the `prometheus.operator.servicemonitors`, `prometheus.operator.podmonitors` and `prometheus.operator.probes` to support capitalized actions. (@QuentinBisson) - Fixed an issue where the `otelcol.processor.interval` could not be used because the debug metrics were not set to default. (@wildum) - Fixed an issue where `loki.secretfilter` would crash if the secret was shorter than the `partial_mask` value. (@romain-gaillard) - Change the log level in the `eventlogmessage` stage of the `loki.process` component from `warn` to `debug`. (@wildum) - Fix a bug in `loki.source.kafka` where the `topics` argument incorrectly used regex matching instead of exact matches. (@wildum) ### Other changes - Change the stability of the `livedebugging` feature from "experimental" to "generally available". (@wildum) - Use Go 1.23.3 for builds. (@mattdurham) - Upgrade Beyla to v1.9.6. (@wildum) - Upgrade to OpenTelemetry Collector v0.116.0: - `otelcol.receiver.datadog`: Return a json reponse instead of "OK" when a trace is received with a newer protocol version. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/35705 - `otelcol.receiver.datadog`: Changes response message for `/api/v1/check_run` 202 response to be JSON and on par with Datadog API spec https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/36029 - `otelcol.receiver.solace`: The Solace receiver may unexpectedly terminate on reporting traces when used with a memory limiter processor and under high load. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/35958 - `otelcol.receiver.solace`: Support converting the new `Move to Dead Message Queue` and new `Delete` spans generated by Solace Event Broker to OTLP. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/36071 - `otelcol.exporter.datadog`: Stop prefixing `http_server_duration`, `http_server_request_size` and `http_server_response_size` with `otelcol`. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/36265 These metrics can be from SDKs rather than collector. Stop prefixing them to be consistent with https://opentelemetry.io/docs/collector/internal-telemetry/#lists-of-internal-metrics - `otelcol.receiver.datadog`: Add json handling for the `api/v2/series` endpoint in the datadogreceiver. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/36218 - `otelcol.processor.span`: Add a new `keep_original_name` configuration argument to keep the original span name when extracting attributes from the span name. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/36397 - `pkg/ottl`: Respect the `depth` option when flattening slices using `flatten`. The `depth` option is also now required to be at least `1`. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/36198 - `otelcol.exporter.loadbalancing`: Shutdown exporters during collector shutdown. This fixes a memory leak. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/36024 - `otelcol.processor.k8sattributes`: New `wait_for_metadata` and `wait_for_metadata_timeout` configuration arguments, which block the processor startup until metadata is received from Kubernetes. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/32556 - `otelcol.processor.k8sattributes`: Enable the `k8sattr.fieldExtractConfigRegex.disallow` for all Alloy instances, to retain the behavior of `regex` argument in the `annotation` and `label` blocks. When the feature gate is "deprecated" in the upstream Collector, Alloy users will need to use the transform processor instead. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/25128 - `otelcol.receiver.vcenter`: The existing code did not honor TLS settings beyond 'insecure'. All TLS client config should now be honored. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/36482 - `otelcol.receiver.opencensus`: Do not report error message when OpenCensus receiver is shutdown cleanly. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/36622 - `otelcol.processor.k8sattributes`: Fixed parsing of k8s image names to support images with tags and digests. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/36145 - `otelcol.exporter.loadbalancing`: Adding sending_queue, retry_on_failure and timeout settings to loadbalancing exporter configuration. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/35378 - `otelcol.exporter.loadbalancing`: The k8sresolver was triggering exporter churn in the way the change event was handled. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/35658 - `otelcol.processor.k8sattributes`: Override extracted k8s attributes if original value has been empty. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/36466 - `otelcol.exporter.awss3`: Upgrading to adopt aws sdk v2. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/36698 - `pkg/ottl`: GetXML Converter now supports selecting text, CDATA, and attribute (value) content. - `otelcol.exporter.loadbalancing`: Adds a an optional `return_hostnames` configuration argument to the k8s resolver. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/35411 - `otelcol.exporter.kafka`, `otelcol.receiver.kafka`: Add a new `AWS_MSK_IAM_OAUTHBEARER` mechanism. This mechanism use the AWS MSK IAM SASL Signer for Go https://github.com/aws/aws-msk-iam-sasl-signer-go. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/32500 - Use Go 1.23.5 for builds. (@wildum) v1.5.1 ----------------- ### Enhancements - Logs from underlying clustering library `memberlist` are now surfaced with correct level (@thampiotr) - Allow setting `informer_sync_timeout` in prometheus.operator.* components. (@captncraig) - For sharding targets during clustering, `loki.source.podlogs` now only takes into account some labels. (@ptodev) - Improve instrumentation of `pyroscope.relabel` component. (@marcsanmi) ### Bugfixes - Fixed an issue in the `pyroscope.write` component to prevent TLS connection churn to Pyroscope when the `pyroscope.receive_http` clients don't request keepalive (@madaraszg-tulip) - Fixed an issue in the `pyroscope.write` component with multiple endpoints not working correctly for forwarding profiles from `pyroscope.receive_http` (@madaraszg-tulip) - Fixed a few race conditions that could lead to a deadlock when using `import` statements, which could lead to a memory leak on `/metrics` endpoint of an Alloy instance. (@thampiotr) - Fix a race condition where the ui service was dependent on starting after the remotecfg service, which is not guaranteed. (@dehaansa & @erikbaranowski) - Fixed an issue in the `otelcol.exporter.prometheus` component that would set series value incorrectly for stale metrics (@YusifAghalar) - `loki.source.podlogs`: Fixed a bug which prevented clustering from working and caused duplicate logs to be sent. The bug only happened when no `selector` or `namespace_selector` blocks were specified in the Alloy configuration. (@ptodev) - Fixed an issue in the `pyroscope.write` component to allow slashes in application names in the same way it is done in the Pyroscope push API (@marcsanmi) - Fixed a crash when updating the configuration of `remote.http`. (@kinolaev) - Fixed an issue in the `otelcol.processor.attribute` component where the actions `delete` and `hash` could not be used with the `pattern` argument. (@wildum) - Fixed an issue in the `prometheus.exporter.postgres` component that would leak goroutines when the target was not reachable (@dehaansa) v1.5.0 ----------------- ### Breaking changes - `import.git`: The default value for `revision` has changed from `HEAD` to `main`. (@ptodev) It is no longer allowed to set `revision` to `"HEAD"`, `"FETCH_HEAD"`, `"ORIG_HEAD"`, `"MERGE_HEAD"`, or `"CHERRY_PICK_HEAD"`. - The Otel update to v0.112.0 has a few breaking changes: - [`otelcol.processor.deltatocumulative`] Change `max_streams` default value to `9223372036854775807` (max int). https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/35048 - [`otelcol.connector.spanmetrics`] Change `namespace` default value to `traces.span.metrics`. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/34485 - [`otelcol.exporter.logging`] Removed in favor of the `otelcol.exporter.debug`. https://github.com/open-telemetry/opentelemetry-collector/issues/11337 ### Features - Add support bundle generation via the API endpoint /-/support (@dehaansa) - Add the function `path_join` to the stdlib. (@wildum) - Add `pyroscope.receive_http` component to receive and forward Pyroscope profiles (@marcsanmi) - Add support to `loki.source.syslog` for the RFC3164 format ("BSD syslog"). (@sushain97) - Add support to `loki.source.api` to be able to extract the tenant from the HTTP `X-Scope-OrgID` header (@QuentinBisson) - (_Experimental_) Add a `loki.secretfilter` component to redact secrets from collected logs. - (_Experimental_) Add a `prometheus.write.queue` component to add an alternative to `prometheus.remote_write` which allowing the writing of metrics to a prometheus endpoint. (@mattdurham) - (_Experimental_) Add the `array.combine_maps` function to the stdlib. (@ptodev, @wildum) ### Enhancements - The `mimir.rules.kubernetes` component now supports adding extra label matchers to all queries discovered via `PrometheusRule` CRDs. (@thampiotr) - The `cluster.use-discovery-v1` flag is now deprecated since there were no issues found with the v2 cluster discovery mechanism. (@thampiotr) - SNMP exporter now supports labels in both `target` and `targets` parameters. (@mattdurham) - Add support for relative paths to `import.file`. This new functionality allows users to use `import.file` blocks in modules imported via `import.git` and other `import.file`. (@wildum) - `prometheus.exporter.cloudwatch`: The `discovery` block now has a `recently_active_only` configuration attribute to return only metrics which have been active in the last 3 hours. - Add Prometheus bearer authentication to a `prometheus.write.queue` component (@freak12techno) - Support logs that have a `timestamp` field instead of a `time` field for the `loki.source.azure_event_hubs` component. (@andriikushch) - Add `proxy_url` to `otelcol.exporter.otlphttp`. (@wildum) - Allow setting `informer_sync_timeout` in prometheus.operator.* components. (@captncraig) ### Bugfixes - Fixed a bug in `import.git` which caused a `"non-fast-forward update"` error message. (@ptodev) - Do not log error on clean shutdown of `loki.source.journal`. (@thampiotr) - `prometheus.operator.*` components: Fixed a bug which would sometimes cause a "failed to create service discovery refresh metrics" error after a config reload. (@ptodev) ### Other changes - Small fix in UI stylesheet to fit more content into visible table area. (@defanator) - Changed OTEL alerts in Alloy mixin to use success rate for tracing. (@thampiotr) - Support TLS client settings for clustering (@tiagorossig) - Add support for `not_modified` response in `remotecfg`. (@spartan0x117) - Fix dead link for RelabelConfig in the PodLog documentation page (@TheoBrigitte) - Most notable changes coming with the OTel update from v0.108.0 vo v0.112.0 besides the breaking changes: (@wildum) - [`http config`] Add support for lz4 compression. https://github.com/open-telemetry/opentelemetry-collector/issues/9128 - [`otelcol.processor.interval`] Add support for gauges and summaries. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/34803 - [`otelcol.receiver.kafka`] Add possibility to tune the fetch sizes. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/34431 - [`otelcol.processor.tailsampling`] Add `invert_match` to boolean attribute. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/34730 - [`otelcol.receiver.kafka`] Add support to decode to `otlp_json`. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/33627 - [`otelcol.processor.transform`] Add functions `convert_exponential_histogram_to_histogram` and `aggregate_on_attribute_value`. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/33824 https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/33423 v1.4.3 ----------------- ### Bugfixes - Fix an issue where some `faro.receiver` would drop multiple fields defined in `payload.meta.browser`, as fields were defined in the struct. - `pyroscope.scrape` no longer tries to scrape endpoints which are not active targets anymore. (@wildum @mattdurham @dehaansa @ptodev) - Fixed a bug with `loki.source.podlogs` not starting in large clusters due to short informer sync timeout. (@elburnetto-intapp) - `prometheus.exporter.windows`: Fixed bug with `exclude` regular expression config arguments which caused missing metrics. (@ptodev) v1.4.2 ----------------- ### Bugfixes - Update windows_exporter from v0.27.2 vo v0.27.3: (@jkroepke) - Fixes a bug where scraping Windows service crashes alloy - Update yet-another-cloudwatch-exporter from v0.60.0 vo v0.61.0: (@morremeyer) - Fixes a bug where cloudwatch S3 metrics are reported as `0` - Issue 1687 - otelcol.exporter.awss3 fails to configure (@cydergoth) - Fix parsing of the Level configuration attribute in debug_metrics config block - Ensure "optional" debug_metrics config block really is optional - Fixed an issue with `loki.process` where `stage.luhn` and `stage.timestamp` would not apply default configuration settings correctly (@thampiotr) - Fixed an issue with `loki.process` where configuration could be reloaded even if there were no changes. (@ptodev, @thampiotr) - Fix issue where `loki.source.kubernetes` took into account all labels, instead of specific logs labels. Resulting in duplication. (@mattdurham) v1.4.1 ----------------- ### Bugfixes - Windows installer: Don't quote Alloy's binary path in the Windows Registry. (@jkroepke) v1.4.0 ----------------- ### Security fixes - Add quotes to windows service path to prevent path interception attack. [CVE-2024-8975](https://grafana.com/security/security-advisories/cve-2024-8975/) (@mattdurham) ### Breaking changes - Some debug metrics for `otelcol` components have changed. (@thampiotr) For example, `otelcol.exporter.otlp`'s `exporter_sent_spans_ratio_total` metric is now `otelcol_exporter_sent_spans_total`. - [otelcol.processor.transform] The functions `convert_sum_to_gauge` and `convert_gauge_to_sum` must now be used in the `metric` `context` rather than in the `datapoint` context. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/34567 (@wildum) - Upgrade Beyla from 1.7.0 to 1.8.2. A complete list of changes can be found on the Beyla releases page: https://github.com/grafana/beyla/releases. (@wildum) It contains a few breaking changes for the component `beyla.ebpf`: - renamed metric `process.cpu.state` to `cpu.mode` - renamed metric `beyla_build_info` to `beyla_internal_build_info` ### Features - Added Datadog Exporter community component, enabling exporting of otel-formatted Metrics and traces to Datadog. (@polyrain) - (_Experimental_) Add an `otelcol.processor.interval` component to aggregate metrics and periodically forward the latest values to the next component in the pipeline. ### Enhancements - Clustering peer resolution through `--cluster.join-addresses` flag has been improved with more consistent behaviour, better error handling and added support for A/AAAA DNS records. If necessary, users can temporarily opt out of this new behaviour with the `--cluster.use-discovery-v1`, but this can only be used as a temporary measure, since this flag will be disabled in future releases. (@thampiotr) - Added a new panel to Cluster Overview dashboard to show the number of peers seen by each instance in the cluster. This can help diagnose cluster split brain issues. (@thampiotr) - Updated Snowflake exporter with performance improvements for larger environments. Also added a new panel to track deleted tables to the Snowflake mixin. (@Caleb-Hurshman) - Add a `otelcol.processor.groupbyattrs` component to reassociate collected metrics that match specified attributes from opentelemetry. (@kehindesalaam) - Update windows_exporter to v0.27.2. (@jkroepke) The `smb.enabled_list` and `smb_client.enabled_list` doesn't have any effect anymore. All sub-collectors are enabled by default. - Live debugging of `loki.process` will now also print the timestamp of incoming and outgoing log lines. This is helpful for debugging `stage.timestamp`. (@ptodev) - Add extra validation in `beyla.ebpf` to avoid panics when network feature is enabled. (@marctc) - A new parameter `aws_sdk_version_v2` is added for the cloudwatch exporters configuration. It enables the use of aws sdk v2 which has shown to have significant performance benefits. (@kgeckhart, @andriikushch) - `prometheus.exporter.cloudwatch` can now collect metrics from custom namespaces via the `custom_namespace` block. (@ptodev) - Add the label `alloy_cluster` in the metric `alloy_config_hash` when the flag `cluster.name` is set to help differentiate between configs from the same alloy cluster or different alloy clusters. (@wildum) - Add support for discovering the cgroup path(s) of a process in `process.discovery`. (@mahendrapaipuri) ### Bugfixes - Fix a bug where the scrape timeout for a Probe resource was not applied, overwriting the scrape interval instead. (@morremeyer, @stefanandres) - Fix a bug where custom components don't always get updated when the config is modified in an imported directory. (@ante012) - Fixed an issue which caused loss of context data in Faro exception. (@codecapitano) - Fixed an issue where providing multiple hostnames or IP addresses via `--cluster.join-addresses` would only use the first provided value. (@thampiotr) - Fixed an issue where providing `:` in `--cluster.join-addresses` would only resolve with DNS to a single address, instead of using all the available records. (@thampiotr) - Fixed an issue where clustering peers resolution via hostname in `--cluster.join-addresses` resolves to duplicated IP addresses when using SRV records. (@thampiotr) - Fixed an issue where the `connection_string` for the `loki.source.azure_event_hubs` component was displayed in the UI in plaintext. (@MorrisWitthein) - Fix a bug in `discovery.*` components where old `targets` would continue to be exported to downstream components. This would only happen if the config for `discovery.*` is reloaded in such a way that no new targets were discovered. (@ptodev, @thampiotr) - Fixed bug in `loki.process` with `sampling` stage where all components use same `drop_counter_reason`. (@captncraig) - Fixed an issue (see https://github.com/grafana/alloy/issues/1599) where specifying both path and key in the remote.vault `path` configuration could result in incorrect URLs. The `path` and `key` arguments have been separated to allow for clear and accurate specification of Vault secrets. (@PatMis16) ### Other - Renamed standard library functions. Old names are still valid but are marked deprecated. (@wildum) - Aliases for the namespaces are deprecated in the Cloudwatch exporter. For example: "s3" is not allowed, "AWS/S3" should be used. Usage of the aliases will generate warnings in the logs. Support for the aliases will be dropped in the upcoming releases. (@kgeckhart, @andriikushch) - Update OTel from v0.105.0 vo v0.108.0: (@wildum) - [`otelcol.receiver.vcenter`] New VSAN metrics. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/33556 - [`otelcol.receiver.kafka`] Add `session_timeout` and `heartbeat_interval` attributes. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/33082 - [`otelcol.processor.transform`] Add `aggregate_on_attributes` function for metrics. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/33334 - [`otelcol.receiver.vcenter`] Enable metrics by default https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/33607 - Updated the docker base image to Ubuntu 24.04 (Noble Numbat). (@mattiasa ) v1.3.4 ----------------- ### Bugfixes - Windows installer: Don't quote Alloy's binary path in the Windows Registry. (@jkroepke) v1.3.2 ----------------- ### Security fixes - Add quotes to windows service path to prevent path interception attack. [CVE-2024-8975](https://grafana.com/security/security-advisories/cve-2024-8975/) (@mattdurham) v1.3.1 ----------------- ### Bugfixes - Changed the cluster startup behaviour, reverting to the previous logic where a failure to resolve cluster join peers results in the node creating its own cluster. This is to facilitate the process of bootstrapping a new cluster following user feedback (@thampiotr) - Fix a memory leak which would occur any time `loki.process` had its configuration reloaded. (@ptodev) v1.3.0 ----------------- ### Breaking changes - [`otelcol.exporter.otlp`,`otelcol.exporter.loadbalancing`]: Change the default gRPC load balancing strategy. The default value for the `balancer_name` attribute has changed to `round_robin` https://github.com/open-telemetry/opentelemetry-collector/pull/10319 ### Breaking changes to non-GA functionality - Update Public preview `remotecfg` argument from `metadata` to `attributes`. (@erikbaranowski) - The default value of the argument `unmatched` in the block `routes` of the component `beyla.ebpf` was changed from `unset` to `heuristic` (@marctc) ### Features - Added community components support, enabling community members to implement and maintain components. (@wildum) - A new `otelcol.exporter.debug` component for printing OTel telemetry from other `otelcol` components to the console. (@BarunKGP) ### Enhancements - Added custom metrics capability to oracle exporter. (@EHSchmitt4395) - Added a success rate panel on the Prometheus Components dashboard. (@thampiotr) - Add namespace field to Faro payload (@cedricziel) - Add the `targets` argument to the `prometheus.exporter.blackbox` component to support passing blackbox targets at runtime. (@wildum) - Add concurrent metric collection to `prometheus.exporter.snowflake` to speed up collection times (@Caleb-Hurshman) - Added live debugging support to `otelcol.processor.*` components. (@wildum) - Add automatic system attributes for `version` and `os` to `remotecfg`. (@erikbaranowski) - Added live debugging support to `otelcol.receiver.*` components. (@wildum) - Added live debugging support to `loki.process`. (@wildum) - Added live debugging support to `loki.relabel`. (@wildum) - Added a `namespace` label to probes scraped by the `prometheus.operator.probes` component to align with the upstream Prometheus Operator setup. (@toontijtgat2) - (_Public preview_) Added rate limiting of cluster state changes to reduce the number of unnecessary, intermediate state updates. (@thampiotr) - Allow setting the CPU profiling event for Java Async Profiler in `pyroscope.java` component (@slbucur) - Update windows_exporter to v0.26.2. (@jkroepke) - `mimir.rules.kubernetes` is now able to add extra labels to the Prometheus rules. (@psychomantys) - `prometheus.exporter.unix` component now exposes hwmon collector config. (@dtrejod) - Upgrade from OpenTelemetry v0.102.1 to v0.105.0. - [`otelcol.receiver.*`] A new `compression_algorithms` attribute to configure which compression algorithms are allowed by the HTTP server. https://github.com/open-telemetry/opentelemetry-collector/pull/10295 - [`otelcol.exporter.*`] Fix potential deadlock in the batch sender. https://github.com/open-telemetry/opentelemetry-collector/pull/10315 - [`otelcol.exporter.*`] Fix a bug when the retry and timeout logic was not applied with enabled batching. https://github.com/open-telemetry/opentelemetry-collector/issues/10166 - [`otelcol.exporter.*`] Fix a bug where an unstarted batch_sender exporter hangs on shutdown. https://github.com/open-telemetry/opentelemetry-collector/issues/10306 - [`otelcol.exporter.*`] Fix small batch due to unfavorable goroutine scheduling in batch sender. https://github.com/open-telemetry/opentelemetry-collector/issues/9952 - [`otelcol.exporter.otlphttp`] A new `cookies` block to store cookies from server responses and reuse them in subsequent requests. https://github.com/open-telemetry/opentelemetry-collector/issues/10175 - [`otelcol.exporter.otlp`] Fixed a bug where the receiver's http response was not properly translating grpc error codes to http status codes. https://github.com/open-telemetry/opentelemetry-collector/pull/10574 - [`otelcol.processor.tail_sampling`] Simple LRU Decision Cache for "keep" decisions. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/33533 - [`otelcol.processor.tail_sampling`] Fix precedence of inverted match in and policy. Previously if the decision from a policy evaluation was `NotSampled` or `InvertNotSampled` it would return a `NotSampled` decision regardless, effectively downgrading the result. This was breaking the documented behaviour that inverted decisions should take precedence over all others. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/33671 - [`otelcol.exporter.kafka`,`otelcol.receiver.kafka`] Add config attribute to disable Kerberos PA-FX-FAST negotiation. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/26345 - [`OTTL`]: Added `keep_matching_keys` function to allow dropping all keys from a map that don't match the pattern. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/32989 - [`OTTL`]: Add debug logs to help troubleshoot OTTL statements/conditions https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/33274 - [`OTTL`]: Introducing `append` function for appending items into an existing array. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/32141 - [`OTTL`]: Introducing `Uri` converter parsing URI string into SemConv https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/32433 - [`OTTL`]: Added a Hex() converter function https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/33450 - [`OTTL`]: Added a IsRootSpan() converter function. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/33729 - [`otelcol.processor.probabilistic_sampler`]: Add Proportional and Equalizing sampling modes. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/31918 - [`otelcol.processor.deltatocumulative`]: Bugfix to properly drop samples when at limit. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/33285 - [`otelcol.receiver.vcenter`] Fixes errors in some of the client calls for environments containing multiple datacenters. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/33735 - [`otelcol.processor.resourcedetection`] Fetch CPU info only if related attributes are enabled. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/33774 - [`otelcol.receiver.vcenter`] Adding metrics for CPU readiness, CPU capacity, and network drop rate. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/33607 - [`otelcol.receiver.vcenter`] Drop support for vCenter 6.7. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/33607 - [`otelcol.processor.attributes`] Add an option to extract value from a client address by specifying `client.address` value in the `from_context` field. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/34048 - `otelcol.connector.spanmetrics`: Produce delta temporality span metrics with StartTimeUnixNano and TimeUnixNano values representing an uninterrupted series. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/31780 - Upgrade Beyla component v1.6.3 to v1.7.0 - Reporting application process metrics - New supported protocols: SQL, Redis, Kafka - Several bugfixes - Full list of changes: https://github.com/grafana/beyla/releases/tag/v1.7.0 - Enable instances connected to remotecfg-compatible servers to Register themselves to the remote service. (@tpaschalis) - Allow in-memory listener to work for remotecfg-supplied components. (@tpaschalis) ### Bugfixes - Fixed a clustering mode issue where a fatal startup failure of the clustering service would exit the service silently, without also exiting the Alloy process. (@thampiotr) - Fix a bug which prevented config reloads to work if a Loki `metrics` stage is in the pipeline. Previously, the reload would fail for `loki.process` without an error in the logs and the metrics from the `metrics` stage would get stuck at the same values. (@ptodev) v1.2.1 ----------------- ### Bugfixes - Fixed an issue with `loki.source.kubernetes_events` not starting in large clusters due to short informer sync timeout. (@nrwiersma) - Updated [ckit](https://github.com/grafana/ckit) to fix an issue with armv7 panic on startup when forming a cluster. (@imavroukakis) - Fixed a clustering mode issue where a failure to perform static peers discovery did not result in a fatal failure at startup and could lead to potential split-brain issues. (@thampiotr) ### Other - Use Go 1.22.5 for builds. (@mattdurham) v1.2.0 ----------------- ### Security fixes - Fixes the following vulnerabilities (@ptodev): - [CVE-2024-35255](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-35255) - [CVE-2024-36129](https://avd.aquasec.com/nvd/2024/cve-2024-36129/) ### Breaking changes - Updated OpenTelemetry to v0.102.1. (@mattdurham) - Components `otelcol.receiver.otlp`,`otelcol.receiver.zipkin`,`otelcol.extension.jaeger_remote_sampling`, and `otelcol.receiver.jaeger` setting `max_request_body_size` default changed from unlimited size to `20MiB`. This is due to [CVE-2024-36129](https://github.com/open-telemetry/opentelemetry-collector/security/advisories/GHSA-c74f-6mfw-mm4v). ### Breaking changes to non-GA functionality - Update Public preview `remotecfg` to use `alloy-remote-config` instead of `agent-remote-config`. The API has been updated to use the term `collector` over `agent`. (@erikbaranowski) - Component `otelcol.receiver.vcenter` removed `vcenter.host.network.packet.errors`, `vcenter.host.network.packet.count`, and `vcenter.vm.network.packet.count`. - `vcenter.host.network.packet.errors` replaced by `vcenter.host.network.packet.error.rate`. - `vcenter.host.network.packet.count` replaced by `vcenter.host.network.packet.rate`. - `vcenter.vm.network.packet.count` replaced by `vcenter.vm.network.packet.rate`. ### Features - Add an `otelcol.exporter.kafka` component to send OTLP metrics, logs, and traces to Kafka. - Added `live debugging` to the UI. Live debugging streams data as they flow through components for debugging telemetry data. Individual components must be updated to support live debugging. (@wildum) - Added live debugging support for `prometheus.relabel`. (@wildum) - (_Experimental_) Add a `otelcol.processor.deltatocumulative` component to convert metrics from delta temporality to cumulative by accumulating samples in memory. (@rfratto) - (_Experimental_) Add an `otelcol.receiver.datadog` component to receive metrics and traces from Datadog. (@carrieedwards, @jesusvazquez, @alexgreenbank, @fedetorres93) - Add a `prometheus.exporter.catchpoint` component to collect metrics from Catchpoint. (@bominrahmani) - Add the `-t/--test` flag to `alloy fmt` to check if a alloy config file is formatted correctly. (@kavfixnel) ### Enhancements - (_Public preview_) Add native histogram support to `otelcol.receiver.prometheus`. (@wildum) - (_Public preview_) Add metrics to report status of `remotecfg` service. (@captncraig) - Added `scrape_protocols` option to `prometheus.scrape`, which allows to control the preferred order of scrape protocols. (@thampiotr) - Add support for configuring CPU profile's duration scraped by `pyroscope.scrape`. (@hainenber) - `prometheus.exporter.snowflake`: Add support for RSA key-pair authentication. (@Caleb-Hurshman) - Improved filesystem error handling when working with `loki.source.file` and `local.file_match`, which removes some false-positive error log messages on Windows (@thampiotr) - Updates `processor/probabilistic_sampler` to use new `FailedClosed` field from OTEL release v0.101.0. (@StefanKurek) - Updates `receiver/vcenter` to use new features and bugfixes introduced in OTEL releases v0.100.0 and v0.101.0. Refer to the [v0.100.0](https://github.com/open-telemetry/opentelemetry-collector-contrib/releases/tag/v0.100.0) and [v0.101.0](https://github.com/open-telemetry/opentelemetry-collector-contrib/releases/tag/v0.101.0) release notes for more detailed information. Changes that directly affected the configuration are as follows: (@StefanKurek) - The resource attribute `vcenter.datacenter.name` has been added and enabled by default for all resource types. - The resource attribute `vcenter.virtual_app.inventory_path` has been added and enabled by default to differentiate between resource pools and virtual apps. - The resource attribute `vcenter.virtual_app.name` has been added and enabled by default to differentiate between resource pools and virtual apps. - The resource attribute `vcenter.vm_template.id` has been added and enabled by default to differentiate between virtual machines and virtual machine templates. - The resource attribute `vcenter.vm_template.name` has been added and enabled by default to differentiate between virtual machines and virtual machine templates. - The metric `vcenter.cluster.memory.used` has been removed. - The metric `vcenter.vm.network.packet.drop.rate` has been added and enabled by default. - The metric `vcenter.cluster.vm_template.count` has been added and enabled by default. - Add `yaml_decode` to standard library. (@mattdurham, @djcode) - Allow override debug metrics level for `otelcol.*` components. (@hainenber) - Add an initial lower limit of 10 seconds for the the `poll_frequency` argument in the `remotecfg` block. (@tpaschalis) - Add a constant jitter to `remotecfg` service's polling. (@tpaschalis) - Added support for NS records to `discovery.dns`. (@djcode) - Improved clustering use cases for tracking GCP delta metrics in the `prometheus.exporter.gcp` (@kgeckhart) - Add the `targets` argument to the `prometheus.exporter.snmp` component to support passing SNMP targets at runtime. (@wildum) - Prefix Faro measurement values with `value_` to align with the latest Faro cloud receiver updates. (@codecapitano) - Add `base64_decode` to standard library. (@hainenber) - Updated OpenTelemetry Contrib to [v0.102.0](https://github.com/open-telemetry/opentelemetry-collector-contrib/releases/tag/v0.102.0). (@mattdurham) - `otelcol.processor.resourcedetection`: Added a `tags` config argument to the `azure` detection mechanism. It exposes regex-matched Azure resource tags as OpenTelemetry resource attributes. - A new `snmp_context` configuration argument for `prometheus.exporter.snmp` which overrides the `context_name` parameter in the SNMP configuration file. (@ptodev) - Add extra configuration options for `beyla.ebpf` to select Kubernetes objects to monitor. (@marctc) ### Bugfixes - Fixed an issue with `prometheus.scrape` in which targets that move from one cluster instance to another could have a staleness marker inserted and result in a gap in metrics (@thampiotr) - Fix panic when `import.git` is given a revision that does not exist on the remote repo. (@hainenber) - Fixed an issue with `loki.source.docker` where collecting logs from targets configured with multiple networks would result in errors. (@wildum) - Fixed an issue where converting OpenTelemetry Collector configs with unused telemetry types resulted in those types being explicitly configured with an empty array in `output` blocks, rather than them being omitted entirely. (@rfratto) ### Other changes - `pyroscope.ebpf`, `pyroscope.java`, `pyroscope.scrape`, `pyroscope.write` and `discovery.process` components are now GA. (@korniltsev) - `prometheus.exporter.snmp`: Updating SNMP exporter from v0.24.1 to v0.26.0. (@ptodev, @erikbaranowski) - `prometheus.scrape` component's `enable_protobuf_negotiation` argument is now deprecated and will be removed in a future major release. Use `scrape_protocols` instead and refer to `prometheus.scrape` reference documentation for further details. (@thampiotr) - Updated Prometheus dependency to [v2.51.2](https://github.com/prometheus/prometheus/releases/tag/v2.51.2) (@thampiotr) - Upgrade Beyla from v1.5.1 to v1.6.3. (@marctc) v1.1.1 ------ ### Bugfixes - Fix panic when component ID contains `/` in `otelcomponent.MustNewType(ID)`.(@qclaogui) - Exit Alloy immediately if the port it runs on is not available. This port can be configured with `--server.http.listen-addr` or using the default listen address`127.0.0.1:12345`. (@mattdurham) - Fix a panic in `loki.source.docker` when trying to stop a target that was never started. (@wildum) - Fix error on boot when using IPv6 advertise addresses without explicitly specifying a port. (@matthewpi) - Fix an issue where having long component labels (>63 chars) on otelcol.auth components lead to a panic. (@tpaschalis) - Update `prometheus.exporter.snowflake` with the [latest](https://github.com/grafana/snowflake-prometheus-exporter) version of the exporter as of May 28, 2024 (@StefanKurek) - Fixes issue where returned `NULL` values from database could cause unexpected errors. - Bubble up SSH key conversion error to facilitate failed `import.git`. (@hainenber) v1.1.0 ------ ### Features - (_Public preview_) Add support for setting GOMEMLIMIT based on cgroup setting. (@mattdurham) - (_Experimental_) A new `otelcol.exporter.awss3` component for sending telemetry data to a S3 bucket. (@Imshelledin21) - (_Public preview_) Introduce BoringCrypto Docker images. The BoringCrypto image is tagged with the `-boringcrypto` suffix and is only available on AMD64 and ARM64 Linux containers. (@rfratto, @mattdurham) - (_Public preview_) Introduce `boringcrypto` release assets. BoringCrypto builds are publshed for Linux on AMD64 and ARM64 platforms. (@rfratto, @mattdurham) - `otelcol.exporter.loadbalancing`: Add a new `aws_cloud_map` resolver. (@ptodev) - Introduce a `otelcol.receiver.file_stats` component from the upstream OpenTelemetry `filestatsreceiver` component. (@rfratto) ### Enhancements - Update `prometheus.exporter.kafka` with the following functionalities (@wildum): * GSSAPI config * enable/disable PA_FX_FAST * set a TLS server name * show the offset/lag for all consumer group or only the connected ones * set the minimum number of topics to monitor * enable/disable auto-creation of requested topics if they don't already exist * regex to exclude topics / groups * added metric kafka_broker_info - In `prometheus.exporter.kafka`, the interpolation table used to compute estimated lag metrics is now pruned on `metadata_refresh_interval` instead of `prune_interval_seconds`. (@wildum) - Don't restart tailers in `loki.source.kubernetes` component by above-average time deltas if K8s version is >= 1.29.1 (@hainenber) - In `mimir.rules.kubernetes`, add support for running in a cluster of Alloy instances by electing a single instance as the leader for the `mimir.rules.kubernetes` component to avoid conflicts when making calls to the Mimir API. (@56quarters) - Add the possibility of setting custom labels for the AWS Firehose logs via `X-Amz-Firehose-Common-Attributes` header. (@andriikushch) ### Bugfixes - Fixed issue with defaults for Beyla component not being applied correctly. (marctc) - Fix an issue on Windows where uninstalling Alloy did not remove it from the Add/Remove programs list. (@rfratto) - Fixed issue where text labels displayed outside of component node's boundary. (@hainenber) - Fix a bug where a topic was claimed by the wrong consumer type in `otelcol.receiver.kafka`. (@wildum) - Fix an issue where nested import.git config blocks could conflict if they had the same labels. (@wildum) - In `mimir.rules.kubernetes`, fix an issue where unrecoverable errors from the Mimir API were retried. (@56quarters) - Fix an issue where `faro.receiver`'s `extra_log_labels` with empty value don't map existing value in log line. (@hainenber) - Fix an issue where `prometheus.remote_write` only queued data for sending every 15 seconds instead of as soon as data was written to the WAL. (@rfratto) - Imported code using `slog` logging will now not panic and replay correctly when logged before the logging config block is initialized. (@mattdurham) - Fix a bug where custom components would not shadow the stdlib. If you have a module whose name conflicts with an stdlib function and if you use this exact function in your config, then you will need to rename your module. (@wildum) - Fix an issue where `loki.source.docker` stops collecting logs after a container restart. (@wildum) - Upgrading `pyroscope/ebpf` from 0.4.6 to 0.4.7 (@korniltsev): * detect libc version properly when libc file name is libc-2.31.so and not libc.so.6 * treat elf files with short build id (8 bytes) properly ### Other changes - Update `alloy-mixin` to use more specific alert group names (for example, `alloy_clustering` instead of `clustering`) to avoid collision with installs of `agent-flow-mixin`. (@rfratto) - Upgrade Beyla from v1.4.1 to v1.5.1. (@marctc) - Add a description to Alloy DEB and RPM packages. (@rfratto) - Allow `pyroscope.scrape` to scrape `alloy.internal:12345`. (@hainenber) - The latest Windows Docker image is now pushed as `nanoserver-1809` instead of `latest-nanoserver-1809`. The old tag will no longer be updated, and will be removed in a future release. (@rfratto) - The log level of `finished node evaluation` log lines has been decreased to 'debug'. (@tpaschalis) - Update post-installation scripts for DEB/RPM packages to ensure `/var/lib/alloy` exists before configuring its permissions and ownership. (@rfratto) - Remove setcap for `cap_net_bind_service` to allow alloy to run in restricted environments. Modern container runtimes allow binding to unprivileged ports as non-root. (@BlackDex) - Upgrading from OpenTelemetry v0.96.0 to v0.99.0. - `otelcol.processor.batch`: Prevent starting unnecessary goroutines. https://github.com/open-telemetry/opentelemetry-collector/issues/9739 - `otelcol.exporter.otlp`: Checks for port in the config validation for the otlpexporter. https://github.com/open-telemetry/opentelemetry-collector/issues/9505 - `otelcol.receiver.otlp`: Fix bug where the otlp receiver did not properly respond with a retryable error code when possible for http. https://github.com/open-telemetry/opentelemetry-collector/pull/9357 - `otelcol.receiver.vcenter`: Fixed the resource attribute model to more accurately support multi-cluster deployments. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/30879 For more information on impacts please refer to: https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/31113 The main impact is that `vcenter.resource_pool.name`, `vcenter.resource_pool.inventory_path`, and `vcenter.cluster.name` are reported with more accuracy on VM metrics. - `otelcol.receiver.vcenter`: Remove the `vcenter.cluster.name` resource attribute from Host resources if the Host is standalone (no cluster). https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/32548 - `otelcol.receiver.vcenter`: Changes process for collecting VMs & VM perf metrics to be more efficient (one call now for all VMs). https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/31837 - `otelcol.connector.servicegraph`: Added a new `database_name_attribute` config argument to allow users to specify a custom attribute name for identifying the database name in span attributes. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/30726 - `otelcol.connector.servicegraph`: Fix 'failed to find dimensions for key' error from race condition in metrics cleanup. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/31701 - `otelcol.connector.spanmetrics`: Add `metrics_expiration` option to enable expiration of metrics if spans are not received within a certain time frame. By default, the expiration is disabled (set to 0). https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/30559 - `otelcol.connector.spanmetrics`: Change default value of `metrics_flush_interval` from 15s to 60s. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/31776 - `otelcol.connector.spanmetrics`: Discard counter span metric exemplars after each flush interval to avoid unbounded memory growth. This aligns exemplar discarding for counter span metrics with the existing logic for histogram span metrics. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/31683 - `otelcol.exporter.loadbalancing`: Fix panic when a sub-exporter is shut down while still handling requests. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/31410 - `otelcol.exporter.loadbalancing`: Fix memory leaks on shutdown. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/31050 - `otelcol.exporter.loadbalancing`: Support the timeout period of k8s resolver list watch can be configured. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/31757 - `otelcol.processor.transform`: Change metric unit for metrics extracted with `extract_count_metric()` to be the default unit (`1`). https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/31575 - `otelcol.receiver.opencensus`: Refactor the receiver to pass lifecycle tests and avoid leaking gRPC connections. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/31643 - `otelcol.extension.jaeger_remote_sampling`: Fix leaking goroutine on shutdown. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/31157 - `otelcol.receiver.kafka`: Fix panic on shutdown. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/31926 - `otelcol.processor.resourcedetection`: Only attempt to detect Kubernetes node resource attributes when they're enabled. https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/31941 - `otelcol.processor.resourcedetection`: Fix memory leak on AKS. https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/32574 - `otelcol.processor.resourcedetection`: Update to ec2 scraper so that core attributes are not dropped if describeTags returns an error (likely due to permissions). https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/30672 - Use Go 1.22.3 for builds. (@kminehart) v1.0.0 ------ ### Features - Support for programmable pipelines using a rich expression-based syntax. - Over 130 components for processing, transforming, and exporting telemetry data. - Native support for Kubernetes and Prometheus Operator without needing to deploy or learn a separate Kubernetes operator. - Support for creating and sharing custom components. - Support for forming a cluster of Alloy instances for automatic workload distribution. - (_Public preview_) Support for receiving configuration from a server for centralized configuration management. - A built-in UI for visualizing and debugging pipelines. [contributors guide]: ./docs/developer/contributing.md#updating-the-changelog