Skip to content

feat(database_observability): Set query_sample, wait_event timestamps at query start for MySQL#6291

Merged
fridgepoet merged 6 commits into
mainfrom
shirley/query-sample-trace-align-derive
Jun 2, 2026
Merged

feat(database_observability): Set query_sample, wait_event timestamps at query start for MySQL#6291
fridgepoet merged 6 commits into
mainfrom
shirley/query-sample-trace-align-derive

Conversation

@fridgepoet

@fridgepoet fridgepoet commented May 21, 2026

Copy link
Copy Markdown
Contributor

Brief description of Pull Request

This PR changes the query_sample collectors to log timestamps at query start time.

In the context of application traces, traces start their span at query start time. The DB O11y app's trace linkage navigates to the trace's start time on the timeline, so the previous end timestamp query_sample point in the UI can appear too late.

This fix changes the timestamp of the log to the start time for the MySQL query_sample collector.

Issue(s) fixed by this Pull Request

Contributes to https://github.com/grafana/grafana-dbo11y-app/issues/2818

Notes to the Reviewer

To test this manually, application trace timestamps for queries were compared and found similar to op=query_sample log timestamps.

PR Checklist

  • Documentation added
  • Tests updated
  • Config converters updated

@fridgepoet fridgepoet changed the title feat(database_observability): align query_sample timestamp with trace span start feat(database_observability): set query_sample timestamp at query start May 21, 2026
@fridgepoet fridgepoet changed the title feat(database_observability): set query_sample timestamp at query start feat(database_observability): Set query_sample timestamp at query start May 21, 2026
… span start

The query_sample collectors stamp Loki entries at end-of-query time, but
application traces start their span at query *start* time. The DB O11y
app's trace linkage navigates to the trace's start time on the timeline,
so the query_sample dot lands later than the trace span by the duration
of the query.
@fridgepoet fridgepoet force-pushed the shirley/query-sample-trace-align-derive branch from a7769a7 to ed6c453 Compare May 21, 2026 16:15
@fridgepoet fridgepoet changed the title feat(database_observability): Set query_sample timestamp at query start feat(database_observability): Set query_sample, wait_event timestamps at query start May 21, 2026
@fridgepoet fridgepoet marked this pull request as ready for review May 21, 2026 16:21
@fridgepoet fridgepoet requested a review from a team May 21, 2026 16:21
@gaantunes

Copy link
Copy Markdown
Contributor

Mysql looks clean, but the Postgres part will cause a few issues. My PR is touching some of the same code lines, and fixing your problem statement there seems easier than syncing our work, and it could be merged independently this way as well. I propose that you just touch MySQL here, and I will fix the issue for postgres in my PR. WDYT?

gaantunes added a commit that referenced this pull request May 21, 2026
… timestamps on query_start

Folds the postgres half of #6291 into this PR since both PRs edit the
same emit block in emitAndDeleteSample. The query_sample and wait_event
log entries now stamp at state.LastRow.QueryStart (falling back to
LastSeenAt) so they line up with the application trace span's start on
the timeline; the DB O11y app navigates to trace start, and the prior
EndAt/LastTimestamp anchors landed the dots after the span.

All wait_event entries for one query share the sample's query_start,
which collapses the temporal ordering of multi-wait queries onto the
query_start anchor — distinguishability remains in the wait_event_type,
wait_event, and blocked_by_pids labels. wait_time magnitude is the
correctly-bounded per-occurrence window from the rest of this PR; with
the query_start anchor it no longer composes with the timestamp to
locate the wait on the timeline, but reads correctly as a duration.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@gaantunes

Copy link
Copy Markdown
Contributor

Done in 3187dbf

@fridgepoet fridgepoet changed the title feat(database_observability): Set query_sample, wait_event timestamps at query start feat(database_observability): Set query_sample, wait_event timestamps at query start for MySQL May 22, 2026
@fridgepoet

Copy link
Copy Markdown
Contributor Author

Ok, I removed my changes for Postgres here.
@gaantunes I suggest we can just follow up with a Postgres PR for this separately rather than add it to your changes. That'll keep your PR focused. Happy to follow up on this.

@gaantunes

Copy link
Copy Markdown
Contributor

Ok, I removed my changes for Postgres here. @gaantunes I suggest we can just follow up with a Postgres PR for this separately rather than add it to your changes. That'll keep your PR focused. Happy to follow up on this.

I think it is fine, still a smallish PR.

@fridgepoet

Copy link
Copy Markdown
Contributor Author

I think it is fine, still a smallish PR.

Yeah, I’d still lean toward separating unrelated changes when possible. Keeping the scope of a PR focused makes it easier to review and reason about, and it also keeps the history cleaner for future debugging or reverts if something goes wrong.

@fridgepoet fridgepoet merged commit a47de00 into main Jun 2, 2026
50 checks passed
@fridgepoet fridgepoet deleted the shirley/query-sample-trace-align-derive branch June 2, 2026 11:28
fridgepoet added a commit that referenced this pull request Jun 3, 2026
…rt for Postgres (#6393)

<!--
  CONTRIBUTORS GUIDE:

https://github.com/grafana/alloy/blob/main/docs/developer/contributing.md

If this is your first PR or you have not contributed in a while, we
recommend
  taking the time to review the guide.

  **NOTE**
Your PR title must adhere to Conventional Commit style with a
capitalized
description, e.g. `feat(scope): Add the thing` (not `add the thing`).
For
  details on this, check out the Contributors Guide linked above.
-->

### Brief description of Pull Request

Similar to #6291, this PR changes
the query_sample collectors to log timestamps at query start time.

In the context of application traces, traces start their span at query
start time. The DB O11y app's trace linkage navigates to the trace's
start time on the timeline, so the previous end timestamp query_sample
point in the UI can appear too late.

This fix changes the timestamp of the log to the start time for the
Postgres query_sample collector.

### Issue(s) fixed by this Pull Request

Closes grafana/grafana-dbo11y-app#2818

### Notes to the Reviewer

To test this manually, application trace timestamps for queries were
compared and found similar to op=query_sample log timestamps.

* Built and ran these changes locally, pointing to a DB in the cloud,
collecting telemetry to a personal Grafana Cloud stack
* An unchanged Alloy was also collecting from the same DB in the cloud,
sending to another Grafana Cloud stack
* I found log lines for the same query on both stacks (same
trace-id-span-id comment)
* Comparing the log timestamps, I can see this PR changes it to be at
the start time. (query execution was 10s, so the difference between both
log timestamps was indeed confirmed as 10s)


### PR Checklist

<!-- Remove items that do not apply. For completed items, change [ ] to
[x]. -->

- [ ] Documentation added
- [x] Tests updated
- [ ] Config converters updated
kgeckhart pushed a commit that referenced this pull request Jun 12, 2026
🤖 I have created a release *beep* *boop*
---


## [1.17.0](v1.16.0...v1.17.0)
(2026-06-11)


### Features 🌟

* Add gql subcommand
([#6242](#6242))
([ec09c43](ec09c43))
* **database_observability.mysql:** Add
database_observability_wait_event_seconds_total counter
([#6106](#6106))
([602b0b5](602b0b5))
* **database_observability.mysql:** Refactor bulk table metadata
collection ([#6222](#6222))
([e8d441b](e8d441b))
* **database_observability.mysql:** Refactor schema_details logging
strategy ([#6239](#6239))
([fd51530](fd51530))
* **database_observability.postgres:** Add `exclude_current_user`
top-level setting
([#6187](#6187))
([f019b5e](f019b5e))
* **database_observability.postgres:** Improve monitoring user
privileges check ([#6177](#6177))
([96b50d1](96b50d1))
* **database_observability.postgres:** Make health_check respect
user/database exclusions settings
([#6144](#6144))
([b4ee0a7](b4ee0a7))
* **database_observability.postgres:** Throttle schema details
create_statement logs
([#6260](#6260))
([fcb3d3e](fcb3d3e))
* **database_observability:** Add wait_event_v2 op with pre-classified
wait_event_type ([#6105](#6105))
([f7a1ebd](f7a1ebd))
* **database_observability:** Always extract traceparent in MySQL
query_samples collector
([#6081](#6081))
([bf2b436](bf2b436))
* **database_observability:** Always extract traceparent in Postgres
query_samples collector
([#6411](#6411))
([74d595a](74d595a))
* **database_observability:** Set query_sample, wait_event timestamps at
query start for MySQL
([#6291](#6291))
([a47de00](a47de00))
* **database_observability:** Set timestamp query_sample at query start
for Postgres ([#6393](#6393))
([62d8ecc](62d8ecc))
* **database_observability:** Update wait_event_v2 to a 6-bucket
taxonomy and surface Mysql nested events
([#6143](#6143))
([3df9542](3df9542))
* **faro.receiver:** Support gzip-compressed request bodies
([#6195](#6195))
([4fa44d2](4fa44d2))
* GraphQL server ([#5580](#5580))
([5a2562f](5a2562f))
* **helm:** Support externally-managed HPAs via
controller.autoscaling.horizontal.externalHPA
([#6311](#6311))
([a1e61c7](a1e61c7))
* Integration tests for aws firehose and cloudflare logpull
([#6089](#6089))
([f55f780](f55f780))
* Integration tests for loki.source.azure_event_hubs
([#6113](#6113))
([8e40165](8e40165))
* Integration tests for loki.source.gcplog
([#6161](#6161))
([feceb8d](feceb8d))
* **loki.process:** Add regex field to logfmt and json stages
([#4941](#4941))
([cfbabda](cfbabda))
* **loki.rules.kubernetes:** Add external_labels support
([#6320](#6320))
([9166a61](9166a61))
* **loki.source.heroku:** Drop github.com/heroku/x package
([#6064](#6064))
([3382721](3382721))
* Migrate from Docker to Moby
([#6167](#6167))
([1e2bbf9](1e2bbf9))
* **mimir.rules.kubernetes, loki.rules.kubernetes:** Add configurable
`mimir_namespace_separator` and `loki_namespace_separator` arguments to
allow using a URL-safe separator
([#5961](#5961))
([7dba4f1](7dba4f1))
* **otelcol.exporter.prometheus:** Config option to prevent stripping
`service.*` attributes
([#6434](#6434))
([c229b3c](c229b3c))
* **otelcol.exporter.prometheus:** Convert classic histograms to NHCB
([#6281](#6281))
([46f4fb6](46f4fb6))
* **otelcol:** Add Nginx receiver
([#6141](#6141))
([fa8d520](fa8d520))
* **prometheus.enrich:** Support multi-label matching
([#5822](#5822))
([04a1aba](04a1aba))
* **prometheus.relabel:** Add opt-in TTL cache mode
([#6169](#6169))
([40632c3](40632c3))
* **telemetry:** Add graph connection metrics
([#6243](#6243))
([4f3bbbe](4f3bbbe))
* **telemetry:** Add pyroscope_forwarded_entries_total metric
([#6244](#6244))
([65ad64c](65ad64c))
* Update to Beyla 3.9.7
([#6175](#6175))
([4015bd9](4015bd9))
* Update to Beyla 3.9.8
([#6189](#6189))
([6fffa30](6fffa30))


### Bug Fixes 🐛

* Address Critical CVE's From Scanner
([#6232](#6232))
([e713e7a](e713e7a))
* **alloycli:** Use filepath.Base for CLI Use name to fix shell
completions ([#6217](#6217))
([17cfd01](17cfd01))
* **cluster:** Fix nodes failing to join the cluster when TLS is enabled
([#6437](#6437))
([efbad6d](efbad6d))
* **database_observability.mysql:** Exclude system schemas from MySQL
health check ([#6116](#6116))
([fcae6f4](fcae6f4))
* **database_observability.postgres:** Count error logs when
log_timezone is non-UTC
([#6274](#6274))
([2eaa769](2eaa769))
* **database_observability.postgres:** Do not retain query text in
`explain_plans` collector
([#6461](#6461))
([4c06a64](4c06a64))
* **database_observability:** Exclude more explain plan output keywords
([#6145](#6145))
([3ff6c14](3ff6c14))
* **deb:** Restart Alloy only on upgrade in postinst script
([#6094](#6094))
([8c15cb3](8c15cb3))
* **deps:** Pin dependencies
([#6376](#6376))
([79323b5](79323b5))
* **deps:** Update dependencies for catchpoint, databricks, and
snowflake exporters
([#6188](#6188))
([c1b740c](c1b740c))
* **deps:** Update module go.opentelemetry.io/obi to v0.8.0 [SECURITY]
([#6091](#6091))
([05c14af](05c14af))
* **documentation:** Fix documentation for loki.rules.kubernetes
([#6088](#6088))
([61f2b8a](61f2b8a))
* Enforce Singleton For Running Alloy Extension Instances
([#5763](#5763))
([83da6f0](83da6f0))
* **faro:** Abort on context cancelation
([#6104](#6104))
([bf733a6](bf733a6))
* Fix bug that caused 'logging' block's 'write_to' to be used after
config update even if not set
([#6264](#6264))
([cba7243](cba7243))
* **graphql:** Update cli flags for consistency
([#6441](#6441))
([7749d4f](7749d4f))
* **helm:** Honor alloy.configMap.key in templates/configmap.yaml
([#6312](#6312))
([415af2c](415af2c))
* **integration-tests:** Forward GO_TAGS to k8s integration tests
([#6220](#6220))
([b00f79c](b00f79c))
* **logging:** Fix startup deadlock when components log before logging
config is evaluated
([#6112](#6112))
([6cdce9e](6cdce9e))
* **loki.process:** Make limit stage shutdown cancelable
([#6215](#6215))
([20717b5](20717b5))
* **loki.process:** New `action_on_duplicate_timestamp` config attribute
to fudge identical log timestamps
([#5615](#5615))
([7d56f50](7d56f50))
* **loki.process:** No longer mutate rules in stage.truncate causing
every config update to reload pipeline when this stage is used
([#6271](#6271))
([b52a4d8](b52a4d8))
* **loki.process:** Potential deadlock on update with stage and receiver
changes ([#6270](#6270))
([cb22e82](cb22e82))
* **loki.process:** Wrap NewPipeline error correctly in match stage
([#6216](#6216))
([f3af2dd](f3af2dd))
* **loki.rules.kubernetes:** Add timeout to ruler sync calls
([26170d4](26170d4))
* **loki.source.syslog:** Fix goroutine leak in UDP listener
([#6231](#6231))
([268b260](268b260))
* **loki:** Clone structured metadata so we can perform fan-out
correctly ([#6138](#6138))
([473244d](473244d))
* **oracledb_exporter:** Support CGO_ENABLED=0 cross-compilation
([#6168](#6168))
([63ab53d](63ab53d))
* **otelcol.exporter.awss3:** Add missing `unique_key_func_name`
attribute ([#6184](#6184))
([9ad2b44](9ad2b44))
* **prometheus.exporter.oracledb:** Fix issue with custom metrics not
appearing when more than one instance of prometheus.exporter.oracledb is
used ([#6228](#6228))
([57de4f4](57de4f4))
* **prometheus.operator.*:** Pass ScrapeNativeHistograms to
ScrapeOptions ([#6356](#6356))
([a44fced](a44fced))
* **remotewrite:** Use blocking send with timeout in test server
([#6208](#6208))
([a279088](a279088))
* **security:** Update module github.com/jackc/pgx/v5 to v5.9.2
[SECURITY] ([#6326](#6326))
([bf3ff2e](bf3ff2e))
* **security:** Update x/crypto and x/net for CVEs
([#6336](#6336))
([4c7b93b](4c7b93b))
* **ui:** Reduce UI dependencies
([#6349](#6349))
([85e12ba](85e12ba))
* **ui:** Update dependency minor versions
([#6288](#6288))
([52a28d2](52a28d2))
* Update go to v1.26.4
([#6418](#6418))
([51fb7d2](51fb7d2))
* **validation:** Improve type checking of ast.LiteralExpr
([#5916](#5916))
([d0a1177](d0a1177))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: grafana-alloybot[bot] <167359181+grafana-alloybot[bot]@users.noreply.github.com>
dadezzz pushed a commit to dadezzz/infra_docker-compose that referenced this pull request Jun 15, 2026
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [docker.io/grafana/alloy](https://github.com/grafana/alloy) | minor | `v1.16.3` → `v1.17.0` |

---

### Release Notes

<details>
<summary>grafana/alloy (docker.io/grafana/alloy)</summary>

### [`v1.17.0`](https://github.com/grafana/alloy/releases/tag/v1.17.0)

[Compare Source](grafana/alloy@v1.16.3...v1.17.0)

##### Features 🌟

- Add gql subcommand ([#&#8203;6242](grafana/alloy#6242)) ([ec09c43](grafana/alloy@ec09c43)) ([@&#8203;jharvey10](https://github.com/jharvey10))
- **database\_observability.mysql:** Add database\_observability\_wait\_event\_seconds\_total counter ([#&#8203;6106](grafana/alloy#6106)) ([602b0b5](grafana/alloy@602b0b5)) ([@&#8203;gaantunes](https://github.com/gaantunes))
- **database\_observability.mysql:** Refactor bulk table metadata collection ([#&#8203;6222](grafana/alloy#6222)) ([e8d441b](grafana/alloy@e8d441b)) ([@&#8203;cristiangreco](https://github.com/cristiangreco))
- **database\_observability.mysql:** Refactor schema\_details logging strategy ([#&#8203;6239](grafana/alloy#6239)) ([fd51530](grafana/alloy@fd51530)) ([@&#8203;cristiangreco](https://github.com/cristiangreco))
- **database\_observability.postgres:** Add `exclude_current_user` top-level setting ([#&#8203;6187](grafana/alloy#6187)) ([f019b5e](grafana/alloy@f019b5e)) ([@&#8203;cristiangreco](https://github.com/cristiangreco), [@&#8203;matthewnolf](https://github.com/matthewnolf))
- **database\_observability.postgres:** Improve monitoring user privileges check ([#&#8203;6177](grafana/alloy#6177)) ([96b50d1](grafana/alloy@96b50d1)) ([@&#8203;cristiangreco](https://github.com/cristiangreco))
- **database\_observability.postgres:** Make health\_check respect user/database exclusions settings ([#&#8203;6144](grafana/alloy#6144)) ([b4ee0a7](grafana/alloy@b4ee0a7)) ([@&#8203;cristiangreco](https://github.com/cristiangreco))
- **database\_observability.postgres:** Throttle schema details create\_statement logs ([#&#8203;6260](grafana/alloy#6260)) ([fcb3d3e](grafana/alloy@fcb3d3e)) ([@&#8203;cristiangreco](https://github.com/cristiangreco))
- **database\_observability:** Add wait\_event\_v2 op with pre-classified wait\_event\_type ([#&#8203;6105](grafana/alloy#6105)) ([f7a1ebd](grafana/alloy@f7a1ebd)) ([@&#8203;gaantunes](https://github.com/gaantunes))
- **database\_observability:** Always extract traceparent in MySQL query\_samples collector ([#&#8203;6081](grafana/alloy#6081)) ([bf2b436](grafana/alloy@bf2b436)) ([@&#8203;fridgepoet](https://github.com/fridgepoet))
- **database\_observability:** Always extract traceparent in Postgres query\_samples collector ([#&#8203;6411](grafana/alloy#6411)) ([74d595a](grafana/alloy@74d595a)) ([@&#8203;fridgepoet](https://github.com/fridgepoet))
- **database\_observability:** Set query\_sample, wait\_event timestamps at query start for MySQL ([#&#8203;6291](grafana/alloy#6291)) ([a47de00](grafana/alloy@a47de00)) ([@&#8203;fridgepoet](https://github.com/fridgepoet))
- **database\_observability:** Set timestamp query\_sample at query start for Postgres ([#&#8203;6393](grafana/alloy#6393)) ([62d8ecc](grafana/alloy@62d8ecc)) ([@&#8203;fridgepoet](https://github.com/fridgepoet))
- **database\_observability:** Update wait\_event\_v2 to a 6-bucket taxonomy and surface Mysql nested events ([#&#8203;6143](grafana/alloy#6143)) ([3df9542](grafana/alloy@3df9542)) ([@&#8203;gaantunes](https://github.com/gaantunes), [@&#8203;cristiangreco](https://github.com/cristiangreco))
- **faro.receiver:** Support gzip-compressed request bodies ([#&#8203;6195](grafana/alloy#6195)) ([4fa44d2](grafana/alloy@4fa44d2)) ([@&#8203;d0ugal](https://github.com/d0ugal))
- GraphQL server ([#&#8203;5580](grafana/alloy#5580)) ([5a2562f](grafana/alloy@5a2562f)) ([@&#8203;jharvey10](https://github.com/jharvey10))
- **helm:** Support externally-managed HPAs via controller.autoscaling.horizontal.externalHPA ([#&#8203;6311](grafana/alloy#6311)) ([a1e61c7](grafana/alloy@a1e61c7)) ([@&#8203;jmichalek132](https://github.com/jmichalek132))
- Integration tests for aws firehose and cloudflare logpull ([#&#8203;6089](grafana/alloy#6089)) ([f55f780](grafana/alloy@f55f780)) ([@&#8203;x1unix](https://github.com/x1unix))
- Integration tests for loki.source.azure\_event\_hubs ([#&#8203;6113](grafana/alloy#6113)) ([8e40165](grafana/alloy@8e40165)) ([@&#8203;x1unix](https://github.com/x1unix))
- Integration tests for loki.source.gcplog ([#&#8203;6161](grafana/alloy#6161)) ([feceb8d](grafana/alloy@feceb8d)) ([@&#8203;x1unix](https://github.com/x1unix))
- **loki.process:** Add regex field to logfmt and json stages ([#&#8203;4941](grafana/alloy#4941)) ([cfbabda](grafana/alloy@cfbabda)) ([@&#8203;timonegk](https://github.com/timonegk))
- **loki.rules.kubernetes:** Add external\_labels support ([#&#8203;6320](grafana/alloy#6320)) ([9166a61](grafana/alloy@9166a61)) ([@&#8203;gianvetter](https://github.com/gianvetter))
- **loki.source.heroku:** Drop github.com/heroku/x package ([#&#8203;6064](grafana/alloy#6064)) ([3382721](grafana/alloy@3382721)) ([@&#8203;x1unix](https://github.com/x1unix))
- Migrate from Docker to Moby ([#&#8203;6167](grafana/alloy#6167)) ([1e2bbf9](grafana/alloy@1e2bbf9)) ([@&#8203;x1unix](https://github.com/x1unix))
- **mimir.rules.kubernetes, loki.rules.kubernetes:** Add configurable `mimir_namespace_separator` and `loki_namespace_separator` arguments to allow using a URL-safe separator ([#&#8203;5961](grafana/alloy#5961)) ([7dba4f1](grafana/alloy@7dba4f1)) ([@&#8203;QuentinBisson](https://github.com/QuentinBisson), [@&#8203;clayton-cornell](https://github.com/clayton-cornell))
- **otelcol.exporter.prometheus:** Config option to prevent stripping `service.*` attributes ([#&#8203;6434](grafana/alloy#6434)) ([c229b3c](grafana/alloy@c229b3c)) ([@&#8203;jcreixell](https://github.com/jcreixell))
- **otelcol.exporter.prometheus:** Convert classic histograms to NHCB ([#&#8203;6281](grafana/alloy#6281)) ([46f4fb6](grafana/alloy@46f4fb6)) ([@&#8203;madaraszg-tulip](https://github.com/madaraszg-tulip))
- **otelcol:** Add Nginx receiver ([#&#8203;6141](grafana/alloy#6141)) ([fa8d520](grafana/alloy@fa8d520)) ([@&#8203;henworth](https://github.com/henworth), [@&#8203;clayton-cornell](https://github.com/clayton-cornell), [@&#8203;blewis12](https://github.com/blewis12))
- **prometheus.enrich:** Support multi-label matching ([#&#8203;5822](grafana/alloy#5822)) ([04a1aba](grafana/alloy@04a1aba)) ([@&#8203;dtrejod](https://github.com/dtrejod))
- **prometheus.relabel:** Add opt-in TTL cache mode ([#&#8203;6169](grafana/alloy#6169)) ([40632c3](grafana/alloy@40632c3)) ([@&#8203;kgeckhart](https://github.com/kgeckhart))
- **telemetry:** Add graph connection metrics ([#&#8203;6243](grafana/alloy#6243)) ([4f3bbbe](grafana/alloy@4f3bbbe)) ([@&#8203;theSuess](https://github.com/theSuess))
- **telemetry:** Add pyroscope\_forwarded\_entries\_total metric ([#&#8203;6244](grafana/alloy#6244)) ([65ad64c](grafana/alloy@65ad64c)) ([@&#8203;theSuess](https://github.com/theSuess))
- Update to Beyla 3.9.7 ([#&#8203;6175](grafana/alloy#6175)) ([4015bd9](grafana/alloy@4015bd9)) ([@&#8203;rafaelroquetto](https://github.com/rafaelroquetto))
- Update to Beyla 3.9.8 ([#&#8203;6189](grafana/alloy#6189)) ([6fffa30](grafana/alloy@6fffa30)) ([@&#8203;skl](https://github.com/skl))

##### Bug Fixes 🐛

- Address Critical CVE's From Scanner ([#&#8203;6232](grafana/alloy#6232)) ([e713e7a](grafana/alloy@e713e7a)) ([@&#8203;blewis12](https://github.com/blewis12))
- **alloycli:** Use filepath.Base for CLI Use name to fix shell completions ([#&#8203;6217](grafana/alloy#6217)) ([17cfd01](grafana/alloy@17cfd01)) ([@&#8203;IngmarStein](https://github.com/IngmarStein))
- **cluster:** Fix nodes failing to join the cluster when TLS is enabled ([#&#8203;6437](grafana/alloy#6437)) ([efbad6d](grafana/alloy@efbad6d)) ([@&#8203;kgeckhart](https://github.com/kgeckhart))
- **database\_observability.mysql:** Exclude system schemas from MySQL health check ([#&#8203;6116](grafana/alloy#6116)) ([fcae6f4](grafana/alloy@fcae6f4)) ([@&#8203;matthewnolf](https://github.com/matthewnolf))
- **database\_observability.postgres:** Count error logs when log\_timezone is non-UTC ([#&#8203;6274](grafana/alloy#6274)) ([2eaa769](grafana/alloy@2eaa769)) ([@&#8203;gaantunes](https://github.com/gaantunes), [@&#8203;cristiangreco](https://github.com/cristiangreco))
- **database\_observability.postgres:** Do not retain query text in `explain_plans` collector ([#&#8203;6461](grafana/alloy#6461)) ([4c06a64](grafana/alloy@4c06a64)) ([@&#8203;cristiangreco](https://github.com/cristiangreco))
- **database\_observability:** Exclude more explain plan output keywords ([#&#8203;6145](grafana/alloy#6145)) ([3ff6c14](grafana/alloy@3ff6c14)) ([@&#8203;cristiangreco](https://github.com/cristiangreco))
- **deb:** Restart Alloy only on upgrade in postinst script ([#&#8203;6094](grafana/alloy#6094)) ([8c15cb3](grafana/alloy@8c15cb3)) ([@&#8203;guoard](https://github.com/guoard), [@&#8203;jharvey10](https://github.com/jharvey10))
- **deps:** Pin dependencies ([#&#8203;6376](grafana/alloy#6376)) ([79323b5](grafana/alloy@79323b5))
- **deps:** Update dependencies for catchpoint, databricks, and snowflake exporters ([#&#8203;6188](grafana/alloy#6188)) ([c1b740c](grafana/alloy@c1b740c)) ([@&#8203;Dasomeone](https://github.com/Dasomeone))
- **deps:** Update module go.opentelemetry.io/obi to v0.8.0 \[SECURITY] ([#&#8203;6091](grafana/alloy#6091)) ([05c14af](grafana/alloy@05c14af))
- **documentation:** Fix documentation for loki.rules.kubernetes ([#&#8203;6088](grafana/alloy#6088)) ([61f2b8a](grafana/alloy@61f2b8a)) ([@&#8203;timonegk](https://github.com/timonegk), [@&#8203;clayton-cornell](https://github.com/clayton-cornell))
- Enforce Singleton For Running Alloy Extension Instances ([#&#8203;5763](grafana/alloy#5763)) ([83da6f0](grafana/alloy@83da6f0)) ([@&#8203;blewis12](https://github.com/blewis12), [@&#8203;clayton-cornell](https://github.com/clayton-cornell))
- **faro:** Abort on context cancelation ([#&#8203;6104](grafana/alloy#6104)) ([bf733a6](grafana/alloy@bf733a6)) ([@&#8203;kalleep](https://github.com/kalleep))
- Fix bug that caused 'logging' block's 'write\_to' to be used after config update even if not set ([#&#8203;6264](grafana/alloy#6264)) ([cba7243](grafana/alloy@cba7243)) ([@&#8203;ptodev](https://github.com/ptodev))
- **graphql:** Update cli flags for consistency ([#&#8203;6441](grafana/alloy#6441)) ([7749d4f](grafana/alloy@7749d4f)) ([@&#8203;jharvey10](https://github.com/jharvey10))
- **helm:** Honor alloy.configMap.key in templates/configmap.yaml ([#&#8203;6312](grafana/alloy#6312)) ([415af2c](grafana/alloy@415af2c)) ([@&#8203;jmichalek132](https://github.com/jmichalek132), [@&#8203;kalleep](https://github.com/kalleep))
- **integration-tests:** Forward GO\_TAGS to k8s integration tests ([#&#8203;6220](grafana/alloy#6220)) ([b00f79c](grafana/alloy@b00f79c)) ([@&#8203;thampiotr](https://github.com/thampiotr))
- **logging:** Fix startup deadlock when components log before logging config is evaluated ([#&#8203;6112](grafana/alloy#6112)) ([6cdce9e](grafana/alloy@6cdce9e)) ([@&#8203;kgeckhart](https://github.com/kgeckhart))
- **loki.process:** Make limit stage shutdown cancelable ([#&#8203;6215](grafana/alloy#6215)) ([20717b5](grafana/alloy@20717b5)) ([@&#8203;boinger](https://github.com/boinger))
- **loki.process:** New `action_on_duplicate_timestamp` config attribute to fudge identical log timestamps ([#&#8203;5615](grafana/alloy#5615)) ([7d56f50](grafana/alloy@7d56f50)) ([@&#8203;boussaffawalid](https://github.com/boussaffawalid))
- **loki.process:** No longer mutate rules in stage.truncate causing every config update to reload pipeline when this stage is used ([#&#8203;6271](grafana/alloy#6271)) ([b52a4d8](grafana/alloy@b52a4d8)) ([@&#8203;kalleep](https://github.com/kalleep))
- **loki.process:** Potential deadlock on update with stage and receiver changes ([#&#8203;6270](grafana/alloy#6270)) ([cb22e82](grafana/alloy@cb22e82)) ([@&#8203;kalleep](https://github.com/kalleep))
- **loki.process:** Wrap NewPipeline error correctly in match stage ([#&#8203;6216](grafana/alloy#6216)) ([f3af2dd](grafana/alloy@f3af2dd)) ([@&#8203;boinger](https://github.com/boinger))
- **loki.rules.kubernetes:** Add timeout to ruler sync calls ([26170d4](grafana/alloy@26170d4)) ([@&#8203;QuentinBisson](https://github.com/QuentinBisson))
- **loki.source.syslog:** Fix goroutine leak in UDP listener ([#&#8203;6231](grafana/alloy#6231)) ([268b260](grafana/alloy@268b260)) ([@&#8203;x1unix](https://github.com/x1unix))
- **loki:** Clone structured metadata so we can perform fan-out correctly ([#&#8203;6138](grafana/alloy#6138)) ([473244d](grafana/alloy@473244d)) ([@&#8203;kalleep](https://github.com/kalleep))
- **oracledb\_exporter:** Support CGO\_ENABLED=0 cross-compilation ([#&#8203;6168](grafana/alloy#6168)) ([63ab53d](grafana/alloy@63ab53d)) ([@&#8203;korniltsev-grafanista](https://github.com/korniltsev-grafanista))
- **otelcol.exporter.awss3:** Add missing `unique_key_func_name` attribute ([#&#8203;6184](grafana/alloy#6184)) ([9ad2b44](grafana/alloy@9ad2b44)) ([@&#8203;kalleep](https://github.com/kalleep))
- **prometheus.exporter.oracledb:** Fix issue with custom metrics not appearing when more than one instance of prometheus.exporter.oracledb is used ([#&#8203;6228](grafana/alloy#6228)) ([57de4f4](grafana/alloy@57de4f4)) ([@&#8203;ptodev](https://github.com/ptodev))
- **prometheus.operator.\*:** Pass ScrapeNativeHistograms to ScrapeOptions ([#&#8203;6356](grafana/alloy#6356)) ([a44fced](grafana/alloy@a44fced)) ([@&#8203;sberz](https://github.com/sberz))
- **remotewrite:** Use blocking send with timeout in test server ([#&#8203;6208](grafana/alloy#6208)) ([a279088](grafana/alloy@a279088)) ([@&#8203;kgeckhart](https://github.com/kgeckhart))
- **security:** Update module github.com/jackc/pgx/v5 to v5.9.2 \[SECURITY] ([#&#8203;6326](grafana/alloy#6326)) ([bf3ff2e](grafana/alloy@bf3ff2e))
- **security:** Update x/crypto and x/net for CVEs ([#&#8203;6336](grafana/alloy#6336)) ([4c7b93b](grafana/alloy@4c7b93b)) ([@&#8203;thampiotr](https://github.com/thampiotr))
- **ui:** Reduce UI dependencies ([#&#8203;6349](grafana/alloy#6349)) ([85e12ba](grafana/alloy@85e12ba)) ([@&#8203;jharvey10](https://github.com/jharvey10))
- **ui:** Update dependency minor versions ([#&#8203;6288](grafana/alloy#6288)) ([52a28d2](grafana/alloy@52a28d2)) ([@&#8203;jharvey10](https://github.com/jharvey10))
- Update go to v1.26.4 ([#&#8203;6418](grafana/alloy#6418)) ([51fb7d2](grafana/alloy@51fb7d2)) ([@&#8203;kalleep](https://github.com/kalleep))
- **validation:** Improve type checking of ast.LiteralExpr ([#&#8203;5916](grafana/alloy#5916)) ([d0a1177](grafana/alloy@d0a1177)) ([@&#8203;kalleep](https://github.com/kalleep))

#### Upgrading

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

[release notes]: https://grafana.com/docs/alloy/v1.17/release-notes/

#### Installation

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

[installation guide]: https://grafana.com/docs/alloy/v1.17/get-started/install/

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMTQuNSIsInVwZGF0ZWRJblZlciI6IjQzLjIxNC41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants