github prometheus/client_golang v1.25.0-rc.0

pre-release4 hours ago

⚠️ This release raises the minimum required Go version to 1.26 and includes breaking API changes in api/prometheus/v1 (see the [CHANGE] entries below). ⚠️

1.25.0-rc.0 / 2026-10-05

  • [CHANGE] Minimum required Go version is now 1.26, only the two latest Go versions (1.26 and 1.27) are supported from now on. #2138
  • [CHANGE] api/prometheus/v1: Query, QueryRange, Series, LabelNames, and LabelValues now return Infos annotations in addition to Warnings, matching the Prometheus server's info annotations. This changes the signatures of these methods and of api.Client's Do/DoGetFallback; custom API client implementations must be updated. #1963
  • [CHANGE] api/prometheus/v1: Rework TSDBBlocks result types to align with the Prometheus server's tsdb.BlockMeta: TSDBBlocksResult now contains Blocks []TSDBBlockMeta directly instead of mirroring the full API envelope, nested types are renamed (TSDBBlockMeta, TSDBBlockStats, TSDBBlockMetaCompaction), stat fields are uint64 with omitempty tags, and the optional compaction parents field is included. #1928
  • [FEATURE] testutil: Add GatherAndFormat to encode a subset of metrics from a Gatherer. #2091
  • [FEATURE] promhttp: Add HandlerOpts.AcceptedFormats to customize the formats negotiated from the incoming Accept header, enabling opt-in to experimental formats such as OpenMetrics 2.0 without changing default negotiation. #2146
  • [ENHANCEMENT] promhttp: Negotiated metrics responses now include a Vary header. #2142
  • [ENHANCEMENT] prometheus: Regenerate the default runtime collector metrics for Go 1.25 and Go 1.26. #2090, #2095
  • [ENHANCEMENT] testutil: Finalize OpenMetrics output in GatherAndFormat and CollectAndFormat (terminating # EOF). #2125
  • [BUGFIX] api: Match complete URL path placeholders only; a :foo argument no longer substitutes inside :foobar. #2136
  • [BUGFIX] exp/api/remote: Reset the pooled buffer before generic proto marshaling, preventing corrupted remote-write payloads. #2139
  • [BUGFIX] testutil/promlint: Fix "mibi" unit prefix to "mebi". #2135
What's changed

What's Changed

  • fix: Remove unneeded and broken CI badge by @bwplotka in #2057
  • Synchronize common files from prometheus/prometheus by @prombot in #2060
  • build(deps): bump the codeql group with 4 updates by @dependabot[bot] in #2066
  • build(deps): bump github.com/klauspost/compress from 1.19.0 to 1.19.1 by @dependabot[bot] in #2071
  • build(deps): bump golang.org/x/sys from 0.46.0 to 0.47.0 in the golang-org-x group across 1 directory by @dependabot[bot] in #2069
  • build(deps): bump github.com/klauspost/compress from 1.19.0 to 1.19.1 in /exp by @dependabot[bot] in #2072
  • build(deps): bump github.com/prometheus/common from 0.69.0 to 0.70.1 in /exp by @dependabot[bot] in #2073
  • build(deps): bump github.com/prometheus/common from 0.69.0 to 0.70.1 by @dependabot[bot] in #2070
  • build(deps): bump google.golang.org/grpc from 1.79.3 to 1.82.1 in /tutorials/whatsup by @dependabot[bot] in #2075
  • Pin GitHub Actions by @SuperQ in #2074
  • build(deps): bump actions/checkout from 7.0.0 to 7.0.1 by @dependabot[bot] in #2067
  • promhttp: fix panic on requests with nil URL by @SAY-5 in #2065
  • Return info annotations in addition to warnings in the API by @zenador in #1963
  • build(deps): bump ossf/scorecard-action from 2.4.3 to 2.4.4 by @dependabot[bot] in #2082
  • Synchronize common files from prometheus/prometheus by @prombot in #2084
  • Synchronize common files from prometheus/prometheus by @prombot in #2086
  • Synchronize common files from prometheus/prometheus by @prombot in #2088
  • Regenerate Go collector runtime metrics for Go 1.25 and Go 1.26 by @bwplotka in #2090
  • go.mod: remove obsolete exclude rule by @thaJeztah in #2077
  • Synchronize common files from prometheus/prometheus by @prombot in #2093
  • README: document the OpenTelemetry OTLP push bridge by @mvanhorn in #1987
  • docs: add AGENTS.md contributor and maintainer guide by @bwplotka in #2056
  • testutil: add GatherAndFormat helper by @wieghx in #2091
  • build(deps): bump the codeql group with 4 updates by @dependabot[bot] in #2101
  • build(deps): bump google.golang.org/protobuf from 1.36.11 to 1.36.12 by @dependabot[bot] in #2097
  • build(deps): bump github.com/klauspost/compress from 1.19.1 to 1.19.2 by @dependabot[bot] in #2098
  • build(deps): bump google.golang.org/protobuf from 1.36.11 to 1.36.12 in /exp by @dependabot[bot] in #2099
  • build(deps): bump github.com/klauspost/compress from 1.19.1 to 1.19.2 in /exp by @dependabot[bot] in #2100
  • build(deps): bump github.com/prometheus/procfs from 0.21.1 to 0.22.0 in the prometheus group across 1 directory by @dependabot[bot] in #2096
  • build(deps): bump google.golang.org/grpc from 1.82.1 to 1.83.1 in /tutorials/whatsup by @dependabot[bot] in #2102
  • chore: Update metrics for new Go version by @github-actions[bot] in #2095
  • Benchmark json-iter, stdlib json and json/v2 by @liggitt in #2107
  • build(deps): bump google.golang.org/grpc from 1.83.1 to 1.83.2 in /tutorials/whatsup by @dependabot[bot] in #2112
  • RuleGroup: use stdlib for json decoding, optimize decoding by @liggitt in #2109
  • Modernize micro benchmarks: b.Loop and key=value case names by @radianceded in #2114
  • QueryResult: use stdlib for envelope decoding by @liggitt in #2110
  • Use stdlib to decode apiResult envelope by @liggitt in #2111
  • Improve linting by @SuperQ in #2115
  • Delete unused custom json-iterator marshaling by @liggitt in #2121
  • Simplify apiClientImpl#Do error path by @liggitt in #2120
  • testutil: finalize OpenMetrics output by @ajavanma in #2125
  • build(deps): bump go.opentelemetry.io/otel/sdk from 1.44.0 to 1.45.0 in /tutorials/whatsup by @dependabot[bot] in #2124
  • Synchronize common files from prometheus/prometheus by @prombot in #2116
  • prometheus: fix revive indent-error-flow lint on Darwin by @bwplotka in #2131
  • build(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace from 1.34.0 to 1.45.0 in /tutorials/whatsup by @dependabot[bot] in #2123
  • Combine envelope/inner apiResponse decoding, switch to stdlib json by @liggitt in #2118
  • build(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.34.0 to 1.45.0 in /tutorials/whatsup by @dependabot[bot] in #2122
  • testutil/promlint: fix "mibi" unit prefix to "mebi" by @ZainnQureshii in #2135
  • all: update prometheus/common to v0.72.0 and apply modernize fixes by @bwplotka in #2138
  • limit json-iterator use to Go 1.26 by @liggitt in #2128
  • promhttp: add AcceptedFormats option to customize format negotiation by @bwplotka in #2146
  • build(deps): bump github.com/klauspost/compress from 1.19.2 to 1.20.1 by @dependabot[bot] in #2143
  • build(deps): bump the codeql group with 4 updates by @dependabot[bot] in #2145
  • build(deps): bump github.com/klauspost/compress from 1.19.2 to 1.20.1 in /exp by @dependabot[bot] in #2144
  • promhttp: vary negotiated metrics responses by @lowgame in #2142
  • exp/api/remote: reset pooled buffer before generic marshal by @lowgame in #2139
  • api: match complete URL placeholders by @lowgame in #2136
  • fix: updates for tsdb blocks handling by @tjhop in #1928
  • prometheus: fix modernize lint findings by @kakkoyun in #2151
  • build(deps): bump google.golang.org/grpc from 1.82.1 to 1.83.2 in /api/prometheus/v1/paritytest by @dependabot[bot] in #2152
  • Cut v1.25.0-rc.0 by @kakkoyun in #2154

New Contributors

Full Changelog: v1.24.1...v1.25.0-rc.0

Don't miss a new client_golang release

NewReleases is sending notifications on new releases.