[CHANGE] Minimum required Go version is now 1.25, only the two latest Go versions (1.25 and 1.26) are supported from now on. #1862
[CHANGE] prometheus: Name validation now always uses the UTF-8 scheme instead of the deprecated model.NameValidationScheme global. Default behavior is unchanged; code that set NameValidationScheme = LegacyValidation no longer gets legacy enforcement at metric, label, and push-grouping construction. #2051
[CHANGE] api/prometheus/v1: Support matchers (matches[] parameter) in Rules method (Rules(ctx context.Context, matches []string) (RulesResult, error)). #1843
[CHANGE] api/prometheus/v1: Refactor LabelNames method to return model.LabelNames instead of []string for consistency across the API. #1850
[CHANGE] exp/api/remote: Simplify Store interface, rename Handler to WriteHandler, and encapsulate write response handling. #1855
[FEATURE] prometheus: Add new Go 1.26 runtime metrics (/sched/goroutines-created:goroutines, /sched/goroutines/not-in-go:goroutines, /sched/goroutines/runnable:goroutines, /sched/goroutines/running:goroutines, /sched/goroutines/waiting:goroutines, /sched/threads/total:threads). #1942
[FEATURE] prometheus: Add WithUnit(unit string) option and explicit OpenMetrics unit support in CounterOpts, GaugeOpts, SummaryOpts, and HistogramOpts. #1392
[FEATURE] prometheus: Expose descriptor construction error through public Err() method on Desc. #1902
[FEATURE] promhttp: Add opt-in HandlerOpts.CoalesceGather to deduplicate concurrent Gather calls so overlapping scrapes share one collection cycle, preventing goroutine pile-up when the scrape rate outpaces collection time. #1969
[FEATURE] promhttp: HTTP handlers created by promhttp package now support metrics filtering by providing one or more name[] query parameters. The default behavior when none are provided remains the same, returning all metrics. #1925
[FEATURE] api/prometheus/v1: Add query formatting endpoint support (/format_query) and FormatQuery(ctx context.Context, query string) (string, error) method. #1846, #1856
[FEATURE] api/prometheus/v1: Add support for /status/tsdb/blocks endpoint via TSDBBlocks(ctx context.Context) ([]TSDBBlock, error) method. #1896
[FEATURE] exp/api/remote: Export BackoffConfig to allow customization when using WithAPIBackoff. #1895
[FEATURE] exp/api/remote: Add RetryCallBack to allow custom logging or handling on retry attempts in the remote write client. #1888, #1890
[ENHANCEMENT] prometheus/collectors/version: Allow specifying custom labels when registering the version collector. #1860
[ENHANCEMENT] api: Use cloned http.DefaultTransport when constructing default HTTP clients to prevent accidental mutations of shared global transport state. #1885
[BUGFIX] prometheus: Recover from collector panics during Gather() and return an error instead of crashing the process. #1961
[BUGFIX] prometheus: Fix cpu-seconds unit suffix handling for metric go_cpu_classes_gc_mark_assist_cpu_seconds. #1991
[BUGFIX] promhttp: InstrumentHandlerDuration and InstrumentHandlerCounter no longer panic when given an observer/counter that does not implement ExemplarObserver/ExemplarAdder (e.g. a SummaryVec). The exemplar is dropped and the value is recorded via the plain Observe/Add path, matching the safe-cast already used by Timer.ObserveDurationWithExemplar. #2005
[BUGFIX] api/prometheus/v1: Fall back to GET requests when POST requests return 403 Forbidden or method not allowed. #2030
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) | require | minor | `v1.23.2` → `v1.24.0` |
---
### Release Notes
<details>
<summary>prometheus/client_golang (github.com/prometheus/client_golang)</summary>
### [`v1.24.0`](https://github.com/prometheus/client_golang/releases/tag/v1.24.0): - 2026-07-20
[Compare Source](https://github.com/prometheus/client_golang/compare/v1.23.2...v1.24.0)
##### Changes
- \[CHANGE] Minimum required Go version is now 1.25, only the two latest Go versions (1.25 and 1.26) are supported from now on. [#​1862](https://github.com/prometheus/client_golang/issues/1862)
- \[CHANGE] prometheus: Name validation now always uses the UTF-8 scheme instead of the deprecated `model.NameValidationScheme` global. Default behavior is unchanged; code that set `NameValidationScheme = LegacyValidation` no longer gets legacy enforcement at metric, label, and push-grouping construction. [#​2051](https://github.com/prometheus/client_golang/issues/2051)
- \[CHANGE] api/prometheus/v1: Support matchers (`matches[]` parameter) in `Rules` method (`Rules(ctx context.Context, matches []string) (RulesResult, error)`). [#​1843](https://github.com/prometheus/client_golang/issues/1843)
- \[CHANGE] api/prometheus/v1: Refactor `LabelNames` method to return `model.LabelNames` instead of `[]string` for consistency across the API. [#​1850](https://github.com/prometheus/client_golang/issues/1850)
- \[CHANGE] exp/api/remote: Simplify `Store` interface, rename `Handler` to `WriteHandler`, and encapsulate write response handling. [#​1855](https://github.com/prometheus/client_golang/issues/1855)
- \[FEATURE] prometheus: Add new Go 1.26 runtime metrics (`/sched/goroutines-created:goroutines`, `/sched/goroutines/not-in-go:goroutines`, `/sched/goroutines/runnable:goroutines`, `/sched/goroutines/running:goroutines`, `/sched/goroutines/waiting:goroutines`, `/sched/threads/total:threads`). [#​1942](https://github.com/prometheus/client_golang/issues/1942)
- \[FEATURE] prometheus: Add `WithUnit(unit string)` option and explicit OpenMetrics unit support in `CounterOpts`, `GaugeOpts`, `SummaryOpts`, and `HistogramOpts`. [#​1392](https://github.com/prometheus/client_golang/issues/1392)
- \[FEATURE] prometheus: Expose descriptor construction error through public `Err()` method on `Desc`. [#​1902](https://github.com/prometheus/client_golang/issues/1902)
- \[FEATURE] promhttp: Add opt-in `HandlerOpts.CoalesceGather` to deduplicate concurrent `Gather` calls so overlapping scrapes share one collection cycle, preventing goroutine pile-up when the scrape rate outpaces collection time. [#​1969](https://github.com/prometheus/client_golang/issues/1969)
- \[FEATURE] promhttp: HTTP handlers created by `promhttp` package now support metrics filtering by providing one or more `name[]` query parameters. The default behavior when none are provided remains the same, returning all metrics. [#​1925](https://github.com/prometheus/client_golang/issues/1925)
- \[FEATURE] api/prometheus/v1: Add query formatting endpoint support (`/format_query`) and `FormatQuery(ctx context.Context, query string) (string, error)` method. [#​1846](https://github.com/prometheus/client_golang/issues/1846), [#​1856](https://github.com/prometheus/client_golang/issues/1856)
- \[FEATURE] api/prometheus/v1: Add support for `/status/tsdb/blocks` endpoint via `TSDBBlocks(ctx context.Context) ([]TSDBBlock, error)` method. [#​1896](https://github.com/prometheus/client_golang/issues/1896)
- \[FEATURE] exp/api/remote: Export `BackoffConfig` to allow customization when using `WithAPIBackoff`. [#​1895](https://github.com/prometheus/client_golang/issues/1895)
- \[FEATURE] exp/api/remote: Add `RetryCallBack` to allow custom logging or handling on retry attempts in the remote write client. [#​1888](https://github.com/prometheus/client_golang/issues/1888), [#​1890](https://github.com/prometheus/client_golang/issues/1890)
- \[ENHANCEMENT] prometheus/collectors/version: Allow specifying custom labels when registering the version collector. [#​1860](https://github.com/prometheus/client_golang/issues/1860)
- \[ENHANCEMENT] api: Use cloned `http.DefaultTransport` when constructing default HTTP clients to prevent accidental mutations of shared global transport state. [#​1885](https://github.com/prometheus/client_golang/issues/1885)
- \[BUGFIX] prometheus: Recover from collector panics during `Gather()` and return an error instead of crashing the process. [#​1961](https://github.com/prometheus/client_golang/issues/1961)
- \[BUGFIX] prometheus: Fix `cpu-seconds` unit suffix handling for metric `go_cpu_classes_gc_mark_assist_cpu_seconds`. [#​1991](https://github.com/prometheus/client_golang/issues/1991)
- \[BUGFIX] promhttp: `InstrumentHandlerDuration` and `InstrumentHandlerCounter` no longer panic when given an observer/counter that does not implement `ExemplarObserver`/`ExemplarAdder` (e.g. a `SummaryVec`). The exemplar is dropped and the value is recorded via the plain `Observe`/`Add` path, matching the safe-cast already used by `Timer.ObserveDurationWithExemplar`. [#​2005](https://github.com/prometheus/client_golang/issues/2005)
- \[BUGFIX] api/prometheus/v1: Fall back to `GET` requests when `POST` requests return `403 Forbidden` or method not allowed. [#​2030](https://github.com/prometheus/client_golang/issues/2030)
- \[BUGFIX] api: Respect context cancellation inside `httpClient.Do`. [#​1971](https://github.com/prometheus/client_golang/issues/1971)
- \[BUGFIX] exp/api/remote: Fix compression buffer pooling where compressed buffers were released prematurely, causing corrupted remote-write payloads. [#​1889](https://github.com/prometheus/client_golang/issues/1889)
- \[BUGFIX] exp/api/remote: Reject malformed snappy payloads declaring huge decoded sizes. Enforce a 32MB decoded-size limit to prevent OOM from oversized remote-write requests. [#​1917](https://github.com/prometheus/client_golang/issues/1917)
- \[BUGFIX] exp/api/remote: Ensure remote write v2 headers cannot be returned on v1 requests. [#​1927](https://github.com/prometheus/client_golang/issues/1927)
<details>
<summary> All commits </summary>
- build(deps): bump github.com/prometheus/procfs from 0.16.1 to 0.17.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1839](https://github.com/prometheus/client_golang/pull/1839)
- build(deps): bump golang.org/x/sys from 0.33.0 to 0.34.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1838](https://github.com/prometheus/client_golang/pull/1838)
- prometheus/collectors: use godoc link for runtime/metrics supported metrics by [@​xieyuschen](https://github.com/xieyuschen) in [#​1844](https://github.com/prometheus/client_golang/pull/1844)
- Fix doc typo by [@​torrca](https://github.com/torrca) in [#​1849](https://github.com/prometheus/client_golang/pull/1849)
- Merge release-1.23 into main by [@​vesari](https://github.com/vesari) in [#​1851](https://github.com/prometheus/client_golang/pull/1851)
- build(deps): bump github/codeql-action from 3.29.2 to 3.29.5 in the github-actions group by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1852](https://github.com/prometheus/client_golang/pull/1852)
- Refactor LabelNames to return model.LabelNames type for consistency by [@​yshngg](https://github.com/yshngg) in [#​1850](https://github.com/prometheus/client_golang/pull/1850)
- remote: simplified Store interface; renamed Handler to WriteHandler by [@​bwplotka](https://github.com/bwplotka) in [#​1855](https://github.com/prometheus/client_golang/pull/1855)
- feat(api/prometheus): add format\_query endpoint for query formatting by [@​yshngg](https://github.com/yshngg) in [#​1846](https://github.com/prometheus/client_golang/pull/1846)
- feat(api): add FormatQuery method to Prometheus v1 API by [@​yshngg](https://github.com/yshngg) in [#​1856](https://github.com/prometheus/client_golang/pull/1856)
- Support matchers in rules API by [@​jotak](https://github.com/jotak) in [#​1843](https://github.com/prometheus/client_golang/pull/1843)
- Use prometheus/common.expfmt.NewTextParser by [@​aknuds1](https://github.com/aknuds1) in [#​1859](https://github.com/prometheus/client_golang/pull/1859)
- Merge release-1.23 into main by [@​aknuds1](https://github.com/aknuds1) in [#​1861](https://github.com/prometheus/client_golang/pull/1861)
- chore: Drop support for \<go1.22 by [@​mrueg](https://github.com/mrueg) in [#​1862](https://github.com/prometheus/client_golang/pull/1862)
- collectors/version: Allow custom additional labels by [@​mrueg](https://github.com/mrueg) in [#​1860](https://github.com/prometheus/client_golang/pull/1860)
- build(deps): bump github.com/prometheus/common from 0.65.0 to 0.66.0 by [@​ywwg](https://github.com/ywwg) in [#​1865](https://github.com/prometheus/client_golang/pull/1865)
- Sync release-1.23 into main by [@​aknuds1](https://github.com/aknuds1) in [#​1868](https://github.com/prometheus/client_golang/pull/1868)
- Sync main with release-1.23 by [@​aknuds1](https://github.com/aknuds1) in [#​1871](https://github.com/prometheus/client_golang/pull/1871)
- chore: clean up golangci-lint configuration by [@​mmorel-35](https://github.com/mmorel-35) in [#​1802](https://github.com/prometheus/client_golang/pull/1802)
- build(deps): bump google.golang.org/protobuf from 1.36.8 to 1.36.9 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1880](https://github.com/prometheus/client_golang/pull/1880)
- build(deps): bump google.golang.org/protobuf from 1.36.6 to 1.36.9 in /exp by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1882](https://github.com/prometheus/client_golang/pull/1882)
- build(deps): bump github.com/prometheus/common from 0.65.0 to 0.66.1 in /exp by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1883](https://github.com/prometheus/client_golang/pull/1883)
- build(deps): bump the github-actions group with 4 updates by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1881](https://github.com/prometheus/client_golang/pull/1881)
- Fix typo in remote api err msg by [@​SungJin1212](https://github.com/SungJin1212) in [#​1878](https://github.com/prometheus/client_golang/pull/1878)
- chore: Update metrics for new Go version by [@​github-actions](https://github.com/github-actions)\[bot] in [#​1864](https://github.com/prometheus/client_golang/pull/1864)
- Add RetryCallBack to remote\_api.go by [@​pipiland2612](https://github.com/pipiland2612) in [#​1888](https://github.com/prometheus/client_golang/pull/1888)
- bug(remote\_write): Fix compression buffer pooling by [@​fpetkovski](https://github.com/fpetkovski) in [#​1889](https://github.com/prometheus/client_golang/pull/1889)
- Change RetryCallBack initialized by [@​pipiland2612](https://github.com/pipiland2612) in [#​1890](https://github.com/prometheus/client_golang/pull/1890)
- Fix CI bug by [@​pipiland2612](https://github.com/pipiland2612) in [#​1892](https://github.com/prometheus/client_golang/pull/1892)
- Use cloned http.DefaultTransport. issue-1857 by [@​karthikkondapally](https://github.com/karthikkondapally) in [#​1885](https://github.com/prometheus/client_golang/pull/1885)
- Public backoff config to allow usage of WithAPIBackoff by [@​pipiland2612](https://github.com/pipiland2612) in [#​1895](https://github.com/prometheus/client_golang/pull/1895)
- Clarify exp library stability by [@​pipiland2612](https://github.com/pipiland2612) in [#​1894](https://github.com/prometheus/client_golang/pull/1894)
- feat: add support for `/status/tsdb/blocks` endpoint by [@​tjhop](https://github.com/tjhop) in [#​1896](https://github.com/prometheus/client_golang/pull/1896)
- minor refactor of replaceInvalidRune() in bridge.go by [@​karthikkondapally](https://github.com/karthikkondapally) in [#​1897](https://github.com/prometheus/client_golang/pull/1897)
- build(deps): bump github.com/prometheus/procfs from 0.17.0 to 0.19.2 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1903](https://github.com/prometheus/client_golang/pull/1903)
- build(deps): bump github.com/klauspost/compress from 1.18.0 to 1.18.1 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1906](https://github.com/prometheus/client_golang/pull/1906)
- build(deps): bump golang.org/x/sys from 0.35.0 to 0.37.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1904](https://github.com/prometheus/client_golang/pull/1904)
- build(deps): bump github.com/prometheus/common from 0.66.1 to 0.67.2 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1907](https://github.com/prometheus/client_golang/pull/1907)
- build(deps): bump github.com/klauspost/compress from 1.18.0 to 1.18.1 in /exp by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1911](https://github.com/prometheus/client_golang/pull/1911)
- build(deps): bump google.golang.org/protobuf from 1.36.9 to 1.36.10 in /exp by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1909](https://github.com/prometheus/client_golang/pull/1909)
- build(deps): bump github.com/prometheus/common from 0.66.1 to 0.67.2 in /exp by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1910](https://github.com/prometheus/client_golang/pull/1910)
- build(deps): bump the github-actions group with 2 updates by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1908](https://github.com/prometheus/client_golang/pull/1908)
- chore(ci): Add CRLF detection and fix targets to prevent CRLF contamination by [@​kakkoyun](https://github.com/kakkoyun) in [#​1898](https://github.com/prometheus/client_golang/pull/1898)
- chore(ci): Use stable names for CI steps by [@​kakkoyun](https://github.com/kakkoyun) in [#​1914](https://github.com/prometheus/client_golang/pull/1914)
- build(deps): bump github.com/klauspost/compress from 1.18.1 to 1.18.2 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1920](https://github.com/prometheus/client_golang/pull/1920)
- build(deps): bump github.com/prometheus/common from 0.67.2 to 0.67.4 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1921](https://github.com/prometheus/client_golang/pull/1921)
- build(deps): bump golang.org/x/sys from 0.37.0 to 0.38.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1922](https://github.com/prometheus/client_golang/pull/1922)
- build(deps): bump github.com/prometheus/common from 0.67.2 to 0.67.4 in /exp by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1923](https://github.com/prometheus/client_golang/pull/1923)
- build(deps): bump github.com/klauspost/compress from 1.18.1 to 1.18.2 in /exp by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1924](https://github.com/prometheus/client_golang/pull/1924)
- build(deps): bump the github-actions group with 4 updates by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1919](https://github.com/prometheus/client_golang/pull/1919)
- feat: expose Desc error through public Err() method by [@​duricanikolic](https://github.com/duricanikolic) in [#​1902](https://github.com/prometheus/client_golang/pull/1902)
- Allow `/metrics` handler output filtering via `name[]` query param by [@​colega](https://github.com/colega) in [#​1925](https://github.com/prometheus/client_golang/pull/1925)
- Prevent OOM from malformed snappy payloads by validating decoded length by [@​makasim](https://github.com/makasim) in [#​1917](https://github.com/prometheus/client_golang/pull/1917)
- Ensure remote write v2 headers cannot be returned on v1 requests by [@​kgeckhart](https://github.com/kgeckhart) in [#​1927](https://github.com/prometheus/client_golang/pull/1927)
- build(deps): bump google.golang.org/protobuf from 1.36.10 to 1.36.11 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1932](https://github.com/prometheus/client_golang/pull/1932)
- build(deps): bump golang.org/x/sys from 0.38.0 to 0.39.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1933](https://github.com/prometheus/client_golang/pull/1933)
- build(deps): bump google.golang.org/protobuf from 1.36.10 to 1.36.11 in /exp by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1935](https://github.com/prometheus/client_golang/pull/1935)
- build(deps): bump the github-actions group with 5 updates by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1934](https://github.com/prometheus/client_golang/pull/1934)
- promhttp/zstd: add unit tests for zstd writer registration by [@​90ashish](https://github.com/90ashish) in [#​1929](https://github.com/prometheus/client_golang/pull/1929)
- feat(collector): add Go 1.26 new runtime metrics by [@​kakkoyun](https://github.com/kakkoyun) in [#​1942](https://github.com/prometheus/client_golang/pull/1942)
- build(deps): bump github.com/prometheus/common from 0.67.4 to 0.67.5 in /exp by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1948](https://github.com/prometheus/client_golang/pull/1948)
- build(deps): bump the github-actions group with 4 updates by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1946](https://github.com/prometheus/client_golang/pull/1946)
- build(deps): bump github.com/klauspost/compress from 1.18.2 to 1.18.3 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1944](https://github.com/prometheus/client_golang/pull/1944)
- build(deps): bump golang.org/x/sys from 0.39.0 to 0.40.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1945](https://github.com/prometheus/client_golang/pull/1945)
- build(deps): bump github.com/klauspost/compress from 1.18.2 to 1.18.3 in /exp by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1947](https://github.com/prometheus/client_golang/pull/1947)
- chore(test): bump 1.25, tests with synctest and check not panic by [@​manute](https://github.com/manute) in [#​1950](https://github.com/prometheus/client_golang/pull/1950)
- build(deps): bump github.com/prometheus/procfs from 0.19.2 to 0.20.1 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1954](https://github.com/prometheus/client_golang/pull/1954)
- build(deps): bump golang.org/x/sys from 0.40.0 to 0.41.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1957](https://github.com/prometheus/client_golang/pull/1957)
- build(deps): bump github.com/klauspost/compress from 1.18.3 to 1.18.4 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1955](https://github.com/prometheus/client_golang/pull/1955)
- build(deps): bump go.opentelemetry.io/otel/sdk from 1.34.0 to 1.40.0 in /tutorials/whatsup by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1959](https://github.com/prometheus/client_golang/pull/1959)
- build(deps): bump github.com/prometheus/common from 0.67.4 to 0.67.5 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1956](https://github.com/prometheus/client_golang/pull/1956)
- build(deps): bump the github-actions group with 2 updates by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1958](https://github.com/prometheus/client_golang/pull/1958)
- chore(collectors/go): generate the tests after new metric by [@​kakkoyun](https://github.com/kakkoyun) in [#​1962](https://github.com/prometheus/client_golang/pull/1962)
- Remove Arthur from the list of maintainers by [@​ArthurSens](https://github.com/ArthurSens) in [#​1964](https://github.com/prometheus/client_golang/pull/1964)
- build(deps): bump google.golang.org/grpc from 1.69.4 to 1.79.3 in /tutorials/whatsup by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1965](https://github.com/prometheus/client_golang/pull/1965)
- fix: recover from collector panic and return error in Gather by [@​Saflaski](https://github.com/Saflaski) in [#​1961](https://github.com/prometheus/client_golang/pull/1961)
- prometheus: clarify MetricVec delete semantics in godoc by [@​Retr0-XD](https://github.com/Retr0-XD) in [#​1967](https://github.com/prometheus/client_golang/pull/1967)
- build(deps): bump golang.org/x/sys from 0.41.0 to 0.42.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1973](https://github.com/prometheus/client_golang/pull/1973)
- build(deps): bump github.com/klauspost/compress from 1.18.4 to 1.18.5 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1974](https://github.com/prometheus/client_golang/pull/1974)
- build(deps): bump github.com/klauspost/compress from 1.18.4 to 1.18.5 in /exp by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1976](https://github.com/prometheus/client_golang/pull/1976)
- Optionally add OM unit by [@​vesari](https://github.com/vesari) in [#​1392](https://github.com/prometheus/client_golang/pull/1392)
- fix: respect context cancellation in httpClient.Do by [@​pedrampdd](https://github.com/pedrampdd) in [#​1971](https://github.com/prometheus/client_golang/pull/1971)
- build(deps): bump go.opentelemetry.io/otel/sdk from 1.40.0 to 1.43.0 in /tutorials/whatsup by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1978](https://github.com/prometheus/client_golang/pull/1978)
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in [#​1977](https://github.com/prometheus/client_golang/pull/1977)
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in [#​1980](https://github.com/prometheus/client_golang/pull/1980)
- examples: add native histogram usage example by [@​thegdsks](https://github.com/thegdsks) in [#​1981](https://github.com/prometheus/client_golang/pull/1981)
- chore(ci): add macOS, Windows and arm64 test runners by [@​kakkoyun](https://github.com/kakkoyun) in [#​1968](https://github.com/prometheus/client_golang/pull/1968)
- prometheus: honor PidFn on windows and darwin by [@​Retr0-XD](https://github.com/Retr0-XD) in [#​1966](https://github.com/prometheus/client_golang/pull/1966)
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in [#​1984](https://github.com/prometheus/client_golang/pull/1984)
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in [#​1985](https://github.com/prometheus/client_golang/pull/1985)
- promhttp: implement WithXFromContext in terms of WithXFromRequest by [@​tie](https://github.com/tie) in [#​1863](https://github.com/prometheus/client_golang/pull/1863)
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in [#​1988](https://github.com/prometheus/client_golang/pull/1988)
- Fix bug unit cpu-seconds not a suffix of metric go\_cpu\_classes\_gc\_mark\_assist\_cpu\_seconds by [@​vesari](https://github.com/vesari) in [#​1991](https://github.com/prometheus/client_golang/pull/1991)
- build(deps): bump golang.org/x/sys from 0.42.0 to 0.43.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1993](https://github.com/prometheus/client_golang/pull/1993)
- build(deps): bump github.com/klauspost/compress from 1.18.5 to 1.18.6 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1992](https://github.com/prometheus/client_golang/pull/1992)
- build(deps): bump github.com/klauspost/compress from 1.18.5 to 1.18.6 in /exp by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1995](https://github.com/prometheus/client_golang/pull/1995)
- exp/api/remote: limit request body size in SnappyDecodeMiddleware by [@​roidelapluie](https://github.com/roidelapluie) in [#​1996](https://github.com/prometheus/client_golang/pull/1996)
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in [#​2001](https://github.com/prometheus/client_golang/pull/2001)
- build(deps): bump the github-actions group across 1 directory with 4 updates by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1994](https://github.com/prometheus/client_golang/pull/1994)
- ci(update-go-versions): declare permissions for the monthly chore PR by [@​arpitjain099](https://github.com/arpitjain099) in [#​2003](https://github.com/prometheus/client_golang/pull/2003)
- docs: fix godoc indentation and typos in timer.go and wrap.go by [@​immanuwell](https://github.com/immanuwell) in [#​2009](https://github.com/prometheus/client_golang/pull/2009)
- ci: harden actions/checkout with persist-credentials: false by [@​roidelapluie](https://github.com/roidelapluie) in [#​2011](https://github.com/prometheus/client_golang/pull/2011)
- fix(registry): prevent file descriptor leak in WriteToTextfile by [@​ProjectMutilation](https://github.com/ProjectMutilation) in [#​2010](https://github.com/prometheus/client_golang/pull/2010)
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in [#​2008](https://github.com/prometheus/client_golang/pull/2008)
- promhttp: add regression test for concurrent map writes ([#​1274](https://github.com/prometheus/client_golang/issues/1274)) by [@​pedrampdd](https://github.com/pedrampdd) in [#​2000](https://github.com/prometheus/client_golang/pull/2000)
- build(deps): bump github.com/prometheus/common from 0.67.6-0.20260224092343-e4c38a0aea47 to 0.68.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​2015](https://github.com/prometheus/client_golang/pull/2015)
- build(deps): bump the github-actions group with 2 updates by [@​dependabot](https://github.com/dependabot)\[bot] in [#​2016](https://github.com/prometheus/client_golang/pull/2016)
- build(deps): bump golang.org/x/sys from 0.43.0 to 0.45.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​2014](https://github.com/prometheus/client_golang/pull/2014)
- build(deps): bump github.com/prometheus/common from 0.67.5 to 0.68.0 in /exp by [@​dependabot](https://github.com/dependabot)\[bot] in [#​2017](https://github.com/prometheus/client_golang/pull/2017)
- promhttp: fix grammar in exemplar option doc comments by [@​s3onghyun](https://github.com/s3onghyun) in [#​2023](https://github.com/prometheus/client_golang/pull/2023)
- fix: use keyed fields in SamplePair struct literals in api\_test.go by [@​immanuwell](https://github.com/immanuwell) in [#​2012](https://github.com/prometheus/client_golang/pull/2012)
- refactor: replace interface{} with any (Go 1.18+) by [@​MD-Mushfiqur123](https://github.com/MD-Mushfiqur123) in [#​2021](https://github.com/prometheus/client_golang/pull/2021)
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in [#​2013](https://github.com/prometheus/client_golang/pull/2013)
- build(deps): bump github.com/prometheus/common from 0.68.0 to 0.69.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​2025](https://github.com/prometheus/client_golang/pull/2025)
- build(deps): bump github.com/prometheus/common from 0.68.0 to 0.69.0 in /exp by [@​dependabot](https://github.com/dependabot)\[bot] in [#​2027](https://github.com/prometheus/client_golang/pull/2027)
- build(deps): bump golang.org/x/sys from 0.45.0 to 0.46.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​2026](https://github.com/prometheus/client_golang/pull/2026)
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in [#​2028](https://github.com/prometheus/client_golang/pull/2028)
- build(deps): bump github.com/prometheus/procfs from 0.20.1 to 0.21.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​2033](https://github.com/prometheus/client_golang/pull/2033)
- build(deps): bump github.com/klauspost/compress from 1.18.6 to 1.18.7 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​2036](https://github.com/prometheus/client_golang/pull/2036)
- build(deps): bump github.com/prometheus/procfs from 0.21.0 to 0.21.1 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​2035](https://github.com/prometheus/client_golang/pull/2035)
- build(deps): bump github.com/klauspost/compress from 1.18.6 to 1.18.7 in /exp by [@​dependabot](https://github.com/dependabot)\[bot] in [#​2038](https://github.com/prometheus/client_golang/pull/2038)
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in [#​2041](https://github.com/prometheus/client_golang/pull/2041)
- fix(api): fall back to GET on forbidden POSTs by [@​immanuwell](https://github.com/immanuwell) in [#​2030](https://github.com/prometheus/client_golang/pull/2030)
- build(deps): bump golang.org/x/net from 0.48.0 to 0.55.0 in /tutorials/whatsup by [@​dependabot](https://github.com/dependabot)\[bot] in [#​2042](https://github.com/prometheus/client_golang/pull/2042)
- build(deps): bump the github-actions group across 1 directory with 5 updates by [@​dependabot](https://github.com/dependabot)\[bot] in [#​2043](https://github.com/prometheus/client_golang/pull/2043)
- chores: remove example Dockerfile and container\_description.yaml by [@​bwplotka](https://github.com/bwplotka) in [#​2044](https://github.com/prometheus/client_golang/pull/2044)
- Update dependabot config by [@​SuperQ](https://github.com/SuperQ) in [#​2046](https://github.com/prometheus/client_golang/pull/2046)
- build(deps): bump github.com/klauspost/compress from 1.18.7 to 1.19.0 in /exp by [@​dependabot](https://github.com/dependabot)\[bot] in [#​2048](https://github.com/prometheus/client_golang/pull/2048)
- build(deps): bump github.com/klauspost/compress from 1.18.7 to 1.19.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​2047](https://github.com/prometheus/client_golang/pull/2047)
- promhttp: don't panic when instrumenting with non-exemplar observers by [@​spor3006](https://github.com/spor3006) in [#​2005](https://github.com/prometheus/client_golang/pull/2005)
- Replace deprecated model.NameValidationScheme with explicit UTF8Validation by [@​kakkoyun](https://github.com/kakkoyun) in [#​2051](https://github.com/prometheus/client_golang/pull/2051)
- test: fix two flaky tests (darwin start\_time regex, memstats HeapReleased drift) by [@​kakkoyun](https://github.com/kakkoyun) in [#​2050](https://github.com/prometheus/client_golang/pull/2050)
- fix: correct typos in comments and test error messages by [@​maxtaran2010](https://github.com/maxtaran2010) in [#​2049](https://github.com/prometheus/client_golang/pull/2049)
- examples: improve simple main.go example by [@​dhanudhanushree](https://github.com/dhanudhanushree) in [#​1999](https://github.com/prometheus/client_golang/pull/1999)
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in [#​2055](https://github.com/prometheus/client_golang/pull/2055)
- feat(promhttp): add CoalesceGather option to deduplicate concurrent Gather calls by [@​kakkoyun](https://github.com/kakkoyun) in [#​1969](https://github.com/prometheus/client_golang/pull/1969)
- build(deps): update all Go dependencies in all go.mod files by [@​bwplotka](https://github.com/bwplotka) in [#​2059](https://github.com/prometheus/client_golang/pull/2059)
- Cut v1.24.0-rc.0 by [@​bwplotka](https://github.com/bwplotka) in [#​2058](https://github.com/prometheus/client_golang/pull/2058)
</details>
#### New Contributors
* @​xieyuschen made their first contribution in https://github.com/prometheus/client_golang/pull/1844
* @​torrca made their first contribution in https://github.com/prometheus/client_golang/pull/1849
* @​yshngg made their first contribution in https://github.com/prometheus/client_golang/pull/1850
* @​jotak made their first contribution in https://github.com/prometheus/client_golang/pull/1843
* @​SungJin1212 made their first contribution in https://github.com/prometheus/client_golang/pull/1878
* @​github-actions[bot] made their first contribution in https://github.com/prometheus/client_golang/pull/1864
* @​pipiland2612 made their first contribution in https://github.com/prometheus/client_golang/pull/1888
* @​fpetkovski made their first contribution in https://github.com/prometheus/client_golang/pull/1889
* @​karthikkondapally made their first contribution in https://github.com/prometheus/client_golang/pull/1885
* @​tjhop made their first contribution in https://github.com/prometheus/client_golang/pull/1896
* @​duricanikolic made their first contribution in https://github.com/prometheus/client_golang/pull/1902
* @​makasim made their first contribution in https://github.com/prometheus/client_golang/pull/1917
* @​kgeckhart made their first contribution in https://github.com/prometheus/client_golang/pull/1927
* @​90ashish made their first contribution in https://github.com/prometheus/client_golang/pull/1929
* @​manute made their first contribution in https://github.com/prometheus/client_golang/pull/1950
* @​Saflaski made their first contribution in https://github.com/prometheus/client_golang/pull/1961
* @​Retr0-XD made their first contribution in https://github.com/prometheus/client_golang/pull/1967
* @​pedrampdd made their first contribution in https://github.com/prometheus/client_golang/pull/1971
* @​thegdsks made their first contribution in https://github.com/prometheus/client_golang/pull/1981
* @​tie made their first contribution in https://github.com/prometheus/client_golang/pull/1863
* @​arpitjain099 made their first contribution in https://github.com/prometheus/client_golang/pull/2003
* @​immanuwell made their first contribution in https://github.com/prometheus/client_golang/pull/2009
* @​ProjectMutilation made their first contribution in https://github.com/prometheus/client_golang/pull/2010
* @​s3onghyun made their first contribution in https://github.com/prometheus/client_golang/pull/2023
* @​MD-Mushfiqur123 made their first contribution in https://github.com/prometheus/client_golang/pull/2021
* @​spor3006 made their first contribution in https://github.com/prometheus/client_golang/pull/2005
* @​maxtaran2010 made their first contribution in https://github.com/prometheus/client_golang/pull/2049
* @​dhanudhanushree made their first contribution in https://github.com/prometheus/client_golang/pull/1999
**Full Changelog**: <https://github.com/prometheus/client_golang/compare/v1.23.2...v1.24.0>
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiI0My4yNzIuMCIsInVwZGF0ZWRJblZlciI6IjQzLjI3Mi4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbInJlbm92YXRlL2F1dG9tZXJnZSIsInJlbm92YXRlL2dvbGFuZyJdfQ==-->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
v1.23.2→v1.24.0Release Notes
prometheus/client_golang (github.com/prometheus/client_golang)
v1.24.0: - 2026-07-20Compare Source
Changes
model.NameValidationSchemeglobal. Default behavior is unchanged; code that setNameValidationScheme = LegacyValidationno longer gets legacy enforcement at metric, label, and push-grouping construction. #2051matches[]parameter) inRulesmethod (Rules(ctx context.Context, matches []string) (RulesResult, error)). #1843LabelNamesmethod to returnmodel.LabelNamesinstead of[]stringfor consistency across the API. #1850Storeinterface, renameHandlertoWriteHandler, and encapsulate write response handling. #1855/sched/goroutines-created:goroutines,/sched/goroutines/not-in-go:goroutines,/sched/goroutines/runnable:goroutines,/sched/goroutines/running:goroutines,/sched/goroutines/waiting:goroutines,/sched/threads/total:threads). #1942WithUnit(unit string)option and explicit OpenMetrics unit support inCounterOpts,GaugeOpts,SummaryOpts, andHistogramOpts. #1392Err()method onDesc. #1902HandlerOpts.CoalesceGatherto deduplicate concurrentGathercalls so overlapping scrapes share one collection cycle, preventing goroutine pile-up when the scrape rate outpaces collection time. #1969promhttppackage now support metrics filtering by providing one or morename[]query parameters. The default behavior when none are provided remains the same, returning all metrics. #1925/format_query) andFormatQuery(ctx context.Context, query string) (string, error)method. #1846, #1856/status/tsdb/blocksendpoint viaTSDBBlocks(ctx context.Context) ([]TSDBBlock, error)method. #1896BackoffConfigto allow customization when usingWithAPIBackoff. #1895RetryCallBackto allow custom logging or handling on retry attempts in the remote write client. #1888, #1890http.DefaultTransportwhen constructing default HTTP clients to prevent accidental mutations of shared global transport state. #1885Gather()and return an error instead of crashing the process. #1961cpu-secondsunit suffix handling for metricgo_cpu_classes_gc_mark_assist_cpu_seconds. #1991InstrumentHandlerDurationandInstrumentHandlerCounterno longer panic when given an observer/counter that does not implementExemplarObserver/ExemplarAdder(e.g. aSummaryVec). The exemplar is dropped and the value is recorded via the plainObserve/Addpath, matching the safe-cast already used byTimer.ObserveDurationWithExemplar. #2005GETrequests whenPOSTrequests return403 Forbiddenor method not allowed. #2030httpClient.Do. #1971All commits
/status/tsdb/blocksendpoint by @tjhop in #1896/metricshandler output filtering vianame[]query param by @colega in #1925New Contributors
Full Changelog: https://github.com/prometheus/client_golang/compare/v1.23.2...v1.24.0
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate.
ℹ️ Artifact update notice
File name: go.mod
In order to perform the update(s) described in the table above, Renovate ran the
go getcommand, which resulted in the following additional change(s):godirective was updated for compatibility reasonsDetails:
go1.23.0->1.25.0github.com/prometheus/commonv0.66.1->v0.70.0github.com/prometheus/procfsv0.16.1->v0.21.1golang.org/x/sysv0.35.0->v0.47.0golang.org/x/textv0.28.0->v0.38.0google.golang.org/protobufv1.36.8->v1.36.11