Releases: prometheus/client_golang
v1.21.0-rc.0 / 2025-01-21
github.com/prometheus/common
to 0.62+ together with client_golang.
New common version changes model.NameValidationScheme
global variable, which relaxes the validation of label names and metric name, allowing all UTF-8 characters. Typically, this should not break any user, unless your test or usage expects strict certain names to panic/fail on client_golang metric registration, gathering or scrape. In case of problems change model.NameValidationScheme
to old model.LegacyValidation
value in your project init
function.
- [BUGFIX] gocollector: Fix help message for runtime/metric metrics. #1583
- [BUGFIX] prometheus: Fix
Desc.String()
method for no labels case. #1687 - [ENHANCEMENT] prometheus: Optimize popular
prometheus.BuildFQName
function; now up to 30% faster. #1665 - [ENHANCEMENT] prometheus: Optimize
Inc
,Add
andObserve
cumulative metrics; now up to 50% faster under high concurrent contention. #1661 - [CHANGE] Upgrade prometheus/common to 0.62.0 which changes
model.NameValidationScheme
global variable. #1712 - [CHANGE] Add support for Go 1.23. #1602
- [FEATURE] process_collector: Add support for Darwin systems. #1600 #1616 #1625 #1675 #1715
- [FEATURE] api: Add ability to invoke
CloseIdleConnections
on api.Client usingapi.Client.(CloseIdler).CloseIdleConnections()
casting. #1513 - [FEATURE] promhttp: Add
promhttp.HandlerOpts.EnableOpenMetricsTextCreatedSamples
option to create OpenMetrics _created lines. Not recommended unless you want to use opt-in Created Timestamp feature. Community works on OpenMetrics 2.0 format that should make those lines obsolete (they increase cardinality significantly). #1408 - [FEATURE] prometheus: Add
NewConstNativeHistogram
function. #1654
All commits
* Merge release-1.20 to main by @bwplotka in https://github.com//pull/1582 * gocollector: Tiny fix for help message with runtime/metrics source. by @bwplotka in https://github.com//pull/1583 * ci: bump dagger to the latest version by @marcosnils in https://github.com//pull/1588 * Merge release-1.20 back to main by @ArthurSens in https://github.com//pull/1593 * Update linting by @SuperQ in https://github.com//pull/1603 * Update supported Go versions by @SuperQ in https://github.com//pull/1602 * build(deps): bump golang.org/x/sys from 0.22.0 to 0.24.0 by @dependabot in https://github.com//pull/1611 * build(deps): bump github.com/prometheus/common from 0.55.0 to 0.57.0 by @dependabot in https://github.com//pull/1612 * changed the name of all variables with min/max name by @parthlaw in https://github.com//pull/1606 * Update Dagger and build. by @SuperQ in https://github.com//pull/1610 * build(deps): bump github/codeql-action from 3.25.15 to 3.26.6 in the github-actions group across 1 directory by @dependabot in https://github.com//pull/1614 * examples: Improved GoCollector example. by @bwplotka in https://github.com//pull/1589 * Synchronize common files from prometheus/prometheus by @prombot in https://github.com//pull/1615 * process_collector: fill in most statistics on macOS by @mharbison72 in https://github.com//pull/1600 * ⚡ http client defer CloseIdleConnections by @cuisongliu in https://github.com//pull/1513 * Set allow-utf-8 in Format during tests to avoid escaping. by @ywwg in https://github.com//pull/1618 * Synchronize common files from prometheus/prometheus by @prombot in https://github.com//pull/1622 * Merge Release 1.20 back to main by @ArthurSens in https://github.com//pull/1627 * examples: Add custom labels example by @ying-jeanne in https://github.com//pull/1626 * Refactor default runtime metrics tests for Go collector so that default runtime metric set autogenerates by @vesari in https://github.com//pull/1631 * Synchronize common files from prometheus/prometheus by @prombot in https://github.com//pull/1628 * process_xxx_memory statistics for macOS (cgo) by @mharbison72 in https://github.com//pull/1616 * build(deps): bump github.com/klauspost/compress from 1.17.9 to 1.17.10 by @dependabot in https://github.com//pull/1633 * build(deps): bump golang.org/x/sys from 0.24.0 to 0.25.0 by @dependabot in https://github.com//pull/1632 * process_collector: Add Platform-Specific Describe for processCollector by @ying-jeanne in https://github.com//pull/1625 * Synchronize common files from prometheus/prometheus by @prombot in https://github.com//pull/1635 * build(deps): bump the github-actions group with 4 updates by @dependabot in https://github.com//pull/1634 * Optionally print OM created lines by @ArthurSens in https://github.com//pull/1408 * process_collector: merge wasip1 and js into a single implementation by @ying-jeanne in https://github.com//pull/1644 * Merge release 1.20 to main by @bwplotka in https://github.com//pull/1647 * Add Arianna as maintainer 💪 by @ArthurSens in https://github.com//pull/1651 * test add headers round tripper by @Manask322 in https://github.com//pull/1657 * build(deps): bump github.com/klauspost/compress from 1.17.10 to 1.17.11 by @dependabot in https://github.com//pull/1668 * build(deps): bump golang.org/x/sys from 0.25.0 to 0.26.0 by @dependabot in https://github.com//pull/1669 * build(deps): bump github.com/prometheus/common from 0.59.1 to 0.60.1 by @dependabot in https://github.com//pull/1667 * build(deps): bump google.golang.org/protobuf from 1.34.2 to 1.35.1 by @dependabot in https://github.com//pull/1670 * Optimize BuildFQName function by @jkroepke in https://github.com//pull/1665 * fix: use injected now() instead of time.Now() in summary methods by @imorph in https://github.com//pull/1672 * process_collector: avoid a compiler warning on macOS (fixes #1660) by @mharbison72 in https://github.com//pull/1675 * Synchronize common files from prometheus/prometheus by @prombot in https://github.com//pull/1674 * build(deps): bump the github-actions group across 1 directory with 3 updates by @dependabot in https://github.com//pull/1678 * [chore]: enable perfsprint linter by @mmorel-35 in https://github.com//pull/1676 * Duplicate of #1662 by @imorph in https://github.com//pull/1673 * Synchronize common files from prometheus/prometheus by @prombot in https://github.com//pull/1679 * chore: enable usestdlibvars linter by @mmorel-35 in https://github.com//pull/1680 * Add: exponential backoff for CAS operations on floats by @imorph in https://github.com//pull/1661 * Synchronize common files from prometheus/prometheus by @prombot in https://github.com//pull/1683 * [1617] Add ConstnativeHistogram by @shivanthzen in https://github.com//pull/1654 * fix: replace fmt.Errorf with errors.New by @kakkoyun in https://github.com//pull/1689 * Add codeowners by @kakkoyun in https://github.com//pull/1688 * fix: add very small delay between observations in `TestHistogramAtomicObserve` by @imorph in https://github.com//pull/1691 * Synchronize common files from prometheus/prometheus by @prombot in https://github.com//pull/1692 * Fix: handle nil variableLabels in Desc.String() method and add tests for nil label values by @kakkoyun in https://github.com//pull/1687 * examples: Follow best practices and established naming conventions by @lilic in https://github.com//pull/1650 * setup OSSF Scorecard workflow by @mmorel-35 in https://github.com//pull/1432 * build(deps): bump google.golang.org/protobuf from 1.35.1 to 1.35.2 by @dependabot in https://github.com//pull/1697 * build(deps): bump golang.org/x/sys from 0.26.0 to 0.27.0 by @dependabot in https://github.com//pull/1696 * build(deps): bump the github-actions group with 5 updates by @dependabot in https://github.com//pull/1695 * update links to openmetrics to reference the v1.0.0 release by @dashpole in https://github.com//pull/1699 * build(deps): bump google.golang.org/protobuf from 1.35.2 to 1.36.1 by @dependabot in https://github.com//pull/1706 * build(deps): bump golang.org/x/sys from 0.27.0 to 0.28.0 by @dependabot in https://github.com//pull/1705 * build(deps): bump the github-actions group with 5 updates by @dependabot in https://github.com//pull/1707 * build(deps): bump github.com/prometheus/common from 0.60.1 to 0.61.0 by @dependabot in https://github.com//pull/1704 * Synchronize common files from prometheus/prometheus by @prombot in https://github.com//pull/1703 * Synchronize com...v1.20.5 / 2024-10-15
We decided to revert the testutil
change that made our util functions less error-prone, but created a lot of work for our downstream users. Apologies for the pain! This revert should not cause any major breaking change, even if you already did the work--unless you depend on the exact error message.
Going forward, we plan to reinforce our release testing strategy [1],[2] and deliver an enhanced testutil
package/module with more flexible and safer APIs.
Thanks to @dashpole @dgrisonnet @kakkoyun @ArthurSens @vesari @logicalhan @krajorama @bwplotka who helped in this patch release! 🤗
Changelog
[BUGFIX] testutil: Reverted #1424; functions using compareMetricFamilies are (again) only failing if filtered metricNames are in the expected input. #1645
v1.20.4
v1.20.3
v1.20.2
v1.20.1
This release contains the critical fix for the issue. Thanks to @geberl, @CubicrootXYZ, @zetaab and @timofurrer for helping us with the investigation!
- [BUGFIX] process-collector: Fixed unregistered descriptor error when using process collector with PedanticRegistry on Linux machines. #1587
v1.20.0
Thanks everyone for contributions!
collectors.NewGoCollector()
collector. Given its popular usage, expect your binary to expose two additional metric.
Changes
- [CHANGE]
⚠️ go-collector: Removego_memstat_lookups_total
metric which was always 0; Go runtime stopped sharing pointer lookup statistics. #1577 - [FEATURE]
⚠️ go-collector: Add 3 default metrics:go_gc_gogc_percent
,go_gc_gomemlimit_bytes
andgo_sched_gomaxprocs_threads
as those are recommended by the Go team. #1559 - [FEATURE] go-collector: Add more information to all metrics' HELP e.g. the exact
runtime/metrics
sourcing each metric (if relevant). #1568 #1578 - [FEATURE] testutil: Add CollectAndFormat method. #1503
- [FEATURE] histograms: Add support for exemplars in native histograms. #1471
- [FEATURE] promhttp: Add experimental support for
zstd
on scrape, controlled by the requestAccept-Encoding
header. #1496 - [FEATURE] api/v1: Add
WithLimit
parameter to all API methods that supports it. #1544 - [FEATURE] prometheus: Add support for created timestamps in constant histograms and constant summaries. #1537
- [FEATURE] process-collectors: Add network usage metrics:
process_network_receive_bytes_total
andprocess_network_transmit_bytes_total
. #1555 - [FEATURE] promlint: Add duplicated metric lint rule. #1472
- [BUGFIX] promlint: Relax metric type in name linter rule. #1455
- [BUGFIX] promhttp: Make sure server
instrumentation wrapping supports new and future extra responseWriter methods. #1480 - [BUGFIX] testutil: Functions using compareMetricFamilies are now failing if filtered metricNames are not in the input. #1424
All commits
- feat(prometheus/testutil/promlint/validations): refine lintMetricType… by @foehammer127 in #1455
- Bump github.com/prometheus/client_golang from 1.18.0 to 1.19.0 in /examples/middleware by @dependabot in #1457
- Bump github.com/prometheus/client_model from 0.5.0 to 0.6.0 by @dependabot in #1458
- Bump golang.org/x/sys from 0.16.0 to 0.17.0 by @dependabot in #1459
- Bump github.com/prometheus/client_golang from 1.18.0 to 1.19.0 in /tutorial/whatsup by @dependabot in #1461
- Merge Release 1.19 back to main by @ArthurSens in #1462
- Bump the github-actions group with 2 updates by @dependabot in #1456
- Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 by @dependabot in #1466
- Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 in /examples/middleware by @dependabot in #1467
- Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 in /tutorial/whatsup by @dependabot in #1469
- Add LintDuplicateMetric to promlint by @bboreham in #1472
- Auto-update Go Collector Metrics for new Go versions by @SachinSahu431 in #1476
- Implement Unwrap() for responseWriterDelegator by @igor-drozdov in #1480
- Bump golang.org/x/sys from 0.17.0 to 0.18.0 by @dependabot in #1485
- Bump github.com/prometheus/procfs from 0.12.0 to 0.13.0 by @dependabot in #1486
- ci: Remove hardcoded supported Go versions from go.yml by @SachinSahu431 in #1489
- feat: metrics generation workflow by @SachinSahu431 in #1481
- fix: remove redundant go module in middleware example by @majolo in #1492
- chore: Refactor how base metrics are added to Sched metrics by @ArthurSens in #1483
- gocollector: Add regex option to allow collection of debug runtime metrics by @ArthurSens in #1389
- Bump github.com/prometheus/common from 0.48.0 to 0.52.3 by @dependabot in #1498
- chore: fix function name in comment by @oftenoccur in #1497
- build(deps): bump golang.org/x/net from 0.20.0 to 0.23.0 in /tutorial/whatsup by @dependabot in #1501
- build(deps): bump golang.org/x/net from 0.22.0 to 0.23.0 by @dependabot in #1502
- feat(dependency): replace go-spew package by @dongjiang1989 in #1499
- build(deps): bump github.com/prometheus/common from 0.52.3 to 0.53.0 by @dependabot in #1504
- build(deps): bump github.com/cespare/xxhash/v2 from 2.2.0 to 2.3.0 by @dependabot in #1505
- build(deps): bump google.golang.org/protobuf from 1.33.0 to 1.34.0 by @dependabot in #1506
- build(deps): bump golang.org/x/sys from 0.18.0 to 0.19.0 by @dependabot in #1507
- build(deps): bump github.com/prometheus/client_model from 0.6.0 to 0.6.1 by @dependabot in #1508
- build(deps): bump github.com/prometheus/common from 0.48.0 to 0.53.0 in /tutorial/whatsup by @dependabot in #1509
- improved code more clean by @lilijreey in #1511
- build(deps): bump the github-actions group with 3 updates by @dependabot in #1510
- [CI]: Add Concurrency Grouping to GitHub Workflows by @Ishani217 in #1444
- Add CollectAndFormat to testutil, allowing caller to assert as they want to on the exported metric by @jcass8695 in #1503
- testutil compareMetricFamilies: make less error-prone by @leonnicolas in #1424
- improved code more clean use time.IsZero() replace t = time.Time{} by @lilijreey in #1515
- add native histogram exemplar support by @fatsheep9146 in #1471
- Synchronize common files from prometheus/prometheus by @prombot in #1514
- build(deps): bump golang.org/x/sys from 0.19.0 to 0.20.0 by @dependabot in #1523
- build(deps): bump google.golang.org/protobuf from 1.34.0 to 1.34.1 by @dependabot in #1522
- Synchronize common files from prometheus/prometheus by @prombot in #1524
- Add PR template for changelog automation by @SachinSahu431 in #1517
- Auto label PRs by @SachinSahu431 in #1518
- Fix: Auto label PRs #1518 by @SachinSahu431 in #1525
- build(deps): bump github.com/prometheus/procfs from 0.13.0 to 0.15.1 by @dependabot in #1527
- ci: Group all changelog-related CI jobs into single one by @ArthurSens in #1526
- Synchronize common files from prometheus/prometheus by @prombot in #1530
- Remove synchronize trigger from changelog workflow by @SachinSahu431 in #1532
- feat: Support zstd compression by @mrueg in #1496
- Fix golangci-lint config by @SuperQ in #1536
- build(deps): bump github.com/prometheus/client_golang from 1.19.0 to 1.19.1 in /tutorial/whatsup by @dependabot in #1529
- Synchronize common files from prometheus/prometheus by @prombot in #1531
- Cleanup NOTICE file by @SuperQ in #1541
- Remove inlined upstream code by @SuperQ in #1539
- Synchronize common files from prometheus/prometheus by @prombot in #1545
- client: Add Option to provide limit query param for APIs that support it by @abbyssoul in #1544
- Allow creating constant histogram and summary metrics with a created timestamp by @swar8080 in #1537
- Update README.md by @bwplotka in #1556
- Temporarily remove required CI job for changelog. by @bwplotka in #1560
- build(deps): bump github.com/prometheus/common from 0.53.0 to 0.55.0 in /tutorial/whatsup by @dependabot in #1549
- build(deps): bump golang.org/x/sys from 0.20.0 to 0.21.0 by @dependabot in #1552
- build(deps): bump github.com/kl...
v1.19.1
v1.19.0
What's Changed
The module prometheus/common v0.48.0
introduced an incompatibility when used together with client_golang (See #1448 for more details). If your project uses client_golang and you want to use prometheus/common v0.48.0
or higher, please update client_golang to v1.19.0.
- [CHANGE] Minimum required go version is now 1.20 (we also test client_golang against new 1.22 version). #1445 #1449
- [FEATURE] collectors: Add version collector. #1422 #1427
New Contributors
- @michurin made their first contribution in #1423
- @kavu made their first contribution in #1445
- @ywwg made their first contribution in #1448
Full Changelog: v1.18.0...v1.19.0
v1.18.0
What's Changed
- [FEATURE] promlint: Allow creation of custom metric validations. #1311
- [FEATURE] Go programs using client_golang can be built in wasip1 OS. #1350
- [BUGFIX] histograms: Add timer to reset ASAP after bucket limiting has happened. #1367
- [BUGFIX] testutil: Fix comparison of metrics with empty Help strings. #1378
- [ENHANCEMENT] Improved performance of
MetricVec.WithLabelValues(...)
. #1360
New Contributors
- @srenatus made their first contribution in #1350
- @jadolg made their first contribution in #1342
- @manas-rust made their first contribution in #1383
- @bluekeyes made their first contribution in #1378
- @tsipo made their first contribution in #1387
Full Changelog: v1.17.0...v1.18.0