go-common merge requestshttps://git.autistici.org/ai3/go-common/-/merge_requests2024-02-14T14:24:57Zhttps://git.autistici.org/ai3/go-common/-/merge_requests/92Update module github.com/fxamacker/cbor/v2 to v2.6.02024-02-14T14:24:57ZrenovateUpdate module github.com/fxamacker/cbor/v2 to v2.6.0This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/fxamacker/cbor/v2](https://github.com/fxamacker/cbor) | require | minor | `v2.4.0` -> `v2.6.0` |
---
### Release Notes
<deta...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/fxamacker/cbor/v2](https://github.com/fxamacker/cbor) | require | minor | `v2.4.0` -> `v2.6.0` |
---
### Release Notes
<details>
<summary>fxamacker/cbor (github.com/fxamacker/cbor/v2)</summary>
### [`v2.6.0`](https://github.com/fxamacker/cbor/releases/tag/v2.6.0)
[Compare Source](https://github.com/fxamacker/cbor/compare/v2.5.0...v2.6.0)
This release adds important new features, optimizations, bug fixes, and 3 new contributors. Fuzz tests passed 5+ billion execs for CBOR encoding and decoding functions. Minimum officially supported Go is bumped to Go 1.17.
#### ⭐ Features and Optimizations
- Add FieldNameMatching decode option. by [@​benluddy](https://github.com/benluddy) in https://github.com/fxamacker/cbor/pull/433
- Add option to decode CBOR bignum to `interface{}` as `*big.Int` by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/456
- Add 2 more options for decoding CBOR integers to `interface{}` by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/457
- Add encoding option to specify how omitempty fields are encoded by [@​dinhxuanvu](https://github.com/dinhxuanvu) in https://github.com/fxamacker/cbor/pull/453
- New options for encoding Go strings to and from CBOR byte strings by [@​benluddy](https://github.com/benluddy) in https://github.com/fxamacker/cbor/pull/465
- Add options to support byte string map keys as struct field names by [@​benluddy](https://github.com/benluddy) in https://github.com/fxamacker/cbor/pull/472
- Add option to specify how to decode unrecognized CBOR tag to `any` by [@​ssuriyan7](https://github.com/ssuriyan7) in https://github.com/fxamacker/cbor/pull/475
#### 🚀 Notable Optimizations
- Improve memory allocs 🗜️ and speed 🚀 of encoding maps by using Go 1.18-1.20 features by [@​dinhxuanvu](https://github.com/dinhxuanvu) in https://github.com/fxamacker/cbor/pull/468
<details><summary>📊 Benchmarks</summary><p/>
`benchstat` results provided by [@​dinhxuanvu](https://github.com/dinhxuanvu)
<img width="100%" alt="Screenshot of CBOR benchmarks" src="https://github.com/fxamacker/cbor/assets/8848239/49515b38-7811-45d8-a38c-e8b1ed332ea5">
</details>
NOTE: Go 1.17 is the minimum version supported by v2.6.0. Go 1.20+ will use optimizations introduced by MR 468.
#### 🛠 Improvements
- Refactor valid() to reject negative values for integer modes by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/434
- Refactor tests to improve consistency and readability by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/458
- Add another test and fix lint errors by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/466
- Refactor map encoding to prep for Go version bump by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/473
- Add `UnrecognizedTagToAny` option to `TestDecOptions` by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/484
- Update go.mod to require go 1.17 by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/489
#### 🐞 Bug Fixes
- Fix panic when decoding CBOR nil to `*cbor.SimpleValue` by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/461
- Fix cbor.SimpleValue encoding and decoding by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/464
- Fix EncOption/DecOption unset fields on mode regurgitation. by [@​benluddy](https://github.com/benluddy) in https://github.com/fxamacker/cbor/pull/480
#### 📖 Docs and CI
- Update README for error handling of CBOR extraneous data by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/426
- Update README for changes in cbor v2.5.0 by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/427
- Update CI and README by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/430
- Update README to add FIDO Alliance, Let's Encrypt, Matrix.org by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/431
- Pin actions/checkout and actions/setup-go by [@​x448](https://github.com/x448) in https://github.com/fxamacker/cbor/pull/436
- Enable more linters by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/437
- Bump github/codeql-action from 2.22.5 to 2.22.8 by [@​dependabot](https://github.com/dependabot) in https://github.com/fxamacker/cbor/pull/443
- Document behavior of Unmarshal of unrecognized tags into interface{} by [@​benluddy](https://github.com/benluddy) in https://github.com/fxamacker/cbor/pull/448
- Bump github/codeql-action from 2.22.8 to 3.22.12 by [@​dependabot](https://github.com/dependabot) in https://github.com/fxamacker/cbor/pull/455
- Bump github/codeql-action from 3.22.12 to 3.23.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/fxamacker/cbor/pull/469
#### New Contributors
- [@​benluddy](https://github.com/benluddy) made their first contribution in https://github.com/fxamacker/cbor/pull/433
- [@​dinhxuanvu](https://github.com/dinhxuanvu) made their first contribution in https://github.com/fxamacker/cbor/pull/453
- [@​ssuriyan7](https://github.com/ssuriyan7) made their first contribution in https://github.com/fxamacker/cbor/pull/475
**Full Changelog**: https://github.com/fxamacker/cbor/compare/v2.5.0...v2.6.0
### [`v2.5.0`](https://github.com/fxamacker/cbor/releases/tag/v2.5.0)
[Compare Source](https://github.com/fxamacker/cbor/compare/v2.4.0...v2.5.0)
This release adds important new features, optimizations, bug fixes, and 8 new contributors. Fuzz tests passed 5+ billion execs for CBOR encoding and decoding functions.
Notable changes are split into 3 categories.
#### ⭐ Notable Changes to Review Before Upgrading
These new features and bug fixes were cherry-picked to highlight for review (for projects using older version).
- [MR 370](https://github.com/fxamacker/cbor/pull/370): Add `SimpleValue` type to more fully support CBOR Simple Values, including values not assigned by IANA and...
- [MR 376](https://github.com/fxamacker/cbor/pull/376): Add `ByteString` type to support CBOR maps with byte string keys because Go doesn't allow \[]byte as map keys and...
- [MR 379](https://github.com/fxamacker/cbor/pull/379): Make `Decoder.Decode()` return `io.ErrUnexpectedEOF` instead of `io.EOF` on EOF if current CBOR data item is incomplete.
- [MR 380](https://github.com/fxamacker/cbor/pull/380): Make `Unmarshal()` and `Valid()` return `cbor.ExtraneousDataError` (instead of ignoring extraneous data if any remain).
- [MR 387](https://github.com/fxamacker/cbor/pull/387): Retry in Decoder if io.Reader's Read() returns 0 bytes read with nil error. Add tests to get 100% code coverage for stream.go.
#### ⭐ More Notable Changes
- [MR 342](https://github.com/fxamacker/cbor/pull/342): Add `DecOptions.UTF8` to decode invalid UTF-8. Default is unchanged (reject invalid UTF-8 and return error).
- [MR 355](https://github.com/fxamacker/cbor/pull/355) Allow `MaxNestedLevels` setting to be configured up to 65535.
- [MR 352](https://github.com/fxamacker/cbor/pull/352), [377](https://github.com/fxamacker/cbor/pull/377): Add `EncOptions.NilContainersMode` to encode nil Go maps and slices as either CBOR nil (default) or empty container.
- [MR 381](https://github.com/fxamacker/cbor/pull/381): Add `Decoder.Skip()` to skip CBOR data item in CBOR Sequences ([RFC 8742](https://datatracker.ietf.org/doc/rfc8742/)).
- [MR 386](https://github.com/fxamacker/cbor/pull/386) Add functions for Extended Diagnostic Notation (RFC 8610 Appendix G).
- [MR 398](https://github.com/fxamacker/cbor/pull/398) Add `UnmarshalFirst()` to decode CBOR data item and also return remaining bytes.
- [MR 400](https://github.com/fxamacker/cbor/pull/400) Deprecate `Valid` and add `Wellformed` to replace it.
- [MR 402](https://github.com/fxamacker/cbor/pull/402) Add `UnmarshalFirst()` to `DecMode` interface.
- [MR 412](https://github.com/fxamacker/cbor/pull/412) Add `Decoder.Buffered` to return remaining data in buffer.
#### 🚀 Notable Changes Affecting Speed or Memory Use
- [MR 335](https://github.com/fxamacker/cbor/pull/342): Reuse underlying array if `RawMessage` has sufficient capacity.
- [MR 382](https://github.com/fxamacker/cbor/pull/382): Return buffer to pool in `Encode()`. It adds a bit of overhead to `Encode()` but `NewEncoder().Encode()` is faster and uses less memory.
##### Benchmark comparison for MR 382 shows significant improvement in speed and memory use.
<details><summary> :rocket: (click to expand) :rocket: </summary><p/>
Benchmarks provided by [@​x448](https://github.com/x448) for `NewEncoder().Encode()` optimized in MR 382.
$ benchstat bench-v2.4.0.log bench-f9e6291.log
goos: linux
goarch: amd64
pkg: github.com/fxamacker/cbor/v2
cpu: 12th Gen Intel(R) Core(TM) i7-12700H
│ bench-v2.4.0.log │ bench-f9e6291.log │
│ sec/op │ sec/op vs base │
NewEncoderEncode/Go_bool_to_CBOR_bool-20 236.70n ± 2% 58.04n ± 1% -75.48% (p=0.000 n=10)
NewEncoderEncode/Go_uint64_to_CBOR_positive_int-20 238.00n ± 2% 63.93n ± 1% -73.14% (p=0.000 n=10)
NewEncoderEncode/Go_int64_to_CBOR_negative_int-20 238.65n ± 2% 64.88n ± 1% -72.81% (p=0.000 n=10)
NewEncoderEncode/Go_float64_to_CBOR_float-20 242.00n ± 2% 63.00n ± 1% -73.97% (p=0.000 n=10)
NewEncoderEncode/Go_[]uint8_to_CBOR_bytes-20 245.60n ± 1% 68.55n ± 1% -72.09% (p=0.000 n=10)
NewEncoderEncode/Go_string_to_CBOR_text-20 243.20n ± 3% 68.39n ± 1% -71.88% (p=0.000 n=10)
NewEncoderEncode/Go_[]int_to_CBOR_array-20 563.0n ± 2% 378.3n ± 0% -32.81% (p=0.000 n=10)
NewEncoderEncode/Go_map[string]string_to_CBOR_map-20 2.043µ ± 2% 1.906µ ± 2% -6.75% (p=0.000 n=10)
geomean 349.7n 122.7n -64.92%
│ bench-v2.4.0.log │ bench-f9e6291.log │
│ B/op │ B/op vs base │
NewEncoderEncode/Go_bool_to_CBOR_bool-20 128.0 ± 0% 0.0 ± 0% -100.00% (p=0.000 n=10)
NewEncoderEncode/Go_uint64_to_CBOR_positive_int-20 128.0 ± 0% 0.0 ± 0% -100.00% (p=0.000 n=10)
NewEncoderEncode/Go_int64_to_CBOR_negative_int-20 128.0 ± 0% 0.0 ± 0% -100.00% (p=0.000 n=10)
NewEncoderEncode/Go_float64_to_CBOR_float-20 128.0 ± 0% 0.0 ± 0% -100.00% (p=0.000 n=10)
NewEncoderEncode/Go_[]uint8_to_CBOR_bytes-20 128.0 ± 0% 0.0 ± 0% -100.00% (p=0.000 n=10)
NewEncoderEncode/Go_string_to_CBOR_text-20 128.0 ± 0% 0.0 ± 0% -100.00% (p=0.000 n=10)
NewEncoderEncode/Go_[]int_to_CBOR_array-20 128.0 ± 0% 0.0 ± 0% -100.00% (p=0.000 n=10)
NewEncoderEncode/Go_map[string]string_to_CBOR_map-20 544.0 ± 0% 416.0 ± 0% -23.53% (p=0.000 n=10)
geomean 153.4 ? ¹ ²
¹ summaries must be >0 to compute geomean
² ratios must be >0 to compute geomean
│ bench-v2.4.0.log │ bench-f9e6291.log │
│ allocs/op │ allocs/op vs base │
NewEncoderEncode/Go_bool_to_CBOR_bool-20 2.000 ± 0% 0.000 ± 0% -100.00% (p=0.000 n=10)
NewEncoderEncode/Go_uint64_to_CBOR_positive_int-20 2.000 ± 0% 0.000 ± 0% -100.00% (p=0.000 n=10)
NewEncoderEncode/Go_int64_to_CBOR_negative_int-20 2.000 ± 0% 0.000 ± 0% -100.00% (p=0.000 n=10)
NewEncoderEncode/Go_float64_to_CBOR_float-20 2.000 ± 0% 0.000 ± 0% -100.00% (p=0.000 n=10)
NewEncoderEncode/Go_[]uint8_to_CBOR_bytes-20 2.000 ± 0% 0.000 ± 0% -100.00% (p=0.000 n=10)
NewEncoderEncode/Go_string_to_CBOR_text-20 2.000 ± 0% 0.000 ± 0% -100.00% (p=0.000 n=10)
NewEncoderEncode/Go_[]int_to_CBOR_array-20 2.000 ± 0% 0.000 ± 0% -100.00% (p=0.000 n=10)
NewEncoderEncode/Go_map[string]string_to_CBOR_map-20 28.00 ± 0% 26.00 ± 0% -7.14% (p=0.000 n=10)
geomean 2.782 ? ¹ ²
¹ summaries must be >0 to compute geomean
² ratios must be >0 to compute geomean
</details>
#### What's Changed
All merged pull requests are listed here (including the already highlighted ones).
<details><summary>(click to expand)</summary>
##### Changes to Code
Most coding changes here were already mentioned.
- Reuse underlying array if RawMessage has sufficient capacity by [@​zensh](https://github.com/zensh) in https://github.com/fxamacker/cbor/pull/335
- Add decoding option to allow invalid UTF-8 by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/342
- Allow MaxNestedLevels to be up to 65535 by [@​immesys](https://github.com/immesys) in https://github.com/fxamacker/cbor/pull/355
- Add support for unassigned/reserved CBOR simple values by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/370
- Add ByteString type to support any CBOR byte string by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/376
- add option to enforce nil container marshaling as empty containers by [@​dedefer](https://github.com/dedefer) in https://github.com/fxamacker/cbor/pull/352
- Refactor NilContainersMode option by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/377
- Make Decoder.Decode() return io.UnexpectedEOF instead of io.EOF if CBOR data item is truncated by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/379
- Fix handling of extra data in Unmarshal() & Valid() by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/380
- Add Decoder.Skip() to skip CBOR data item in CBOR Sequences (RFC 8742) by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/381
- Return buffer to pool when using Encoder by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/382
- Retry in decoder if Read() returns 0 bytes read with nil error by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/387
- Deprecate Valid() and add Wellformed() to replace it by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/400
- Add UnmarshalFirst by [@​immesys](https://github.com/immesys) in https://github.com/fxamacker/cbor/pull/398
- Add UnmarshalFirst to DecMode interface by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/402
- Add functions for Extended Diagnostic Notation (RFC 8610 Appendix G) by [@​zensh](https://github.com/zensh) in https://github.com/fxamacker/cbor/pull/386
- Add more tests for Diagnose and DiagnoseFirst by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/405
- Fix Diagnose to return io.EOF error on empty data by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/410
- Add `Decoder.Buffered` to return buffered data by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/412
- Fix `Diagnose()` to return `io.EOF` error on empty data by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/410
##### Changes to CI, Comments, and Docs
- Remove trailing whitespaces in .golangci.yml by [@​CodingVoid](https://github.com/CodingVoid) in https://github.com/fxamacker/cbor/pull/333
- Update ci.yml by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/334
- Update ci.yml by [@​x448](https://github.com/x448) in https://github.com/fxamacker/cbor/pull/339
- Update ci.yml by [@​x448](https://github.com/x448) in https://github.com/fxamacker/cbor/pull/340
- Remove default permissions from GitHub Actions workflows by [@​x448](https://github.com/x448) in https://github.com/fxamacker/cbor/pull/341
- Fix ci for stream mode branch by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/344
- Create dependabot.yml by [@​x448](https://github.com/x448) in https://github.com/fxamacker/cbor/pull/346
- Bump github/codeql-action from 1 to 2 by [@​dependabot](https://github.com/dependabot) in https://github.com/fxamacker/cbor/pull/347
- Update pull_request_template.md by [@​x448](https://github.com/x448) in https://github.com/fxamacker/cbor/pull/350
- Fix typos by [@​deeglaze](https://github.com/deeglaze) in https://github.com/fxamacker/cbor/pull/353
- Mention security assessment by NCC Group by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/358
- godoc.org link in Readme should point to v2 by [@​jdharms](https://github.com/jdharms) in https://github.com/fxamacker/cbor/pull/361
- Add Go 1.19 to ci.yml test matrix by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/363
- bump safer-golangci-lint.yml to 1.46.2 by [@​x448](https://github.com/x448) in https://github.com/fxamacker/cbor/pull/365
- Bump Go to 1.19 in ci-go-cover.yml by [@​x448](https://github.com/x448) in https://github.com/fxamacker/cbor/pull/367
- Bump safer-golangci-lint.yml to 1.49.0.1 by [@​x448](https://github.com/x448) in https://github.com/fxamacker/cbor/pull/368
- Mention 1276 repos depend on fxamacker/cbor/v2 by [@​x448](https://github.com/x448) in https://github.com/fxamacker/cbor/pull/371
- docs: fix EncMode example in the package comment by [@​creachadair](https://github.com/creachadair) in https://github.com/fxamacker/cbor/pull/375
- Update fxamacker_cbor_banner.png for v2.5 by [@​x448](https://github.com/x448) in https://github.com/fxamacker/cbor/pull/383
- bump safer-golangci-lint.yml to 1.51.1 by [@​x448](https://github.com/x448) in https://github.com/fxamacker/cbor/pull/389
- Create govulncheck.yml by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/393
- Update README for cbor v2.5.0-beta2 by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/394
- Bump actions/setup-go from 3 to 4 by [@​dependabot](https://github.com/dependabot) in https://github.com/fxamacker/cbor/pull/395
- Update ci-go-cover.yml by [@​x448](https://github.com/x448) in https://github.com/fxamacker/cbor/pull/404
- Update README for CBOR Sequences RFC 8742 by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/406
- Update README.md for v2.5.0-beta3 by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/407
- Bump safer-golangci-lint to 1.52.2 by [@​x448](https://github.com/x448) in https://github.com/fxamacker/cbor/pull/408
- Update README.md for cbor v2.5.0-beta4 by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/411
- Update README.md for v2.5.0-beta5 by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/413
- Bump CI govulncheck to v1.0.0 by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/414
- Remove ignored UTF8 setting in diagMode() by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/417
- Update README for CBOR codec v2.5.0-rc1 by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/418
- Update README.md by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/419
- Update intro and cbor quick start in README by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/421
- Update README.md for v2.5.0 by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/422
- Update CONTRIBUTING.md by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/423
- Update README.md for v2.5.0 by [@​fxamacker](https://github.com/fxamacker) in https://github.com/fxamacker/cbor/pull/424
</details>
#### New Contributors (alphabetically)
- [@​agaffney](https://github.com/agaffney) made their first contribution in https://github.com/fxamacker/cbor/pull/376
- [@​CodingVoid](https://github.com/CodingVoid) made their first contribution in https://github.com/fxamacker/cbor/pull/333
- [@​creachadair](https://github.com/creachadair) made their first contribution in https://github.com/fxamacker/cbor/pull/375
- [@​dedefer](https://github.com/dedefer) made their first contribution in https://github.com/fxamacker/cbor/pull/352
- [@​deeglaze](https://github.com/deeglaze) made their first contribution in https://github.com/fxamacker/cbor/pull/353
- [@​immesys](https://github.com/immesys) made their first contribution in https://github.com/fxamacker/cbor/pull/355
- [@​jdharms](https://github.com/jdharms) made their first contribution in https://github.com/fxamacker/cbor/pull/361
- [@​zensh](https://github.com/zensh) made their first contribution in https://github.com/fxamacker/cbor/pull/335
Non-coding contibutions were made by opening notable issues that directly or indirectly improved this release.
- [@​burdiyan](https://github.com/burdiyan) opened issue and followups that led to `Encode()` returning buffer to pool as default behavior.
- [@​espoal](https://github.com/espoal) opened issue and followups that led to adding Skip() feature for CBOR Sequences (RFC 8742).
- [@​immesys](https://github.com/immesys) opened multiple issues and provided helpful feedback in addition to merged MRs.
- [@​qmuntal](https://github.com/qmuntal) opened issue and [@​x448](https://github.com/x448) added feedback that led to improved support for CBOR Simple Values.
- [@​x448](https://github.com/x448) opened multiple issues and provided helpful feedback in addition to merged MRs.
- [@​zensh](https://github.com/zensh) opened multiple issues and provided helpful feedback in addition to merged MRs.
**Full Changelog**: https://github.com/fxamacker/cbor/compare/v2.4.0...v2.5.0
</details>
---
### Configuration
📅 **Schedule**: 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 MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi40LjAiLCJ1cGRhdGVkSW5WZXIiOiIzNi40OS4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->https://git.autistici.org/ai3/go-common/-/merge_requests/91Update module github.com/go-ldap/ldap/v3 to v3.4.62023-09-16T12:27:50ZrenovateUpdate module github.com/go-ldap/ldap/v3 to v3.4.6This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/go-ldap/ldap/v3](https://github.com/go-ldap/ldap) | require | patch | `v3.4.4` -> `v3.4.6` |
---
### Release Notes
<details>...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/go-ldap/ldap/v3](https://github.com/go-ldap/ldap) | require | patch | `v3.4.4` -> `v3.4.6` |
---
### Release Notes
<details>
<summary>go-ldap/ldap (github.com/go-ldap/ldap/v3)</summary>
### [`v3.4.6`](https://github.com/go-ldap/ldap/releases/tag/v3.4.6)
[Compare Source](https://github.com/go-ldap/ldap/compare/v3.4.5...v3.4.6)
#### What's new
- Add search asynchronously with context by [@​t2y](https://github.com/t2y) in https://github.com/go-ldap/ldap/pull/440
- Add syncrepl (rfc-4533) consumer (persistent search) by [@​t2y](https://github.com/t2y) in https://github.com/go-ldap/ldap/pull/447
- Add fuzz testing by [@​0x34d](https://github.com/0x34d) in https://github.com/go-ldap/ldap/pull/448
- Add go 1.21 build/testing to github workflow by [@​t2y](https://github.com/t2y) in https://github.com/go-ldap/ldap/pull/457
- Add support for Go 1.13's errors.Is/As functions by [@​zmb3](https://github.com/zmb3) in https://github.com/go-ldap/ldap/pull/461
- Add cifuzz workflow by [@​0x34d](https://github.com/0x34d) in https://github.com/go-ldap/ldap/pull/460
#### What's Changed
- Fix a deadlock issue using search asynchronously by [@​t2y](https://github.com/t2y) in https://github.com/go-ldap/ldap/pull/446
- Fix panics in GetLDAPError by [@​TomSellers](https://github.com/TomSellers) in https://github.com/go-ldap/ldap/pull/455
- ControlSyncRequest Encode: cookie optionality by [@​zeslava](https://github.com/zeslava) in https://github.com/go-ldap/ldap/pull/459
- Refactor DirSync search process by [@​t2y](https://github.com/t2y) in https://github.com/go-ldap/ldap/pull/458
- Update dependent packages: by [@​iredmail](https://github.com/iredmail) in https://github.com/go-ldap/ldap/pull/462
- chore: update go-asn1-ber to v1.5.5 by [@​cpuschma](https://github.com/cpuschma) in https://github.com/go-ldap/ldap/pull/464
- fix request timeout race condition by [@​raymonstah](https://github.com/raymonstah) in https://github.com/go-ldap/ldap/pull/465
- fix: `FuzzParseDN` causing OOMs in restricted environments by [@​cpuschma](https://github.com/cpuschma) in https://github.com/go-ldap/ldap/pull/466
- chore: Mirror v3 to root directory by [@​cpuschma](https://github.com/cpuschma) in https://github.com/go-ldap/ldap/pull/468
#### New Contributors
- [@​t2y](https://github.com/t2y) made their first contribution in https://github.com/go-ldap/ldap/pull/440
- [@​0x34d](https://github.com/0x34d) made their first contribution in https://github.com/go-ldap/ldap/pull/448
- [@​TomSellers](https://github.com/TomSellers) made their first contribution in https://github.com/go-ldap/ldap/pull/455
- [@​zeslava](https://github.com/zeslava) made their first contribution in https://github.com/go-ldap/ldap/pull/459
- [@​zmb3](https://github.com/zmb3) made their first contribution in https://github.com/go-ldap/ldap/pull/461
- [@​iredmail](https://github.com/iredmail) made their first contribution in https://github.com/go-ldap/ldap/pull/462
- [@​raymonstah](https://github.com/raymonstah) made their first contribution in https://github.com/go-ldap/ldap/pull/465
**Full Changelog**: https://github.com/go-ldap/ldap/compare/v3.4.5...v3.4.6
### [`v3.4.5`](https://github.com/go-ldap/ldap/releases/tag/v3.4.5)
[Compare Source](https://github.com/go-ldap/ldap/compare/v3.4.4...v3.4.5)
#### What's New
- Add function to escape distinguished names by [@​tsschaffert](https://github.com/tsschaffert) in https://github.com/go-ldap/ldap/pull/393
- Add CLDAP (RFC1798 UDP/Connectionless) support to DialURL by [@​dsnt02518](https://github.com/dsnt02518) in https://github.com/go-ldap/ldap/pull/397
- Add support for SSPI GSSAPI SASL mechanism bind by [@​FlipB](https://github.com/FlipB) in https://github.com/go-ldap/ldap/pull/402
- implement server side sorting controls (rfc2891) by [@​m-vinc](https://github.com/m-vinc) in https://github.com/go-ldap/ldap/pull/414
- add unmarshalling of generalizedTimestamp and DN by [@​vetinari](https://github.com/vetinari) in https://github.com/go-ldap/ldap/pull/434
- feat: enable DirSync control in search operation by [@​masato-sso](https://github.com/masato-sso) in https://github.com/go-ldap/ldap/pull/436
#### What's Changed
- chore: Update GitHub Actions dependencies and test matrix by [@​cpuschma](https://github.com/cpuschma) in https://github.com/go-ldap/ldap/pull/400
- chore: deprecate unnecessary wrapper for `DialWithDialer` and `DialWithTLSConfig` by [@​cpuschma](https://github.com/cpuschma) in https://github.com/go-ldap/ldap/pull/399
- fix: packet referral decoding by [@​james-d-elliott](https://github.com/james-d-elliott) in https://github.com/go-ldap/ldap/pull/413
- fix: error and search result handling in SearchWithPaging by [@​cpuschma](https://github.com/cpuschma) in https://github.com/go-ldap/ldap/pull/417
- Lint/gofmt fixes. by [@​dsnt02518](https://github.com/dsnt02518) in https://github.com/go-ldap/ldap/pull/418
- Update dependencies by [@​johnweldon](https://github.com/johnweldon) in https://github.com/go-ldap/ldap/pull/420
- fix: parsedn not handling attributes with equal char in value by [@​james-d-elliott](https://github.com/james-d-elliott) in https://github.com/go-ldap/ldap/pull/425
- gofumpt by [@​johnweldon](https://github.com/johnweldon) in https://github.com/go-ldap/ldap/pull/427
- Fix deadlocks caused by invalid connection state by [@​cholland1989](https://github.com/cholland1989) in https://github.com/go-ldap/ldap/pull/432
- fix: return errors upon panics or receiving unexpected responses by [@​cpuschma](https://github.com/cpuschma) in https://github.com/go-ldap/ldap/pull/433
#### New Contributors
- [@​tsschaffert](https://github.com/tsschaffert) made their first contribution in https://github.com/go-ldap/ldap/pull/393
- [@​dsnt02518](https://github.com/dsnt02518) made their first contribution in https://github.com/go-ldap/ldap/pull/397
- [@​FlipB](https://github.com/FlipB) made their first contribution in https://github.com/go-ldap/ldap/pull/402
- [@​m-vinc](https://github.com/m-vinc) made their first contribution in https://github.com/go-ldap/ldap/pull/414
- [@​cholland1989](https://github.com/cholland1989) made their first contribution in https://github.com/go-ldap/ldap/pull/432
- [@​masato-sso](https://github.com/masato-sso) made their first contribution in https://github.com/go-ldap/ldap/pull/436
**Full Changelog**: https://github.com/go-ldap/ldap/compare/v3.4.4...v3.4.5
</details>
---
### Configuration
📅 **Schedule**: 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 MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS44OS4xIiwidXBkYXRlZEluVmVyIjoiMzYuNDkuMCIsInRhcmdldEJyYW5jaCI6Im1hc3RlciJ9-->https://git.autistici.org/ai3/go-common/-/merge_requests/90Update module github.com/mattn/go-sqlite3 to v1.14.222024-02-02T17:24:36ZrenovateUpdate module github.com/mattn/go-sqlite3 to v1.14.22This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/mattn/go-sqlite3](https://github.com/mattn/go-sqlite3) | require | patch | `v1.14.16` -> `v1.14.22` |
---
### Release Notes
...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/mattn/go-sqlite3](https://github.com/mattn/go-sqlite3) | require | patch | `v1.14.16` -> `v1.14.22` |
---
### Release Notes
<details>
<summary>mattn/go-sqlite3 (github.com/mattn/go-sqlite3)</summary>
### [`v1.14.22`](https://github.com/mattn/go-sqlite3/compare/v1.14.21...v1.14.22)
[Compare Source](https://github.com/mattn/go-sqlite3/compare/v1.14.21...v1.14.22)
### [`v1.14.21`](https://github.com/mattn/go-sqlite3/compare/v1.14.20...v1.14.21)
[Compare Source](https://github.com/mattn/go-sqlite3/compare/v1.14.20...v1.14.21)
### [`v1.14.20`](https://github.com/mattn/go-sqlite3/compare/v1.14.19...v1.14.20)
[Compare Source](https://github.com/mattn/go-sqlite3/compare/v1.14.19...v1.14.20)
### [`v1.14.19`](https://github.com/mattn/go-sqlite3/compare/v1.14.18...v1.14.19)
[Compare Source](https://github.com/mattn/go-sqlite3/compare/v1.14.18...v1.14.19)
### [`v1.14.18`](https://github.com/mattn/go-sqlite3/compare/v1.14.17...v1.14.18)
[Compare Source](https://github.com/mattn/go-sqlite3/compare/v1.14.17...v1.14.18)
### [`v1.14.17`](https://github.com/mattn/go-sqlite3/compare/v1.14.16...v1.14.17)
[Compare Source](https://github.com/mattn/go-sqlite3/compare/v1.14.16...v1.14.17)
</details>
---
### Configuration
📅 **Schedule**: 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 MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS44OS4xIiwidXBkYXRlZEluVmVyIjoiMzYuNDkuMCIsInRhcmdldEJyYW5jaCI6Im1hc3RlciJ9-->https://git.autistici.org/ai3/go-common/-/merge_requests/89Update module go.opentelemetry.io/contrib/propagators/b3 to v1.24.02024-02-23T18:25:04ZrenovateUpdate module go.opentelemetry.io/contrib/propagators/b3 to v1.24.0This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [go.opentelemetry.io/contrib/propagators/b3](https://github.com/open-telemetry/opentelemetry-go-contrib) | require | minor | `v1.9.0` -> `v...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [go.opentelemetry.io/contrib/propagators/b3](https://github.com/open-telemetry/opentelemetry-go-contrib) | require | minor | `v1.9.0` -> `v1.24.0` |
---
### Release Notes
<details>
<summary>open-telemetry/opentelemetry-go-contrib (go.opentelemetry.io/contrib/propagators/b3)</summary>
### [`v1.24.0`](https://github.com/open-telemetry/opentelemetry-go-contrib/releases/tag/v1.24.0): /v0.49.0/v0.18.0/v0.4.0
[Compare Source](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/v1.23.0...v1.24.0)
This release is the last to support [Go 1.20]. The next release will require at least [Go 1.21].
##### Added
- Support [Go 1.22]. ([#​5082](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/5082))
- Add support for Summary metrics to `go.opentelemetry.io/contrib/bridges/prometheus`. ([#​5089](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/5089))
- Add support for Exponential (native) Histograms in `go.opentelemetry.io/contrib/bridges/prometheus`. ([#​5093](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/5093))
##### Removed
- The deprecated `RequestCount` constant in `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp` is removed. ([#​4894](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4894))
- The deprecated `RequestContentLength` constant in `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp` is removed. ([#​4894](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4894))
- The deprecated `ResponseContentLength` constant in `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp` is removed. ([#​4894](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4894))
- The deprecated `ServerLatency` constant in `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp` is removed. ([#​4894](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4894))
##### Fixed
- Retrieving the body bytes count in `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp` does not cause a data race anymore. ([#​5080](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/5080))
#### New Contributors
- [@​arvindbr8](https://github.com/arvindbr8) made their first contribution in https://github.com/open-telemetry/opentelemetry-go-contrib/pull/4897
- [@​wushujames](https://github.com/wushujames) made their first contribution in https://github.com/open-telemetry/opentelemetry-go-contrib/pull/5135
**Full Changelog**: https://github.com/open-telemetry/opentelemetry-go-contrib/compare/v1.23.0...v1.24.0
[Go 1.22]: https://go.dev/doc/go1.22
[Go 1.21]: https://go.dev/doc/go1.21
[Go 1.20]: https://go.dev/doc/go1.20
### [`v1.23.0`](https://github.com/open-telemetry/opentelemetry-go-contrib/releases/tag/v1.23.0): /v0.48.0/v0.17.0/v0.3.0
[Compare Source](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/v1.22.0...v1.23.0)
##### Added
- Add client metric support to `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp`. ([#​4707](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4707))
- Add peer attributes to spans recorded by `NewClientHandler`, `NewServerHandler` in `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc`. ([#​4873](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4873))
- Add support for `cloud.account.id`, `cloud.availability_zone` and `cloud.region` in the AWS ECS detector. ([#​4860](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4860))
##### Changed
- The fallback options in `go.opentelemetry.io/contrib/exporters/autoexport` now accept factory functions. ([#​4891](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4891))
- `WithFallbackMetricReader(metric.Reader) MetricOption` is replaced with `func WithFallbackMetricReader(func(context.Context) (metric.Reader, error)) MetricOption`.
- `WithFallbackSpanExporter(trace.SpanExporter) SpanOption` is replaced with `WithFallbackSpanExporter(func(context.Context) (trace.SpanExporter, error)) SpanOption`.
- The `http.server.request_content_length` metric in `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp` is changed to `http.server.request.size`.([#​4707](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4707))
- The `http.server.response_content_length` metric in `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp` is changed to `http.server.response.size`.([#​4707](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4707))
##### Deprecated
- The `RequestCount`, `RequestContentLength`, `ResponseContentLength`, `ServerLatency` constants in `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp` are deprecated. ([#​4707](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4707))
##### Fixed
- Do not panic in `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc` if `MeterProvider` returns a `nil` instrument. ([#​4875](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4875))
#### New Contributors
- [@​acpana](https://github.com/acpana) made their first contribution in https://github.com/open-telemetry/opentelemetry-go-contrib/pull/4831
- [@​hiroyaonoe](https://github.com/hiroyaonoe) made their first contribution in https://github.com/open-telemetry/opentelemetry-go-contrib/pull/4704
- [@​hcelaloner](https://github.com/hcelaloner) made their first contribution in https://github.com/open-telemetry/opentelemetry-go-contrib/pull/4891
**Full Changelog**: https://github.com/open-telemetry/opentelemetry-go-contrib/compare/v1.22.0...v1.23.0
### [`v1.22.0`](https://github.com/open-telemetry/opentelemetry-go-contrib/releases/tag/v1.22.0): Release 1.22.0/0.47.0/0.16.0/0.2.0
[Compare Source](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/v1.21.1...v1.22.0)
##### Added
- Add `SDK.Shutdown` method in `"go.opentelemetry.io/contrib/config"`. ([#​4583](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4583))
- `NewSDK` in `go.opentelemetry.io/contrib/config` now returns a configured SDK with a valid `TracerProvider`. ([#​4741](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4741))
##### Changed
- The semantic conventions used by `go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful` are upgraded to v1.20.0. ([#​4320](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4320))
- The semantic conventions used by `go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin` are upgraded to v1.20.0. ([#​4320](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4320))
- The semantic conventions used by `go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux` are upgraded to v1.20.0. ([#​4320](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4320))
- The semantic conventions used by `go.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelecho` are upgraded to v1.20.0. ([#​4320](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4320))
- The semantic conventions used by `go.opentelemetry.io/contrib/instrumentation/gopkg.in/macaron.v1/otelmacaron` are upgraded to v1.20.0. ([#​4320](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4320))
- The semantic conventions used by `go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace` are upgraded to v1.20.0. ([#​4320](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4320))
- The semantic conventions used by `go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace/example` are upgraded to v1.20.0. ([#​4320](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4320))
- The semantic conventions used by `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/example` are upgraded to v1.20.0. ([#​4320](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4320))
- The semantic conventions used by `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp`are upgraded to v1.20.0. ([#​4320](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4320))
- Updated configuration schema to include `schema_url` for resource definition and `without_type_suffix` and `without_units` for the Prometheus exporter. ([#​4727](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4727))
- The semantic conventions used by the `go.opentelemetry.io/contrib/detectors/aws/ecs` resource detector are upgraded to v1.24.0. ([#​4803](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4803))
- The semantic conventions used by the `go.opentelemetry.io/contrib/detectors/aws/lambda` resource detector are upgraded to v1.24.0. ([#​4803](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4803))
- The semantic conventions used by the `go.opentelemetry.io/contrib/detectors/aws/ec2` resource detector are upgraded to v1.24.0. ([#​4803](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4803))
- The semantic conventions used by the `go.opentelemetry.io/contrib/detectors/aws/eks` resource detector are upgraded to v1.24.0. ([#​4803](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4803))
- The semantic conventions used by the `go.opentelemetry.io/contrib/detectors/gcp` resource detector are upgraded to v1.24.0. ([#​4803](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4803))
- The semantic conventions used in `go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-lambda-go/otellambda/test` are upgraded to v1.24.0. ([#​4803](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4803))
##### Fixed
- Fix `NewServerHandler` in `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc` to correctly set the span status depending on the gRPC status. ([#​4587](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4587))
- The `stats.Handler` from `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc` now does not crash when receiving an unexpected context. ([#​4825](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4825))
- Update `go.opentelemetry.io/contrib/detectors/aws/ecs` to fix the task ARN when it is not valid. ([#​3583](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3583))
- Do not panic in `go.opentelemetry.io/contrib/detectors/aws/ecs` when the container ARN is not valid. ([#​3583](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3583))
### [`v1.21.1`](https://github.com/open-telemetry/opentelemetry-go-contrib/releases/tag/v1.21.1): /v0.46.1/v0.15.1/v0.1.1
[Compare Source](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/v1.21.0...v1.21.1)
##### Changed
- Upgrade dependencies of OpenTelemetry Go to use the new [`v1.21.0`/`v0.44.0` release](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.21.0). ([#​4582](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4582))
##### Fixed
- Fix `StreamClientInterceptor` in `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc` to end the spans synchronously. ([#​4537](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4537))
- Fix data race in stats handlers when processing messages received and sent metrics in `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc`. ([#​4577](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4577))
- The stats handlers `NewClientHandler`, `NewServerHandler` in `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc` now record RPC durations in `ms` instead of `ns`. ([#​4548](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4548))
### [`v1.21.0`](https://github.com/open-telemetry/opentelemetry-go-contrib/releases/tag/v1.21.0): /v0.46.0/v0.15.0/v0.1.0
[Compare Source](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/v1.20.0...v1.21.0)
##### Added
- Add the new `go.opentelemetry.io/contrib/instrgen` package to provide auto-generated source code instrumentation. ([#​3068](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3068), [#​3108](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3108))
- Add `"go.opentelemetry.io/contrib/samplers/jaegerremote".WithSamplingStrategyFetcher` which sets custom fetcher implementation. ([#​4045](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4045))
- Add `"go.opentelemetry.io/contrib/config"` package that includes configuration models generated via go-jsonschema. ([#​4376](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4376))
- Add `NewSDK` function to `"go.opentelemetry.io/contrib/config"`. The initial implementation only returns noop providers. ([#​4414](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4414))
- Add metrics support (No-op, OTLP and Prometheus) to `go.opentelemetry.io/contrib/exporters/autoexport`. ([#​4229](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4229), [#​4479](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4479))
- Add support for `console` span exporter and metrics exporter in `go.opentelemetry.io/contrib/exporters/autoexport`. ([#​4486](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4486))
- Set unit and description on all instruments in `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp`. ([#​4500](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4500))
- Add metric support for `grpc.StatsHandler` in `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc`. ([#​4356](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4356))
- Expose the name of the scopes in all instrumentation libraries as `ScopeName`. ([#​4448](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4448))
##### Changed
- Dropped compatibility testing for \[Go 1.19].
The project no longer guarantees support for this version of Go. ([#​4352](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4352))
- Upgrade dependencies of OpenTelemetry Go to use the new [`v1.20.0`/`v0.43.0` release](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.20.0). ([#​4546](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4546))
- In `go.opentelemetry.io/contrib/exporters/autoexport`, `Option` was renamed to `SpanOption`. The old name is deprecated but continues to be supported as an alias. ([#​4229](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4229))
##### Deprecated
- The interceptors (`UnaryClientInterceptor`, `StreamClientInterceptor`, `UnaryServerInterceptor`, `StreamServerInterceptor`, `WithInterceptorFilter`) are deprecated. Use stats handlers (`NewClientHandler`, `NewServerHandler`) instead. ([#​4534](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4534))
##### Fixed
- The `go.opentelemetry.io/contrib/samplers/jaegerremote` sampler does not panic when the default HTTP round-tripper (`http.DefaultTransport`) is not `*http.Transport`. ([#​4045](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4045))
- The `UnaryServerInterceptor` in `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc` now sets gRPC status code correctly for the `rpc.server.duration` metric. ([#​4481](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4481))
- The `NewClientHandler`, `NewServerHandler` in `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc` now honor `otelgrpc.WithMessageEvents` options. ([#​4536](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4536))
- The `net.sock.peer.*` and `net.peer.*` high cardinality attributes are removed from the metrics generated by `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc`. ([#​4322](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4322))
### [`v1.20.0`](https://github.com/open-telemetry/opentelemetry-go-contrib/releases/tag/v1.20.0): /v0.45.0/v0.14.0
[Compare Source](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/v1.19.0...v1.20.0)
##### Added
- Set the description for the `rpc.server.duration` metric in `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc`. ([#​4302](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4302))
- Add `NewServerHandler` and `NewClientHandler` that return a `grpc.StatsHandler` used for gRPC instrumentation in `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc`. ([#​3002](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3002))
- Add new Prometheus bridge module in `go.opentelemetry.io/contrib/bridges/prometheus`. ([#​4227](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4227))
##### Changed
- Upgrade dependencies of OpenTelemetry Go to use the new [`v1.19.0`/`v0.42.0`/`v0.0.7` release](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.19.0).
- Use `grpc.StatsHandler` for gRPC instrumentation in `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/example`. ([#​4325](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4325))
#### New Contributors
- [@​puckpuck](https://github.com/puckpuck) made their first contribution in https://github.com/open-telemetry/opentelemetry-go-contrib/pull/4302
**Full Changelog**: https://github.com/open-telemetry/opentelemetry-go-contrib/compare/v1.19.0...v1.20.0
### [`v1.19.0`](https://github.com/open-telemetry/opentelemetry-go-contrib/releases/tag/v1.19.0): /v0.44.0/v0.13.0
[Compare Source](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/v1.18.0...v1.19.0)
##### Added
- Add `gcp.gce.instance.name` and `gcp.gce.instance.hostname` resource attributes to `go.opentelemetry.io/contrib/detectors/gcp`. ([#​4263](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4263))
##### Changed
- The semantic conventions used by `go.opentelemetry.io/contrib/detectors/aws/ec2` have been upgraded to v1.21.0. ([#​4265](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4265))
- The semantic conventions used by `go.opentelemetry.io/contrib/detectors/aws/ecs` have been upgraded to v1.21.0. ([#​4265](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4265))
- The semantic conventions used by `go.opentelemetry.io/contrib/detectors/aws/eks` have been upgraded to v1.21.0. ([#​4265](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4265))
- The semantic conventions used by `go.opentelemetry.io/contrib/detectors/aws/lambda` have been upgraded to v1.21.0. ([#​4265](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4265))
- The semantic conventions used by `go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-lambda-go/otellambda` have been upgraded to v1.21.0. ([#​4265](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4265))
- The `faas.execution` attribute is now `faas.invocation_id`.
- The `faas.id` attribute is now `aws.lambda.invoked_arn`.
- The semantic conventions used by `go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws` have been upgraded to v1.21.0. ([#​4265](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4265))
- The `http.request.method` attribute will only allow known HTTP methods from the metrics generated by `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp`. ([#​4277](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4277))
##### Removed
- The high cardinality attributes `net.sock.peer.addr`, `net.sock.peer.port`, `http.user_agent`, `enduser.id`, and `http.client_ip` were removed from the metrics generated by `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp`. ([#​4277](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4277))
- The deprecated `go.opentelemetry.io/contrib/instrumentation/github.com/astaxie/beego/otelbeego` module is removed. ([#​4295](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4295))
- The deprecated `go.opentelemetry.io/contrib/instrumentation/github.com/go-kit/kit/otelkit` module is removed. ([#​4295](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4295))
- The deprecated `go.opentelemetry.io/contrib/instrumentation/github.com/Shopify/sarama/otelsarama` module is removed. ([#​4295](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4295))
- The deprecated `go.opentelemetry.io/contrib/instrumentation/github.com/bradfitz/gomemcache/memcache/otelmemcache` module is removed. ([#​4295](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4295))
- The deprecated `go.opentelemetry.io/contrib/instrumentation/github.com/gocql/gocql/otelgocql` module is removed. ([#​4295](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4295))
#### New Contributors
- [@​utsushiiro](https://github.com/utsushiiro) made their first contribution in https://github.com/open-telemetry/opentelemetry-go-contrib/pull/4260
- [@​RangelReale](https://github.com/RangelReale) made their first contribution in https://github.com/open-telemetry/opentelemetry-go-contrib/pull/4230
**Full Changelog**: https://github.com/open-telemetry/opentelemetry-go-contrib/compare/v1.18.0...v1.19.0
### [`v1.18.0`](https://github.com/open-telemetry/opentelemetry-go-contrib/releases/tag/v1.18.0): /v0.43.0/v0.12.0
[Compare Source](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/v1.17.0...v1.18.0)
##### Added
- Add `NewMiddleware` function in `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp`. ([#​2964](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/2964))
- The `go.opentelemetry.io/contrib/exporters/autoexport` package to provide configuration of trace exporters with useful defaults and environment variable support. ([#​2753](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/2753), [#​4100](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4100), [#​4130](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4130), [#​4132](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4132), [#​4134](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4134))
- `WithRouteTag` in `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp` adds HTTP route attribute to metrics. ([#​615](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/615))
- Add `WithSpanOptions` option in `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc`. ([#​3768](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3768))
- Add testing support for Go 1.21. ([#​4233](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4233))
##### Changed
- Change interceptors in `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc` to disable `SENT`/`RECEIVED` events.
Use `WithMessageEvents()` to turn back on. ([#​3964](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3964))
##### Fixed
- AWS XRay Remote Sampling to cap `quotaBalance` to 1x quota in `go.opentelemetry.io/contrib/samplers/aws/xray`. ([#​3651](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3651), [#​3652](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3652))
- Do not panic when the HTTP request has the "Expect: 100-continue" header in `go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace`. ([#​3892](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3892))
- Fix span status value set for non-standard HTTP status codes in modules listed below. ([#​3966](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3966))
- `go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful`
- `go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin`
- `go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux`
- `go.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelecho`
- `go.opentelemetry.io/contrib/instrumentation/gopkg.in/macaron.v1/otelmacaron`
- `go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace`
- `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp`
- Do not modify the origin request in `RoundTripper` in `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp`. ([#​4033](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4033))
- Handle empty value of `OTEL_PROPAGATORS` environment variable the same way as when the variable is unset in `go.opentelemetry.io/contrib/propagators/autoprop`. ([#​4101](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4101))
- Fix gRPC service/method URL path parsing discrepancies in `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc`. ([#​4135](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4135))
##### Deprecated
- The `go.opentelemetry.io/contrib/instrumentation/github.com/astaxie/beego/otelbeego` module is deprecated. ([#​4092](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4092), [#​4104](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4104))
- The `go.opentelemetry.io/contrib/instrumentation/github.com/go-kit/kit/otelkit` module is deprecated. ([#​4093](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4093), [#​4104](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4104))
- The `go.opentelemetry.io/contrib/instrumentation/github.com/Shopify/sarama/otelsarama` module is deprecated. ([#​4099](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4099))
##### Removed
- Remove `Handler` type in `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp`. ([#​2964](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/2964))
#### New Contributors
- [@​alnr](https://github.com/alnr) made their first contribution in https://github.com/open-telemetry/opentelemetry-go-contrib/pull/2964
- [@​Alkorin](https://github.com/Alkorin) made their first contribution in https://github.com/open-telemetry/opentelemetry-go-contrib/pull/3892
- [@​Baliedge](https://github.com/Baliedge) made their first contribution in https://github.com/open-telemetry/opentelemetry-go-contrib/pull/3964
- [@​gastonqiu](https://github.com/gastonqiu) made their first contribution in https://github.com/open-telemetry/opentelemetry-go-contrib/pull/4033
- [@​charleskorn](https://github.com/charleskorn) made their first contribution in https://github.com/open-telemetry/opentelemetry-go-contrib/pull/615
**Full Changelog**: https://github.com/open-telemetry/opentelemetry-go-contrib/compare/v1.17.0...v1.18.0
### [`v1.17.0`](https://github.com/open-telemetry/opentelemetry-go-contrib/releases/tag/v1.17.0): /v0.42.0/v0.11.0
[Compare Source](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/v1.16.1...v1.17.0)
#### What's Changed
##### Changed
- Upgrade dependencies of OpenTelemetry Go to use the new [`v1.16.0`/`v0.39.0` release](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.16.0).
- Use `strings.Cut()` instead of `string.SplitN()` for better readability and memory use. ([#​3822](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3822))
**Full Changelog**: https://github.com/open-telemetry/opentelemetry-go-contrib/compare/v1.17.0-rc.1...v1.17.0
### [`v1.16.1`](https://github.com/open-telemetry/opentelemetry-go-contrib/releases/tag/v1.16.1): /v0.41.1/v0.10.1
[Compare Source](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/v1.16.0...v1.16.1)
#### What's Changed
##### Added
- The `WithPublicEndpoint` and `WithPublicEndpointFn` options in `go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux`. ([#​3661](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3661))
##### Changed
- Upgrade dependencies of OpenTelemetry Go to use the new [`v1.15.1`/`v0.38.1` release](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.1)
##### Fixed
- AWS XRay Remote Sampling to preserve previous rule if updated rule property has not changed in `go.opentelemetry.io/contrib/samplers/aws/xray`. ([#​3619](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3619), [#​3620](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3620))
#### New Contributors
- [@​elaous](https://github.com/elaous) made their first contribution in https://github.com/open-telemetry/opentelemetry-go-contrib/pull/3661
**Full Changelog**: https://github.com/open-telemetry/opentelemetry-go-contrib/compare/v1.16.0...v1.16.1
### [`v1.16.0`](https://github.com/open-telemetry/opentelemetry-go-contrib/releases/tag/v1.16.0): /v0.41.0/v0.10.0
[Compare Source](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/v1.15.0...v1.16.0)
##### Added
- AWS SDK add `rpc.system` attribute in `go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws`. ([#​3582](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3582), [#​3617](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3617))
##### Changed
- Update `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc` to align gRPC server span status with the changes in the OpenTelemetry specification. ([#​3685](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3685))
- Adding the `db.statement` tag to spans in `go.opentelemetry.io/contrib/instrumentation/go.mongodb.org/mongo-driver/mongo/otelmongo` is now disabled by default. ([#​3519](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3519))
##### Fixed
- The error received by `otelecho` middleware is then passed back to upstream middleware instead of being swallowed. ([#​3656](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3656))
- Prevent taking from reservoir in AWS XRay Remote Sampler when there is zero capacity in `go.opentelemetry.io/contrib/samplers/aws/xray`. ([#​3684](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3684))
- Fix `otelhttp.Handler` in `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp` to propagate multiple `WriteHeader` calls while persisting the initial `statusCode`. ([#​3580](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3580))
### [`v1.15.0`](https://github.com/open-telemetry/opentelemetry-go-contrib/releases/tag/v1.15.0): /v0.40.0/v0.9.0
[Compare Source](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/v1.14.0...v1.15.0)
This release is the last to support [Go 1.18].
The next release will require at least [Go 1.19].
##### Added
- Support [Go 1.20]. ([#​3372](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3372))
- Add `SpanNameFormatter` option to package `go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin`. ([#​3343](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3343))
##### Changed
- Change to use protobuf parser instead of encoding/json to accept enums as strings in `go.opentelemetry.io/contrib/samplers/jaegerremote`. ([#​3183](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3183))
##### Fixed
- Remove use of deprecated `"math/rand".Seed` in `go.opentelemetry.io/contrib/instrumentation/github.com/Shopify/sarama/otelsarama/example/producer`. ([#​3396](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3396))
- Do not assume "aws" partition in ecs detector to prevent panic in `go.opentelemetry.io/contrib/detectors/aws/ecs`. ([#​3167](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3167))
- The span name of producer spans from `go.opentelemetry.io/contrib/instrumentation/github.com/Shopify/sarama/otelsarama` is corrected to use `publish` instead of `send`. ([#​3369](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3369))
- Attribute types are corrected in `go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws`. ([#​3369](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3369))
- `aws.dynamodb.table_names` is now a string slice value.
- `aws.dynamodb.global_secondary_indexes` is now a string slice value.
- `aws.dynamodb.local_secondary_indexes` is now a string slice value.
- `aws.dynamodb.attribute_definitions` is now a string slice value.
- `aws.dynamodb.global_secondary_index_updates` is now a string slice value.
- `aws.dynamodb.provisioned_read_capacity` is now a `float64` value.
- `aws.dynamodb.provisioned_write_capacity` is now a `float64` value.
[Go 1.20]: https://go.dev/doc/go1.20
[Go 1.19]: https://go.dev/doc/go1.19
[Go 1.18]: https://go.dev/doc/go1.18
### [`v1.14.0`](https://github.com/open-telemetry/opentelemetry-go-contrib/releases/tag/v1.14.0): /v0.39.0/v0.8.0
[Compare Source](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/v1.13.0...v1.14.0)
#### 1.14.0/0.39.0/0.8.0 - 2023-02-07
##### Changed
- Change `runtime.uptime` instrument in `go.opentelemetry.io/contrib/instrumentation/runtime` from `Int64ObservableUpDownCounter` to `Int64ObservableCounter`,
since the value is monotonic. ([#​3347](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3347))
##### Fixed
- The GCE detector in `go.opentelemetry.io/contrib/detectors/gcp` includes the "cloud.region" attribute when appropriate. ([#​3367](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3367))
### [`v1.13.0`](https://github.com/open-telemetry/opentelemetry-go-contrib/releases/tag/v1.13.0): /v0.38.0/v0.7.0
[Compare Source](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/v1.12.0...v1.13.0)
##### Added
- Add `WithSpanNameFormatter` to `go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux` to allow customizing span names. ([#​3041](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3041))
- Add missing recommended AWS Lambda resource attributes `faas.instance` and `faas.max_memory` in `go.opentelemetry.io/contrib/detectors/aws/lambda`. ([#​3148](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3148))
- Improve documentation for `go.opentelemetry.io/contrib/samplers/jaegerremote` by providing examples of sampling endpoints. ([#​3147](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3147))
- Add `WithServerName` to `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp` to set the primary server name of a `Handler`. ([#​3182](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3182))
##### Changed
- Remove expensive calculation of uncompressed message size attribute in `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc`. ([#​3168](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3168))
- Upgrade all `semconv` packages to use `v1.17.0`. ([#​3182](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3182))
- Upgrade dependencies of OpenTelemetry Go to use the new [`v1.12.0`/`v0.35.0` release](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.12.0). ([#​3190](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3190), [#​3170](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3170))
### [`v1.12.0`](https://github.com/open-telemetry/opentelemetry-go-contrib/releases/tag/v1.12.0): /0.37.0/0.6.0
[Compare Source](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/v1.11.1...v1.12.0)
##### Added
- Implemented retrieving the [`aws.ecs.*` resource attributes](https://opentelemetry.io/docs/reference/specification/resource/semantic_conventions/cloud_provider/aws/ecs/) in `go.opentelemetry.io/detectors/aws/ecs` based on the ECS Metadata v4 endpoint. ([#​2626](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/2626))
- The `WithLogger` option to `go.opentelemetry.io/contrib/samplers/jaegerremote` to allow users to pass a `logr.Logger` and have operations logged. ([#​2566](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/2566))
- Add the `messaging.url` & `messaging.system` attributes to all appropriate SQS operations in the `go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws` package. ([#​2879](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/2879))
- Add example use of the metrics signal to `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/example`. ([#​2610](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/2610))
- \[otelgin] Add support for filters to the `go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin` package to provide the way to control which inbound requests are traced. ([#​2965](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/2965), [#​2963](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/2963))
##### Fixed
- Set the status_code span attribute even if the HTTP handler hasn't written anything. ([#​2822](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/2822))
- Do not wrap http.NoBody in `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp`, which fixes handling of that special request body. ([#​2983](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/2983))
### [`v1.11.1`](https://github.com/open-telemetry/opentelemetry-go-contrib/releases/tag/v1.11.1): /v0.36.4/v0.5.2
[Compare Source](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/v1.11.0...v1.11.1)
##### Added
- Add trace context propagation support to `instrumentation/github.com/aws/aws-sdk-go-v2/otelaws`. ([#​2856](https://github.com/open-telemetry/opentelemetry-go-contrib/issues/2856)).
##### Changed
- Upgrade dependencies of OpenTelemetry Go to use the new [`v1.11.1`/`v0.33.0` release](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.11.1).
### [`v1.11.0`](https://github.com/open-telemetry/opentelemetry-go-contrib/releases/tag/v1.11.0): /v0.36.2/v0.5.1
[Compare Source](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/v1.10.0...v1.11.0)
##### Changed
- Upgrade dependencies of the OpenTelemetry Go Metric SDK to use the new [`v1.11.0`/`v0.32.2` release](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.11.0)
### [`v1.10.0`](https://github.com/open-telemetry/opentelemetry-go-contrib/releases/tag/v1.10.0): /v0.35.0/v0.5.0
[Compare Source](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/v1.9.0...v1.10.0)
##### Changed
- Rename the `Typ` field of `"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc".InterceptorInfo` to `Type`. ([#​2688](https://github.com/open-telemetry/opentelemetry-go-contrib/pull/2688))
- Use Go 1.19 as the default version for CI testing/linting. ([#​2675](https://github.com/open-telemetry/opentelemetry-go-contrib/pull/2675))
</details>
---
### Configuration
📅 **Schedule**: 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 MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS44OS4xIiwidXBkYXRlZEluVmVyIjoiMzcuMTk0LjAiLCJ0YXJnZXRCcmFuY2giOiJtYXN0ZXIifQ==-->https://git.autistici.org/ai3/go-common/-/merge_requests/88Update module go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp t...2024-02-23T18:24:59ZrenovateUpdate module go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp to v0.49.0This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp](https://github.com/open-telemetry/opentelemetry-go-contrib) | require | min...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp](https://github.com/open-telemetry/opentelemetry-go-contrib) | require | minor | `v0.34.0` -> `v0.49.0` |
---
### Configuration
📅 **Schedule**: 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 MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS44OS4xIiwidXBkYXRlZEluVmVyIjoiMzcuMTk0LjAiLCJ0YXJnZXRCcmFuY2giOiJtYXN0ZXIifQ==-->https://git.autistici.org/ai3/go-common/-/merge_requests/86Update github.com/duo-labs/webauthn digest to ebaf9b72023-04-18T10:28:49ZrenovateUpdate github.com/duo-labs/webauthn digest to ebaf9b7This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/duo-labs/webauthn](https://github.com/duo-labs/webauthn) | require | digest | `03696f3` -> `ebaf9b7` |
---
### Configuration
...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/duo-labs/webauthn](https://github.com/duo-labs/webauthn) | require | digest | `03696f3` -> `ebaf9b7` |
---
### Configuration
📅 **Schedule**: 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 MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4yOC4wIiwidXBkYXRlZEluVmVyIjoiMzQuMjguMCJ9-->https://git.autistici.org/ai3/go-common/-/merge_requests/85Update module golang.org/x/crypto to v0.21.02024-03-04T19:25:25ZrenovateUpdate module golang.org/x/crypto to v0.21.0This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/crypto | require | minor | `v0.0.0-20220829220503-c86fa9a7ed90` -> `v0.21.0` |
---
### Configuration
📅 **Schedule**: Branch...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/crypto | require | minor | `v0.0.0-20220829220503-c86fa9a7ed90` -> `v0.21.0` |
---
### Configuration
📅 **Schedule**: 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 MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4yOC4wIiwidXBkYXRlZEluVmVyIjoiMzcuMTk0LjAiLCJ0YXJnZXRCcmFuY2giOiJtYXN0ZXIifQ==-->https://git.autistici.org/ai3/go-common/-/merge_requests/83Update module github.com/cenkalti/backoff/v4 to v4.3.02024-03-26T03:24:26ZrenovateUpdate module github.com/cenkalti/backoff/v4 to v4.3.0This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/cenkalti/backoff/v4](https://github.com/cenkalti/backoff) | require | minor | `v4.1.3` -> `v4.3.0` |
---
### Release Notes
<...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/cenkalti/backoff/v4](https://github.com/cenkalti/backoff) | require | minor | `v4.1.3` -> `v4.3.0` |
---
### Release Notes
<details>
<summary>cenkalti/backoff (github.com/cenkalti/backoff/v4)</summary>
### [`v4.3.0`](https://github.com/cenkalti/backoff/compare/v4.2.1...v4.3.0)
[Compare Source](https://github.com/cenkalti/backoff/compare/v4.2.1...v4.3.0)
### [`v4.2.1`](https://github.com/cenkalti/backoff/compare/v4.2.0...v4.2.1)
[Compare Source](https://github.com/cenkalti/backoff/compare/v4.2.0...v4.2.1)
### [`v4.2.0`](https://github.com/cenkalti/backoff/compare/v4.1.3...v4.2.0)
[Compare Source](https://github.com/cenkalti/backoff/compare/v4.1.3...v4.2.0)
</details>
---
### Configuration
📅 **Schedule**: 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 MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4yOC4wIiwidXBkYXRlZEluVmVyIjoiMzcuMTk0LjAiLCJ0YXJnZXRCcmFuY2giOiJtYXN0ZXIifQ==-->https://git.autistici.org/ai3/go-common/-/merge_requests/78Update opentelemetry-go monorepo to v1.24.02024-02-23T17:24:40ZrenovateUpdate opentelemetry-go monorepo to v1.24.0This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [go.opentelemetry.io/otel](https://github.com/open-telemetry/opentelemetry-go) | require | minor | `v1.10.0` -> `v1.24.0` |
| [go.opentelem...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [go.opentelemetry.io/otel](https://github.com/open-telemetry/opentelemetry-go) | require | minor | `v1.10.0` -> `v1.24.0` |
| [go.opentelemetry.io/otel/exporters/zipkin](https://github.com/open-telemetry/opentelemetry-go) | require | minor | `v1.9.0` -> `v1.24.0` |
| [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go) | require | minor | `v1.10.0` -> `v1.24.0` |
| [go.opentelemetry.io/otel/trace](https://github.com/open-telemetry/opentelemetry-go) | require | minor | `v1.10.0` -> `v1.24.0` |
---
### Release Notes
<details>
<summary>open-telemetry/opentelemetry-go (go.opentelemetry.io/otel)</summary>
### [`v1.24.0`](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.24.0): /v0.46.0/v0.0.1-alpha
[Compare Source](https://github.com/open-telemetry/opentelemetry-go/compare/v1.23.1...v1.24.0)
This release is the last to support [Go 1.20]. The next release will require at least [Go 1.21].
##### Added
- Support [Go 1.22]. ([#​4890](https://github.com/open-telemetry/opentelemetry-go/issues/4890))
- Add exemplar support to `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`. ([#​4900](https://github.com/open-telemetry/opentelemetry-go/issues/4900))
- Add exemplar support to `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`. ([#​4900](https://github.com/open-telemetry/opentelemetry-go/issues/4900))
- The `go.opentelemetry.io/otel/log` module is added. This module includes OpenTelemetry Go's implementation of the Logs Bridge API. This module is in an alpha state, it is subject to breaking changes. See our [versioning policy](./VERSIONING.md) for more info. ([#​4961](https://github.com/open-telemetry/opentelemetry-go/issues/4961))
##### Fixed
- Fix registration of multiple callbacks when using the global meter provider from `go.opentelemetry.io/otel`. ([#​4945](https://github.com/open-telemetry/opentelemetry-go/issues/4945))
- Fix negative buckets in output of exponential histograms. ([#​4956](https://github.com/open-telemetry/opentelemetry-go/issues/4956))
##### New Contributors
- [@​kevinburkesegment](https://github.com/kevinburkesegment) made their first contribution in https://github.com/open-telemetry/opentelemetry-go/pull/4920
- [@​yizeng](https://github.com/yizeng) made their first contribution in https://github.com/open-telemetry/opentelemetry-go/pull/4947
- [@​ntriamme](https://github.com/ntriamme) made their first contribution in https://github.com/open-telemetry/opentelemetry-go/pull/4945
- [@​ericayin](https://github.com/ericayin) made their first contribution in https://github.com/open-telemetry/opentelemetry-go/pull/4956
**Full Changelog**: https://github.com/open-telemetry/opentelemetry-go/compare/v1.23.1...v1.24.0
[Go 1.22]: https://go.dev/doc/go1.22
[Go 1.21]: https://go.dev/doc/go1.21
[Go 1.20]: https://go.dev/doc/go1.20
### [`v1.23.1`](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.23.1): /v0.45.2
[Compare Source](https://github.com/open-telemetry/opentelemetry-go/compare/v1.23.0...v1.23.1)
##### Fixed
- Register all callbacks passed during observable instrument creation instead of just the last one multiple times in `go.opentelemetry.io/otel/sdk/metric`. ([#​4888](https://github.com/open-telemetry/opentelemetry-go/issues/4888))
### [`v1.23.0`](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.23.0): /v0.45.1
[Compare Source](https://github.com/open-telemetry/opentelemetry-go/compare/v1.22.0...v1.23.0)
This release contains the first stable, `v1`, release of the following modules:
- `go.opentelemetry.io/otel/bridge/opencensus`
- `go.opentelemetry.io/otel/bridge/opencensus/test`
- `go.opentelemetry.io/otel/example/opencensus`
- `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`
- `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`
- `go.opentelemetry.io/otel/exporters/stdout/stdoutmetric`
See our [versioning policy](VERSIONING.md) for more information about these stability guarantees.
##### Added
- Add `WithEndpointURL` option to the `exporters/otlp/otlpmetric/otlpmetricgrpc`, `exporters/otlp/otlpmetric/otlpmetrichttp`, `exporters/otlp/otlptrace/otlptracegrpc` and `exporters/otlp/otlptrace/otlptracehttp` packages. ([#​4808](https://github.com/open-telemetry/opentelemetry-go/issues/4808))
- Experimental exemplar exporting is added to the metric SDK. See [metric documentation](./sdk/metric/EXPERIMENTAL.md#exemplars) for more information about this feature and how to enable it. ([#​4871](https://github.com/open-telemetry/opentelemetry-go/issues/4871))
- `ErrSchemaURLConflict` is added to `go.opentelemetry.io/otel/sdk/resource`. This error is returned when a merge of two `Resource`s with different (non-empty) schema URL is attempted. ([#​4876](https://github.com/open-telemetry/opentelemetry-go/issues/4876))
##### Changed
- The `Merge` and `New` functions in `go.opentelemetry.io/otel/sdk/resource` now returns a partial result if there is a schema URL merge conflict. Instead of returning `nil` when two `Resource`s with different (non-empty) schema URLs are merged the merged `Resource`, along with the new `ErrSchemaURLConflict` error, is returned. It is up to the user to decide if they want to use the returned `Resource` or not. It may have desired attributes overwritten or include stale semantic conventions. ([#​4876](https://github.com/open-telemetry/opentelemetry-go/issues/4876))
##### Fixed
- Fix `ContainerID` resource detection on systemd when cgroup path has a colon. ([#​4449](https://github.com/open-telemetry/opentelemetry-go/issues/4449))
- Fix `go.opentelemetry.io/otel/sdk/metric` to cache instruments to avoid leaking memory when the same instrument is created multiple times. ([#​4820](https://github.com/open-telemetry/opentelemetry-go/issues/4820))
- Fix missing `Mix` and `Max` values for `go.opentelemetry.io/otel/exporters/stdout/stdoutmetric` by introducing `MarshalText` and `MarshalJSON` for the `Extrema` type in `go.opentelemetry.io/sdk/metric/metricdata`. ([#​4827](https://github.com/open-telemetry/opentelemetry-go/issues/4827))
##### New Contributors
- [@​Fricounet](https://github.com/Fricounet) made their first contribution in https://github.com/open-telemetry/opentelemetry-go/pull/4449
- [@​StLeoX](https://github.com/StLeoX) made their first contribution in https://github.com/open-telemetry/opentelemetry-go/pull/4855
- [@​m-posluszny](https://github.com/m-posluszny) made their first contribution in https://github.com/open-telemetry/opentelemetry-go/pull/4827
**Full Changelog**: https://github.com/open-telemetry/opentelemetry-go/compare/v1.22.0...v1.23.0
### [`v1.22.0`](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.22.0): /v0.45.0
[Compare Source](https://github.com/open-telemetry/opentelemetry-go/compare/v1.21.0...v1.22.0)
##### Added
- The `go.opentelemetry.io/otel/semconv/v1.22.0` package.
The package contains semantic conventions from the `v1.22.0` version of the OpenTelemetry Semantic Conventions. ([#​4735](https://github.com/open-telemetry/opentelemetry-go/issues/4735))
- The `go.opentelemetry.io/otel/semconv/v1.23.0` package.
The package contains semantic conventions from the `v1.23.0` version of the OpenTelemetry Semantic Conventions. ([#​4746](https://github.com/open-telemetry/opentelemetry-go/issues/4746))
- The `go.opentelemetry.io/otel/semconv/v1.23.1` package.
The package contains semantic conventions from the `v1.23.1` version of the OpenTelemetry Semantic Conventions. ([#​4749](https://github.com/open-telemetry/opentelemetry-go/issues/4749))
- The `go.opentelemetry.io/otel/semconv/v1.24.0` package.
The package contains semantic conventions from the `v1.24.0` version of the OpenTelemetry Semantic Conventions. ([#​4770](https://github.com/open-telemetry/opentelemetry-go/issues/4770))
- Add `WithResourceAsConstantLabels` option to apply resource attributes for every metric emitted by the Prometheus exporter. ([#​4733](https://github.com/open-telemetry/opentelemetry-go/issues/4733))
- Experimental cardinality limiting is added to the metric SDK.
See [metric documentation](./sdk/metric/EXPERIMENTAL.md#cardinality-limit) for more information about this feature and how to enable it. ([#​4457](https://github.com/open-telemetry/opentelemetry-go/issues/4457))
- Add `NewMemberRaw` and `NewKeyValuePropertyRaw` in `go.opentelemetry.io/otel/baggage`. ([#​4804](https://github.com/open-telemetry/opentelemetry-go/issues/4804))
##### Changed
- Upgrade all use of `go.opentelemetry.io/otel/semconv` to use `v1.24.0`. ([#​4754](https://github.com/open-telemetry/opentelemetry-go/issues/4754))
- Update transformations in `go.opentelemetry.io/otel/exporters/zipkin` to follow `v1.24.0` version of the OpenTelemetry specification. ([#​4754](https://github.com/open-telemetry/opentelemetry-go/issues/4754))
- Record synchronous measurements when the passed context is canceled instead of dropping in `go.opentelemetry.io/otel/sdk/metric`.
If you do not want to make a measurement when the context is cancelled, you need to handle it yourself (e.g `if ctx.Err() != nil`). ([#​4671](https://github.com/open-telemetry/opentelemetry-go/issues/4671))
- Improve `go.opentelemetry.io/otel/trace.TraceState`'s performance. ([#​4722](https://github.com/open-telemetry/opentelemetry-go/issues/4722))
- Improve `go.opentelemetry.io/otel/propagation.TraceContext`'s performance. ([#​4721](https://github.com/open-telemetry/opentelemetry-go/issues/4721))
- Improve `go.opentelemetry.io/otel/baggage` performance. ([#​4743](https://github.com/open-telemetry/opentelemetry-go/issues/4743))
- Improve performance of the `(*Set).Filter` method in `go.opentelemetry.io/otel/attribute` when the passed filter does not filter out any attributes from the set. ([#​4774](https://github.com/open-telemetry/opentelemetry-go/issues/4774))
- `Member.String` in `go.opentelemetry.io/otel/baggage` percent-encodes only when necessary. ([#​4775](https://github.com/open-telemetry/opentelemetry-go/issues/4775))
- `Property.Value` in `go.opentelemetry.io/otel/baggage` now returns a raw string instead of a percent-encoded value. ([#​4804](https://github.com/open-telemetry/opentelemetry-go/issues/4804))
##### Fixed
- Fix `Parse` in `go.opentelemetry.io/otel/baggage` to validate member value before percent-decoding. ([#​4755](https://github.com/open-telemetry/opentelemetry-go/issues/4755))
- Fix whitespace encoding of `Member.String` in `go.opentelemetry.io/otel/baggage`. ([#​4756](https://github.com/open-telemetry/opentelemetry-go/issues/4756))
- Fix baggage item key so that it is not canonicalized in `go.opentelemetry.io/otel/bridge/opentracing`. ([#​4776](https://github.com/open-telemetry/opentelemetry-go/issues/4776))
- Fix `go.opentelemetry.io/otel/bridge/opentracing` to properly handle baggage values that requires escaping during propagation. ([#​4804](https://github.com/open-telemetry/opentelemetry-go/issues/4804))
- Fix a bug where using multiple readers resulted in incorrect asynchronous counter values in `go.opentelemetry.io/otel/sdk/metric`. ([#​4742](https://github.com/open-telemetry/opentelemetry-go/issues/4742))
### [`v1.21.0`](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.21.0): /v0.44.0
[Compare Source](https://github.com/open-telemetry/opentelemetry-go/compare/v1.20.0...v1.21.0)
##### Removed
- Remove the deprecated `go.opentelemetry.io/otel/bridge/opencensus.NewTracer`. ([#​4706](https://github.com/open-telemetry/opentelemetry-go/issues/4706))
- Remove the deprecated `go.opentelemetry.io/otel/exporters/otlp/otlpmetric` module. ([#​4707](https://github.com/open-telemetry/opentelemetry-go/issues/4707))
- Remove the deprecated `go.opentelemetry.io/otel/example/view` module. ([#​4708](https://github.com/open-telemetry/opentelemetry-go/issues/4708))
- Remove the deprecated `go.opentelemetry.io/otel/example/fib` module. ([#​4723](https://github.com/open-telemetry/opentelemetry-go/issues/4723))
##### Fixed
- Do not parse non-protobuf responses in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`. ([#​4719](https://github.com/open-telemetry/opentelemetry-go/issues/4719))
- Do not parse non-protobuf responses in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`. ([#​4719](https://github.com/open-telemetry/opentelemetry-go/issues/4719))
### [`v1.20.0`](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.20.0): /v0.43.0
[Compare Source](https://github.com/open-telemetry/opentelemetry-go/compare/v1.19.0...v1.20.0)
This release brings a breaking change for custom trace API implementations. Some interfaces (`TracerProvider`, `Tracer`, `Span`) now embed the `go.opentelemetry.io/otel/trace/embedded` types. Implementors need to update their implementations based on what they want the default behavior to be. See the "API Implementations" section of the [trace API] package documentation for more about how to accomplish this.
##### Added
- Add `go.opentelemetry.io/otel/bridge/opencensus.InstallTraceBridge`, which installs the OpenCensus trace bridge, and replaces `opencensus.NewTracer`. ([#​4567](https://github.com/open-telemetry/opentelemetry-go/issues/4567))
- Add scope version to trace and metric bridges in `go.opentelemetry.io/otel/bridge/opencensus`. ([#​4584](https://github.com/open-telemetry/opentelemetry-go/issues/4584))
- Add the `go.opentelemetry.io/otel/trace/embedded` package to be embedded in the exported trace API interfaces. ([#​4620](https://github.com/open-telemetry/opentelemetry-go/issues/4620))
- Add the `go.opentelemetry.io/otel/trace/noop` package as a default no-op implementation of the trace API. ([#​4620](https://github.com/open-telemetry/opentelemetry-go/issues/4620))
- Add context propagation in `go.opentelemetry.io/otel/example/dice`. ([#​4644](https://github.com/open-telemetry/opentelemetry-go/issues/4644))
- Add view configuration to `go.opentelemetry.io/otel/example/prometheus`. ([#​4649](https://github.com/open-telemetry/opentelemetry-go/issues/4649))
- Add `go.opentelemetry.io/otel/metric.WithExplicitBucketBoundaries`, which allows defining default explicit bucket boundaries when creating histogram instruments. ([#​4603](https://github.com/open-telemetry/opentelemetry-go/issues/4603))
- Add `Version` function in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`. ([#​4660](https://github.com/open-telemetry/opentelemetry-go/issues/4660))
- Add `Version` function in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`. ([#​4660](https://github.com/open-telemetry/opentelemetry-go/issues/4660))
- Add Summary, SummaryDataPoint, and QuantileValue to `go.opentelemetry.io/sdk/metric/metricdata`. ([#​4622](https://github.com/open-telemetry/opentelemetry-go/issues/4622))
- `go.opentelemetry.io/otel/bridge/opencensus.NewMetricProducer` now supports exemplars from OpenCensus. ([#​4585](https://github.com/open-telemetry/opentelemetry-go/issues/4585))
- Add support for `WithExplicitBucketBoundaries` in `go.opentelemetry.io/otel/sdk/metric`. ([#​4605](https://github.com/open-telemetry/opentelemetry-go/issues/4605))
- Add support for Summary metrics in `go.opentelemetry.io/otel/bridge/opencensus`. ([#​4668](https://github.com/open-telemetry/opentelemetry-go/issues/4668))
##### Deprecated
- Deprecate `go.opentelemetry.io/otel/bridge/opencensus.NewTracer` in favor of `opencensus.InstallTraceBridge`. ([#​4567](https://github.com/open-telemetry/opentelemetry-go/issues/4567))
- Deprecate `go.opentelemetry.io/otel/example/fib` package is in favor of `go.opentelemetry.io/otel/example/dice`. ([#​4618](https://github.com/open-telemetry/opentelemetry-go/issues/4618))
- Deprecate `go.opentelemetry.io/otel/trace.NewNoopTracerProvider`.
Use the added `NewTracerProvider` function in `go.opentelemetry.io/otel/trace/noop` instead. ([#​4620](https://github.com/open-telemetry/opentelemetry-go/issues/4620))
- Deprecate `go.opentelemetry.io/otel/example/view` package in favor of `go.opentelemetry.io/otel/example/prometheus`. ([#​4649](https://github.com/open-telemetry/opentelemetry-go/issues/4649))
- Deprecate `go.opentelemetry.io/otel/exporters/otlp/otlpmetric`. ([#​4693](https://github.com/open-telemetry/opentelemetry-go/issues/4693))
##### Changed
- `go.opentelemetry.io/otel/bridge/opencensus.NewMetricProducer` returns a `*MetricProducer` struct instead of the metric.Producer interface. ([#​4583](https://github.com/open-telemetry/opentelemetry-go/issues/4583))
- The `TracerProvider` in `go.opentelemetry.io/otel/trace` now embeds the `go.opentelemetry.io/otel/trace/embedded.TracerProvider` type.
This extends the `TracerProvider` interface and is is a breaking change for any existing implementation.
Implementors need to update their implementations based on what they want the default behavior of the interface to be.
See the "API Implementations" section of the `go.opentelemetry.io/otel/trace` package documentation for more information about how to accomplish this. ([#​4620](https://github.com/open-telemetry/opentelemetry-go/issues/4620))
- The `Tracer` in `go.opentelemetry.io/otel/trace` now embeds the `go.opentelemetry.io/otel/trace/embedded.Tracer` type.
This extends the `Tracer` interface and is is a breaking change for any existing implementation.
Implementors need to update their implementations based on what they want the default behavior of the interface to be.
See the "API Implementations" section of the `go.opentelemetry.io/otel/trace` package documentation for more informationabout how to accomplish this. ([#​4620](https://github.com/open-telemetry/opentelemetry-go/issues/4620))
- The `Span` in `go.opentelemetry.io/otel/trace` now embeds the `go.opentelemetry.io/otel/trace/embedded.Span` type.
This extends the `Span` interface and is is a breaking change for any existing implementation.
Implementors need to update their implementations based on what they want the default behavior of the interface to be.
See the "API Implementations" section of the `go.opentelemetry.io/otel/trace` package documentation for more information about how to accomplish this. ([#​4620](https://github.com/open-telemetry/opentelemetry-go/issues/4620))
- `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` does no longer depend on `go.opentelemetry.io/otel/exporters/otlp/otlpmetric`. ([#​4660](https://github.com/open-telemetry/opentelemetry-go/issues/4660))
- `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp` does no longer depend on `go.opentelemetry.io/otel/exporters/otlp/otlpmetric`. ([#​4660](https://github.com/open-telemetry/opentelemetry-go/issues/4660))
- Retry for `502 Bad Gateway` and `504 Gateway Timeout` HTTP statuses in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`. ([#​4670](https://github.com/open-telemetry/opentelemetry-go/issues/4670))
- Retry for `502 Bad Gateway` and `504 Gateway Timeout` HTTP statuses in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`. ([#​4670](https://github.com/open-telemetry/opentelemetry-go/issues/4670))
- Retry for `RESOURCE_EXHAUSTED` only if RetryInfo is returned in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`. ([#​4669](https://github.com/open-telemetry/opentelemetry-go/issues/4669))
- Retry for `RESOURCE_EXHAUSTED` only if RetryInfo is returned in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`. ([#​4669](https://github.com/open-telemetry/opentelemetry-go/issues/4669))
- Retry temporary HTTP request failures in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`. ([#​4679](https://github.com/open-telemetry/opentelemetry-go/issues/4679))
- Retry temporary HTTP request failures in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`. ([#​4679](https://github.com/open-telemetry/opentelemetry-go/issues/4679))
##### Fixed
- Fix improper parsing of characters such us `+`, `/` by `Parse` in `go.opentelemetry.io/otel/baggage` as they were rendered as a whitespace. ([#​4667](https://github.com/open-telemetry/opentelemetry-go/issues/4667))
- Fix improper parsing of characters such us `+`, `/` passed via `OTEL_RESOURCE_ATTRIBUTES` in `go.opentelemetry.io/otel/sdk/resource` as they were rendered as a whitespace. ([#​4699](https://github.com/open-telemetry/opentelemetry-go/issues/4699))
- Fix improper parsing of characters such us `+`, `/` passed via `OTEL_EXPORTER_OTLP_HEADERS` and `OTEL_EXPORTER_OTLP_METRICS_HEADERS` in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` as they were rendered as a whitespace. ([#​4699](https://github.com/open-telemetry/opentelemetry-go/issues/4699))
- Fix improper parsing of characters such us `+`, `/` passed via `OTEL_EXPORTER_OTLP_HEADERS` and `OTEL_EXPORTER_OTLP_METRICS_HEADERS` in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp` as they were rendered as a whitespace. ([#​4699](https://github.com/open-telemetry/opentelemetry-go/issues/4699))
- Fix improper parsing of characters such us `+`, `/` passed via `OTEL_EXPORTER_OTLP_HEADERS` and `OTEL_EXPORTER_OTLP_TRACES_HEADERS` in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlptracegrpc` as they were rendered as a whitespace. ([#​4699](https://github.com/open-telemetry/opentelemetry-go/issues/4699))
- Fix improper parsing of characters such us `+`, `/` passed via `OTEL_EXPORTER_OTLP_HEADERS` and `OTEL_EXPORTER_OTLP_TRACES_HEADERS` in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlptracehttp` as they were rendered as a whitespace. ([#​4699](https://github.com/open-telemetry/opentelemetry-go/issues/4699))
- In `go.opentelemetry.op/otel/exporters/prometheus`, the exporter no longer `Collect`s metrics after `Shutdown` is invoked. ([#​4648](https://github.com/open-telemetry/opentelemetry-go/issues/4648))
- Fix documentation for `WithCompressor` in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`. ([#​4695](https://github.com/open-telemetry/opentelemetry-go/issues/4695))
- Fix documentation for `WithCompressor` in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`. ([#​4695](https://github.com/open-telemetry/opentelemetry-go/issues/4695))
[trace API]: https://pkg.go.dev/go.opentelemetry.io/otel/trace
### [`v1.19.0`](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.19.0): /v0.42.0/v0.0.7
[Compare Source](https://github.com/open-telemetry/opentelemetry-go/compare/v1.18.0...v1.19.0)
This release contains the first stable release of the OpenTelemetry Go [metric SDK]. Our project stability guarantees now apply to the `go.opentelemetry.io/otel/sdk/metric` package. See our [versioning policy](VERSIONING.md) for more information about these stability guarantees.
##### Added
- Add the "Roll the dice" getting started application example in `go.opentelemetry.io/otel/example/dice`. ([#​4539](https://github.com/open-telemetry/opentelemetry-go/issues/4539))
- The `WithWriter` and `WithPrettyPrint` options to `go.opentelemetry.io/otel/exporters/stdout/stdoutmetric` to set a custom `io.Writer`, and allow displaying the output in human-readable JSON. ([#​4507](https://github.com/open-telemetry/opentelemetry-go/issues/4507))
##### Changed
- Allow '/' characters in metric instrument names. ([#​4501](https://github.com/open-telemetry/opentelemetry-go/issues/4501))
- The exporter in `go.opentelemetry.io/otel/exporters/stdout/stdoutmetric` does not prettify its output by default anymore. ([#​4507](https://github.com/open-telemetry/opentelemetry-go/issues/4507))
- Upgrade `gopkg.io/yaml` from `v2` to `v3` in `go.opentelemetry.io/otel/schema`. ([#​4535](https://github.com/open-telemetry/opentelemetry-go/issues/4535))
##### Fixed
- In `go.opentelemetry.op/otel/exporters/prometheus`, don't try to create the Prometheus metric on every `Collect` if we know the scope is invalid. ([#​4499](https://github.com/open-telemetry/opentelemetry-go/issues/4499))
##### Removed
- Remove `"go.opentelemetry.io/otel/bridge/opencensus".NewMetricExporter`, which is replaced by `NewMetricProducer`. ([#​4566](https://github.com/open-telemetry/opentelemetry-go/issues/4566))
**Full Changelog**: https://github.com/open-telemetry/opentelemetry-go/compare/v1.18.0...v1.19.0
[metric SDK]: https://pkg.go.dev/go.opentelemetry.io/otel/sdk/metric
### [`v1.18.0`](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.18.0): /v0.41.0/v0.0.6
[Compare Source](https://github.com/open-telemetry/opentelemetry-go/compare/v1.17.0...v1.18.0)
This release drops the compatibility guarantee of [Go 1.19].
##### Added
- Add `WithProducer` option in `go.opentelemetry.op/otel/exporters/prometheus` to restore the ability to register producers on the prometheus exporter's manual reader. ([#​4473](https://github.com/open-telemetry/opentelemetry-go/issues/4473))
- Add `IgnoreValue` option in `go.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest` to allow ignoring values when comparing metrics. ([#​4447](https://github.com/open-telemetry/opentelemetry-go/issues/4447))
##### Deprecated
- The `NewMetricExporter` in `go.opentelemetry.io/otel/bridge/opencensus` was deprecated in `v0.35.0` ([#​3541](https://github.com/open-telemetry/opentelemetry-go/issues/3541)).
The deprecation notice format for the function has been corrected to trigger Go documentation and build tooling. ([#​4470](https://github.com/open-telemetry/opentelemetry-go/issues/4470))
##### Removed
- Removed the deprecated `go.opentelemetry.io/otel/exporters/jaeger` package. ([#​4467](https://github.com/open-telemetry/opentelemetry-go/issues/4467))
- Removed the deprecated `go.opentelemetry.io/otel/example/jaeger` package. ([#​4467](https://github.com/open-telemetry/opentelemetry-go/issues/4467))
- Removed the deprecated `go.opentelemetry.io/otel/sdk/metric/aggregation` package. ([#​4468](https://github.com/open-telemetry/opentelemetry-go/issues/4468))
- Removed the deprecated internal packages in `go.opentelemetry.io/otel/exporters/otlp` and its sub-packages. ([#​4469](https://github.com/open-telemetry/opentelemetry-go/issues/4469))
- Dropped guaranteed support for versions of Go less than 1.20. ([#​4481](https://github.com/open-telemetry/opentelemetry-go/issues/4481))
##### New Contributors
- [@​pkbhowmick](https://github.com/pkbhowmick) made their first contribution in https://github.com/open-telemetry/opentelemetry-go/pull/4462
- [@​RangelReale](https://github.com/RangelReale) made their first contribution in https://github.com/open-telemetry/opentelemetry-go/pull/4447
**Full Changelog**: https://github.com/open-telemetry/opentelemetry-go/compare/v1.17.0...v1.18.0
[Go 1.19]: https://go.dev/doc/go1.19
### [`v1.17.0`](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.17.0): /v0.40.0/v0.5.0
[Compare Source](https://github.com/open-telemetry/opentelemetry-go/compare/v1.16.0...v1.17.0)
##### Added
- Export the `ManualReader` struct in `go.opentelemetry.io/otel/sdk/metric`. ([#​4244](https://github.com/open-telemetry/opentelemetry-go/issues/4244))
- Export the `PeriodicReader` struct in `go.opentelemetry.io/otel/sdk/metric`. ([#​4244](https://github.com/open-telemetry/opentelemetry-go/issues/4244))
- Add support for exponential histogram aggregations.
A histogram can be configured as an exponential histogram using a view with `"go.opentelemetry.io/otel/sdk/metric".ExponentialHistogram` as the aggregation. ([#​4245](https://github.com/open-telemetry/opentelemetry-go/issues/4245))
- Export the `Exporter` struct in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`. ([#​4272](https://github.com/open-telemetry/opentelemetry-go/issues/4272))
- Export the `Exporter` struct in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`. ([#​4272](https://github.com/open-telemetry/opentelemetry-go/issues/4272))
- The exporters in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric` now support the `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` environment variable. ([#​4287](https://github.com/open-telemetry/opentelemetry-go/issues/4287))
- Add `WithoutCounterSuffixes` option in `go.opentelemetry.io/otel/exporters/prometheus` to disable addition of `_total` suffixes. ([#​4306](https://github.com/open-telemetry/opentelemetry-go/issues/4306))
- Add info and debug logging to the metric SDK in `go.opentelemetry.io/otel/sdk/metric`. ([#​4315](https://github.com/open-telemetry/opentelemetry-go/issues/4315))
- The `go.opentelemetry.io/otel/semconv/v1.21.0` package.
The package contains semantic conventions from the `v1.21.0` version of the OpenTelemetry Semantic Conventions. ([#​4362](https://github.com/open-telemetry/opentelemetry-go/issues/4362))
- Accept 201 to 299 HTTP status as success in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp` and `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`. ([#​4365](https://github.com/open-telemetry/opentelemetry-go/issues/4365))
- Document the `Temporality` and `Aggregation` methods of the `"go.opentelemetry.io/otel/sdk/metric".Exporter"` need to be concurrent safe. ([#​4381](https://github.com/open-telemetry/opentelemetry-go/issues/4381))
- Expand the set of units supported by the Prometheus exporter, and don't add unit suffixes if they are already present in `go.opentelemetry.op/otel/exporters/prometheus` ([#​4374](https://github.com/open-telemetry/opentelemetry-go/issues/4374))
- Move the `Aggregation` interface and its implementations from `go.opentelemetry.io/otel/sdk/metric/aggregation` to `go.opentelemetry.io/otel/sdk/metric`. ([#​4435](https://github.com/open-telemetry/opentelemetry-go/issues/4435))
- The exporters in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric` now support the `OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION` environment variable. ([#​4437](https://github.com/open-telemetry/opentelemetry-go/issues/4437))
- Add the `NewAllowKeysFilter` and `NewDenyKeysFilter` functions to `go.opentelemetry.io/otel/attribute` to allow convenient creation of allow-keys and deny-keys filters. ([#​4444](https://github.com/open-telemetry/opentelemetry-go/issues/4444))
##### Changed
- Starting from `v1.21.0` of semantic conventions, `go.opentelemetry.io/otel/semconv/{version}/httpconv` and `go.opentelemetry.io/otel/semconv/{version}/netconv` packages will no longer be published. ([#​4145](https://github.com/open-telemetry/opentelemetry-go/issues/4145))
- Log duplicate instrument conflict at a warning level instead of info in `go.opentelemetry.io/otel/sdk/metric`. ([#​4202](https://github.com/open-telemetry/opentelemetry-go/issues/4202))
- Return an error on the creation of new instruments in `go.opentelemetry.io/otel/sdk/metric` if their name doesn't pass regexp validation. ([#​4210](https://github.com/open-telemetry/opentelemetry-go/issues/4210))
- `NewManualReader` in `go.opentelemetry.io/otel/sdk/metric` returns `*ManualReader` instead of `Reader`. ([#​4244](https://github.com/open-telemetry/opentelemetry-go/issues/4244))
- `NewPeriodicReader` in `go.opentelemetry.io/otel/sdk/metric` returns `*PeriodicReader` instead of `Reader`. ([#​4244](https://github.com/open-telemetry/opentelemetry-go/issues/4244))
- Count the Collect time in the `PeriodicReader` timeout in `go.opentelemetry.io/otel/sdk/metric`. ([#​4221](https://github.com/open-telemetry/opentelemetry-go/issues/4221))
- The function `New` in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` returns `*Exporter` instead of `"go.opentelemetry.io/otel/sdk/metric".Exporter`. ([#​4272](https://github.com/open-telemetry/opentelemetry-go/issues/4272))
- The function `New` in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp` returns `*Exporter` instead of `"go.opentelemetry.io/otel/sdk/metric".Exporter`. ([#​4272](https://github.com/open-telemetry/opentelemetry-go/issues/4272))
- If an attribute set is omitted from an async callback, the previous value will no longer be exported in `go.opentelemetry.io/otel/sdk/metric`. ([#​4290](https://github.com/open-telemetry/opentelemetry-go/issues/4290))
- If an attribute set is observed multiple times in an async callback in `go.opentelemetry.io/otel/sdk/metric`, the values will be summed instead of the last observation winning. ([#​4289](https://github.com/open-telemetry/opentelemetry-go/issues/4289))
- Allow the explicit bucket histogram aggregation to be used for the up-down counter, observable counter, observable up-down counter, and observable gauge in the `go.opentelemetry.io/otel/sdk/metric` package. ([#​4332](https://github.com/open-telemetry/opentelemetry-go/issues/4332))
- Restrict `Meter`s in `go.opentelemetry.io/otel/sdk/metric` to only register and collect instruments it created. ([#​4333](https://github.com/open-telemetry/opentelemetry-go/issues/4333))
- `PeriodicReader.Shutdown` and `PeriodicReader.ForceFlush` in `go.opentelemetry.io/otel/sdk/metric` now apply the periodic reader's timeout to the operation if the user provided context does not contain a deadline. ([#​4356](https://github.com/open-telemetry/opentelemetry-go/issues/4356), [#​4377](https://github.com/open-telemetry/opentelemetry-go/issues/4377))
- Upgrade all use of `go.opentelemetry.io/otel/semconv` to use `v1.21.0`. ([#​4408](https://github.com/open-telemetry/opentelemetry-go/issues/4408))
- Increase instrument name maximum length from 63 to 255 characters in `go.opentelemetry.io/otel/sdk/metric`. ([#​4434](https://github.com/open-telemetry/opentelemetry-go/issues/4434))
- Add `go.opentelemetry.op/otel/sdk/metric.WithProducer` as an `Option` for `"go.opentelemetry.io/otel/sdk/metric".NewManualReader` and `"go.opentelemetry.io/otel/sdk/metric".NewPeriodicReader`. ([#​4346](https://github.com/open-telemetry/opentelemetry-go/issues/4346))
##### Removed
- Remove `Reader.RegisterProducer` in `go.opentelemetry.io/otel/metric`.
Use the added `WithProducer` option instead. ([#​4346](https://github.com/open-telemetry/opentelemetry-go/issues/4346))
- Remove `Reader.ForceFlush` in `go.opentelemetry.io/otel/metric`.
Notice that `PeriodicReader.ForceFlush` is still available. ([#​4375](https://github.com/open-telemetry/opentelemetry-go/issues/4375))
##### Fixed
- Correctly format log messages from the `go.opentelemetry.io/otel/exporters/zipkin` exporter. ([#​4143](https://github.com/open-telemetry/opentelemetry-go/issues/4143))
- Log an error for calls to `NewView` in `go.opentelemetry.io/otel/sdk/metric` that have empty criteria. ([#​4307](https://github.com/open-telemetry/opentelemetry-go/issues/4307))
- Fix `"go.opentelemetry.io/otel/sdk/resource".WithHostID()` to not set an empty `host.id`. ([#​4317](https://github.com/open-telemetry/opentelemetry-go/issues/4317))
- Use the instrument identifying fields to cache aggregators and determine duplicate instrument registrations in `go.opentelemetry.io/otel/sdk/metric`. ([#​4337](https://github.com/open-telemetry/opentelemetry-go/issues/4337))
- Detect duplicate instruments for case-insensitive names in `go.opentelemetry.io/otel/sdk/metric`. ([#​4338](https://github.com/open-telemetry/opentelemetry-go/issues/4338))
- The `ManualReader` will not panic if `AggregationSelector` returns `nil` in `go.opentelemetry.io/otel/sdk/metric`. ([#​4350](https://github.com/open-telemetry/opentelemetry-go/issues/4350))
- If a `Reader`'s `AggregationSelector` returns `nil` or `DefaultAggregation` the pipeline will use the default aggregation. ([#​4350](https://github.com/open-telemetry/opentelemetry-go/issues/4350))
- Log a suggested view that fixes instrument conflicts in `go.opentelemetry.io/otel/sdk/metric`. ([#​4349](https://github.com/open-telemetry/opentelemetry-go/issues/4349))
- Fix possible panic, deadlock and race condition in batch span processor in `go.opentelemetry.io/otel/sdk/trace`. ([#​4353](https://github.com/open-telemetry/opentelemetry-go/issues/4353))
- Improve context cancellation handling in batch span processor's `ForceFlush` in `go.opentelemetry.io/otel/sdk/trace`. ([#​4369](https://github.com/open-telemetry/opentelemetry-go/issues/4369))
- Decouple `go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal` from `go.opentelemetry.io/otel/exporters/otlp/internal` using gotmpl. ([#​4397](https://github.com/open-telemetry/opentelemetry-go/issues/4397), [#​3846](https://github.com/open-telemetry/opentelemetry-go/issues/3846))
- Decouple `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal` from `go.opentelemetry.io/otel/exporters/otlp/internal` and `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal` using gotmpl. ([#​4404](https://github.com/open-telemetry/opentelemetry-go/issues/4404), [#​3846](https://github.com/open-telemetry/opentelemetry-go/issues/3846))
- Decouple `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/internal` from `go.opentelemetry.io/otel/exporters/otlp/internal` and `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal` using gotmpl. ([#​4407](https://github.com/open-telemetry/opentelemetry-go/issues/4407), [#​3846](https://github.com/open-telemetry/opentelemetry-go/issues/3846))
- Decouple `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/internal` from `go.opentelemetry.io/otel/exporters/otlp/internal` and `go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal` using gotmpl. ([#​4400](https://github.com/open-telemetry/opentelemetry-go/issues/4400), [#​3846](https://github.com/open-telemetry/opentelemetry-go/issues/3846))
- Decouple `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp/internal` from `go.opentelemetry.io/otel/exporters/otlp/internal` and `go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal` using gotmpl. ([#​4401](https://github.com/open-telemetry/opentelemetry-go/issues/4401), [#​3846](https://github.com/open-telemetry/opentelemetry-go/issues/3846))
- Do not block the metric SDK when OTLP metric exports are blocked in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` and `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`. ([#​3925](https://github.com/open-telemetry/opentelemetry-go/issues/3925), [#​4395](https://github.com/open-telemetry/opentelemetry-go/issues/4395))
- Do not append `_total` if the counter already has that suffix for the Prometheus exproter in `go.opentelemetry.io/otel/exporter/prometheus`. ([#​4373](https://github.com/open-telemetry/opentelemetry-go/issues/4373))
- Fix resource detection data race in `go.opentelemetry.io/otel/sdk/resource`. ([#​4409](https://github.com/open-telemetry/opentelemetry-go/issues/4409))
- Use the first-seen instrument name during instrument name conflicts in `go.opentelemetry.io/otel/sdk/metric`. ([#​4428](https://github.com/open-telemetry/opentelemetry-go/issues/4428))
##### Deprecated
- The `go.opentelemetry.io/otel/exporters/jaeger` package is deprecated.
OpenTelemetry dropped support for Jaeger exporter in July 2023.
Use `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`
or `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc` instead. ([#​4423](https://github.com/open-telemetry/opentelemetry-go/issues/4423))
- The `go.opentelemetry.io/otel/example/jaeger` package is deprecated. ([#​4423](https://github.com/open-telemetry/opentelemetry-go/issues/4423))
- The `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal` package is deprecated. ([#​4420](https://github.com/open-telemetry/opentelemetry-go/issues/4420))
- The `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal/oconf` package is deprecated. ([#​4420](https://github.com/open-telemetry/opentelemetry-go/issues/4420))
- The `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal/otest` package is deprecated. ([#​4420](https://github.com/open-telemetry/opentelemetry-go/issues/4420))
- The `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal/transform` package is deprecated. ([#​4420](https://github.com/open-telemetry/opentelemetry-go/issues/4420))
- The `go.opentelemetry.io/otel/exporters/otlp/internal` package is deprecated. ([#​4421](https://github.com/open-telemetry/opentelemetry-go/issues/4421))
- The `go.opentelemetry.io/otel/exporters/otlp/internal/envconfig` package is deprecated. ([#​4421](https://github.com/open-telemetry/opentelemetry-go/issues/4421))
- The `go.opentelemetry.io/otel/exporters/otlp/internal/retry` package is deprecated. ([#​4421](https://github.com/open-telemetry/opentelemetry-go/issues/4421))
- The `go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal` package is deprecated. ([#​4425](https://github.com/open-telemetry/opentelemetry-go/issues/4425))
- The `go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/envconfig` package is deprecated. ([#​4425](https://github.com/open-telemetry/opentelemetry-go/issues/4425))
- The `go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/otlpconfig` package is deprecated. ([#​4425](https://github.com/open-telemetry/opentelemetry-go/issues/4425))
- The `go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/otlptracetest` package is deprecated. ([#​4425](https://github.com/open-telemetry/opentelemetry-go/issues/4425))
- The `go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/retry` package is deprecated. ([#​4425](https://github.com/open-telemetry/opentelemetry-go/issues/4425))
- The `go.opentelemetry.io/otel/sdk/metric/aggregation` package is deprecated.
Use the aggregation types added to `go.opentelemetry.io/otel/sdk/metric` instead. ([#​4435](https://github.com/open-telemetry/opentelemetry-go/issues/4435))
##### New Contributors
- [@​serdarkalayci](https://github.com/serdarkalayci) made their first contribution in https://github.com/open-telemetry/opentelemetry-go/pull/4129
- [@​Jorropo](https://github.com/Jorropo) made their first contribution in https://github.com/open-telemetry/opentelemetry-go/pull/4226
- [@​hexdigest](https://github.com/hexdigest) made their first contribution in https://github.com/open-telemetry/opentelemetry-go/pull/3899
- [@​gkze](https://github.com/gkze) made their first contribution in https://github.com/open-telemetry/opentelemetry-go/pull/4402
- [@​jaredjenkins](https://github.com/jaredjenkins) made their first contribution in https://github.com/open-telemetry/opentelemetry-go/pull/4409
- [@​utezduyar](https://github.com/utezduyar) made their first contribution in https://github.com/open-telemetry/opentelemetry-go/pull/4456
**Full Changelog**: https://github.com/open-telemetry/opentelemetry-go/compare/v1.16.0...v1.17.0
### [`v1.16.0`](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.16.0): /v0.39.0 -- Stable Metric API
[Compare Source](https://github.com/open-telemetry/opentelemetry-go/compare/v1.15.1...v1.16.0)
This release contains the first stable release of the OpenTelemetry Go [metric API]. Our project stability guarantees now apply to the `go.opentelemetry.io/otel/metric` package. See our [versioning policy](VERSIONING.md) for more information about these stability guarantees.
#### What's Changed
##### Added
- The `go.opentelemetry.io/otel/semconv/v1.19.0` package. The package contains semantic conventions from the `v1.19.0` version of the OpenTelemetry specification. ([#​3848](https://github.com/open-telemetry/opentelemetry-go/issues/3848))
- The `go.opentelemetry.io/otel/semconv/v1.20.0` package. The package contains semantic conventions from the `v1.20.0` version of the OpenTelemetry specification. ([#​4078](https://github.com/open-telemetry/opentelemetry-go/issues/4078))
##### Changed
- Use `strings.Cut()` instead of `string.SplitN()` for better readability and memory use. ([#​4049](https://github.com/open-telemetry/opentelemetry-go/issues/4049))
##### Removed
- The deprecated `go.opentelemetry.io/otel/metric/instrument` package is removed. Use `go.opentelemetry.io/otel/metric` instead. ([#​4055](https://github.com/open-telemetry/opentelemetry-go/issues/4055))
##### Fixed
- Fix build for BSD based systems in `go.opentelemetry.io/otel/sdk/resource`. ([#​4077](https://github.com/open-telemetry/opentelemetry-go/issues/4077))
#### New Contributors
- [@​tsloughter](https://github.com/tsloughter) made their first contribution in https://github.com/open-telemetry/opentelemetry-go/pull/3848
- [@​Tijmen34](https://github.com/Tijmen34) made their first contribution in https://github.com/open-telemetry/opentelemetry-go/pull/4074
- [@​ChillOrb](https://github.com/ChillOrb) made their first contribution in https://github.com/open-telemetry/opentelemetry-go/pull/3677
- [@​ChenX1993](https://github.com/ChenX1993) made their first contribution in https://github.com/open-telemetry/opentelemetry-go/pull/4043
- [@​andrew-womeldorf](https://github.com/andrew-womeldorf) made their first contribution in https://github.com/open-telemetry/opentelemetry-go/pull/4086
**Full Changelog**: https://github.com/open-telemetry/opentelemetry-go/compare/v1.15.1...v1.16.0
[metric API]: https://pkg.go.dev/go.opentelemetry.io/otel/metric
### [`v1.15.1`](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.1): /v0.38.1
[Compare Source](https://github.com/open-telemetry/opentelemetry-go/compare/v1.15.0...v1.15.1)
##### What's Changed
##### Fixed
- Remove unused imports from `sdk/resource/host_id_bsd.go` which caused build failures. ([#​4040](https://github.com/open-telemetry/opentelemetry-go/issues/4040), [#​4041](https://github.com/open-telemetry/opentelemetry-go/issues/4041))
##### New Contributors
- [@​Achooo](https://github.com/Achooo) made their first contribution in https://github.com/open-telemetry/opentelemetry-go/pull/4041
**Full Changelog**: https://github.com/open-telemetry/opentelemetry-go/compare/v1.15.0...v1.15.1
### [`v1.15.0`](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.0): /v0.38.0
[Compare Source](https://github.com/open-telemetry/opentelemetry-go/compare/v1.14.0...v1.15.0)
##### Added
- The `go.opentelemetry.io/otel/metric/embedded` package. ([#​3916](https://github.com/open-telemetry/opentelemetry-go/issues/3916))
- The `Version` function to `go.opentelemetry.io/otel/sdk` to return the SDK version. ([#​3949](https://github.com/open-telemetry/opentelemetry-go/issues/3949))
- Add a `WithNamespace` option to `go.opentelemetry.io/otel/exporters/prometheus` to allow users to prefix metrics with a namespace. ([#​3970](https://github.com/open-telemetry/opentelemetry-go/issues/3970))
- The following configuration types were added to `go.opentelemetry.io/otel/metric/instrument` to be used in the configuration of measurement methods. ([#​3971](https://github.com/open-telemetry/opentelemetry-go/issues/3971))
- The `AddConfig` used to hold configuration for addition measurements
- `NewAddConfig` used to create a new `AddConfig`
- `AddOption` used to configure an `AddConfig`
- The `RecordConfig` used to hold configuration for recorded measurements
- `NewRecordConfig` used to create a new `RecordConfig`
- `RecordOption` used to configure a `RecordConfig`
- The `ObserveConfig` used to hold configuration for observed measurements
- `NewObserveConfig` used to create a new `ObserveConfig`
- `ObserveOption` used to configure an `ObserveConfig`
- `WithAttributeSet` and `WithAttributes` are added to `go.opentelemetry.io/otel/metric/instrument`. They return an option used during a measurement that defines the attribute Set associated with the measurement. ([#​3971](https://github.com/open-telemetry/opentelemetry-go/issues/3971))
- The `Version` function to `go.opentelemetry.io/otel/exporters/otlp/otlpmetric` to return the OTLP metrics client version. ([#​3956](https://github.com/open-telemetry/opentelemetry-go/issues/3956))
- The `Version` function to `go.opentelemetry.io/otel/exporters/otlp/otlptrace` to return the OTLP trace client version. ([#​3956](https://github.com/open-telemetry/opentelemetry-go/issues/3956))
##### Changed
- The `Extrema` in `go.opentelemetry.io/otel/sdk/metric/metricdata` is redefined with a generic argument of `[N int64 | float64]`. ([#​3870](https://github.com/open-telemetry/opentelemetry-go/issues/3870))
- Update all exported interfaces from `go.opentelemetry.io/otel/metric` to embed their corresponding interface from `go.opentelemetry.io/otel/metric/embedded`. This adds an implementation requirement to set the interface default behavior for unimplemented methods. ([#​3916](https://github.com/open-telemetry/opentelemetry-go/issues/3916))
- Move No-Op implementation from `go.opentelemetry.io/otel/metric` into its own package `go.opentelemetry.io/otel/metric/noop`. ([#​3941](https://github.com/open-telemetry/opentelemetry-go/issues/3941))
- `metric.NewNoopMeterProvider` is replaced with `noop.NewMeterProvider`
- Add all the methods from `"go.opentelemetry.io/otel/trace".SpanContext` to `bridgeSpanContext` by embedding `otel.SpanContext` in `bridgeSpanContext`. ([#​3966](https://github.com/open-telemetry/opentelemetry-go/issues/3966))
- Wrap `UploadMetrics` error in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/` to improve error message when encountering generic grpc errors. ([#​3974](https://github.com/open-telemetry/opentelemetry-go/issues/3974))
- The measurement methods for all instruments in `go.opentelemetry.io/otel/metric/instrument` accept an option instead of the variadic `"go.opentelemetry.io/otel/attribute".KeyValue`. ([#​3971](https://github.com/open-telemetry/opentelemetry-go/issues/3971))
- The `Int64Counter.Add` method now accepts `...AddOption`
- The `Float64Counter.Add` method now accepts `...AddOption`
- The `Int64UpDownCounter.Add` method now accepts `...AddOption`
- The `Float64UpDownCounter.Add` method now accepts `...AddOption`
- The `Int64Histogram.Record` method now accepts `...RecordOption`
- The `Float64Histogram.Record` method now accepts `...RecordOption`
- The `Int64Observer.Observe` method now accepts `...ObserveOption`
- The `Float64Observer.Observe` method now accepts `...ObserveOption`
- The `Observer` methods in `go.opentelemetry.io/otel/metric` accept an option instead of the variadic `"go.opentelemetry.io/otel/attribute".KeyValue`. ([#​3971](https://github.com/open-telemetry/opentelemetry-go/issues/3971))
- The `Observer.ObserveInt64` method now accepts `...ObserveOption`
- The `Observer.ObserveFloat64` method now accepts `...ObserveOption`
- Move global metric back to `go.opentelemetry.io/otel/metric/global` from `go.opentelemetry.io/otel`. ([#​3986](https://github.com/open-telemetry/opentelemetry-go/issues/3986))
##### Fixed
- `TracerProvider` allows calling `Tracer()` while it's shutting down. It used to deadlock. ([#​3924](https://github.com/open-telemetry/opentelemetry-go/issues/3924))
- Use the SDK version for the Telemetry SDK resource detector in `go.opentelemetry.io/otel/sdk/resource`. ([#​3949](https://github.com/open-telemetry/opentelemetry-go/issues/3949))
- Fix a data race in `SpanProcessor` returned by `NewSimpleSpanProcessor` in `go.opentelemetry.io/otel/sdk/trace`. ([#​3951](https://github.com/open-telemetry/opentelemetry-go/issues/3951))
- Automatically figure out the default aggregation with `aggregation.Default`. ([#​3967](https://github.com/open-telemetry/opentelemetry-go/issues/3967))
##### Deprecated
- The `go.opentelemetry.io/otel/metric/instrument` package is deprecated. Use the equivalent types added to `go.opentelemetry.io/otel/metric` instead. ([#​4018](https://github.com/open-telemetry/opentelemetry-go/issues/4018))
### [`v1.14.0`](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.14.0): /v0.37.0/v0.0.4
[Compare Source](https://github.com/open-telemetry/opentelemetry-go/compare/v1.13.0...v1.14.0)
Part of https://github.com/open-telemetry/opentelemetry-go/issues/3809
This release is the last to support [Go 1.18].
The next release will require at least [Go 1.19].
##### Added
- The `event` type semantic conventions are added to `go.opentelemetry.io/otel/semconv/v1.17.0`. ([#​3697](https://github.com/open-telemetry/opentelemetry-go/issues/3697))
- Support [Go 1.20]. ([#​3693](https://github.com/open-telemetry/opentelemetry-go/issues/3693))
- The `go.opentelemetry.io/otel/semconv/v1.18.0` package.
The package contains semantic conventions from the `v1.18.0` version of the OpenTelemetry specification. ([#​3719](https://github.com/open-telemetry/opentelemetry-go/issues/3719))
- The following `const` renames from `go.opentelemetry.io/otel/semconv/v1.17.0` are included:
- `OtelScopeNameKey` -> `OTelScopeNameKey`
- `OtelScopeVersionKey` -> `OTelScopeVersionKey`
- `OtelLibraryNameKey` -> `OTelLibraryNameKey`
- `OtelLibraryVersionKey` -> `OTelLibraryVersionKey`
- `OtelStatusCodeKey` -> `OTelStatusCodeKey`
- `OtelStatusDescriptionKey` -> `OTelStatusDescriptionKey`
- `OtelStatusCodeOk` -> `OTelStatusCodeOk`
- `OtelStatusCodeError` -> `OTelStatusCodeError`
- The following `func` renames from `go.opentelemetry.io/otel/semconv/v1.17.0` are included:
- `OtelScopeName` -> `OTelScopeName`
- `OtelScopeVersion` -> `OTelScopeVersion`
- `OtelLibraryName` -> `OTelLibraryName`
- `OtelLibraryVersion` -> `OTelLibraryVersion`
- `OtelStatusDescription` -> `OTelStatusDescription`
- A `IsSampled` method is added to the `SpanContext` implementation in `go.opentelemetry.io/otel/bridge/opentracing` to expose the span sampled state.
See the [README](./bridge/opentracing/README.md) for more information. ([#​3570](https://github.com/open-telemetry/opentelemetry-go/issues/3570))
- The `WithInstrumentationAttributes` option to `go.opentelemetry.io/otel/metric`. ([#​3738](https://github.com/open-telemetry/opentelemetry-go/issues/3738))
- The `WithInstrumentationAttributes` option to `go.opentelemetry.io/otel/trace`. ([#​3739](https://github.com/open-telemetry/opentelemetry-go/issues/3739))
- The following environment variables are supported by the periodic `Reader` in `go.opentelemetry.io/otel/sdk/metric`. ([#​3763](https://github.com/open-telemetry/opentelemetry-go/issues/3763))
- `OTEL_METRIC_EXPORT_INTERVAL` sets the time between collections and exports.
- `OTEL_METRIC_EXPORT_TIMEOUT` sets the timeout an export is attempted.
##### Changed
- Fall-back to `TextMapCarrier` when it's not `HttpHeader`s in `go.opentelemetry.io/otel/bridge/opentracing`. ([#​3679](https://github.com/open-telemetry/opentelemetry-go/issues/3679))
- The `Collect` method of the `"go.opentelemetry.io/otel/sdk/metric".Reader` interface is updated to accept the `metricdata.ResourceMetrics` value the collection will be made into.
This change is made to enable memory reuse by SDK users. ([#​3732](https://github.com/open-telemetry/opentelemetry-go/issues/3732))
- The `WithUnit` option in `go.opentelemetry.io/otel/sdk/metric/instrument` is updated to accept a `string` for the unit value. ([#​3776](https://github.com/open-telemetry/opentelemetry-go/issues/3776))
##### Fixed
- Ensure `go.opentelemetry.io/otel` does not use generics. ([#​3723](https://github.com/open-telemetry/opentelemetry-go/issues/3723), [#​3725](https://github.com/open-telemetry/opentelemetry-go/issues/3725))
- Multi-reader `MeterProvider`s now export metrics for all readers, instead of just the first reader. ([#​3720](https://github.com/open-telemetry/opentelemetry-go/issues/3720), [#​3724](https://github.com/open-telemetry/opentelemetry-go/issues/3724))
- Remove use of deprecated `"math/rand".Seed` in `go.opentelemetry.io/otel/example/prometheus`. ([#​3733](https://github.com/open-telemetry/opentelemetry-go/issues/3733))
- Do not silently drop unknown schema data with `Parse` in `go.opentelemetry.io/otel/schema/v1.1`. ([#​3743](https://github.com/open-telemetry/opentelemetry-go/issues/3743))
- Data race issue in OTLP exporter retry mechanism. ([#​3755](https://github.com/open-telemetry/opentelemetry-go/issues/3755), [#​3756](https://github.com/open-telemetry/opentelemetry-go/issues/3756))
- Wrapping empty errors when exporting in `go.opentelemetry.io/otel/sdk/metric`. ([#​3698](https://github.com/open-telemetry/opentelemetry-go/issues/3698), [#​3772](https://github.com/open-telemetry/opentelemetry-go/issues/3772))
- Incorrect "all" and "resource" definition for schema files in `go.opentelemetry.io/otel/schema/v1.1`. ([#​3777](https://github.com/open-telemetry/opentelemetry-go/issues/3777))
##### Deprecated
- The `go.opentelemetry.io/otel/metric/unit` package is deprecated.
Use the equivalent unit string instead. ([#​3776](https://github.com/open-telemetry/opentelemetry-go/issues/3776))
- Use `"1"` instead of `unit.Dimensionless`
- Use `"By"` instead of `unit.Bytes`
- Use `"ms"` instead of `unit.Milliseconds`
[Go 1.20]: https://go.dev/doc/go1.20
[Go 1.19]: https://go.dev/doc/go1.19
[Go 1.18]: https://go.dev/doc/go1.18
### [`v1.13.0`](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.13.0): /v0.36.0
[Compare Source](https://github.com/open-telemetry/opentelemetry-go/compare/v1.12.0...v1.13.0)
#### 1.13.0/0.36.0 2023-02-07
##### Added
- Attribute `KeyValue` creations functions to `go.opentelemetry.io/otel/semconv/v1.17.0` for all non-enum semantic conventions.
These functions ensure semantic convention type correctness. ([#​3675](https://github.com/open-telemetry/opentelemetry-go/issues/3675))
##### Fixed
- Removed the `http.target` attribute from being added by `ServerRequest` in the following packages. ([#​3687](https://github.com/open-telemetry/opentelemetry-go/issues/3687))
- `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`
- `go.opentelemetry.io/otel/semconv/v1.14.0/httpconv`
- `go.opentelemetry.io/otel/semconv/v1.15.0/httpconv`
- `go.opentelemetry.io/otel/semconv/v1.16.0/httpconv`
- `go.opentelemetry.io/otel/semconv/v1.17.0/httpconv`
##### Removed
- The deprecated `go.opentelemetry.io/otel/metric/instrument/asyncfloat64` package is removed. ([#​3631](https://github.com/open-telemetry/opentelemetry-go/issues/3631))
- The deprecated `go.opentelemetry.io/otel/metric/instrument/asyncint64` package is removed. ([#​3631](https://github.com/open-telemetry/opentelemetry-go/issues/3631))
- The deprecated `go.opentelemetry.io/otel/metric/instrument/syncfloat64` package is removed. ([#​3631](https://github.com/open-telemetry/opentelemetry-go/issues/3631))
- The deprecated `go.opentelemetry.io/otel/metric/instrument/syncint64` package is removed. ([#​3631](https://github.com/open-telemetry/opentelemetry-go/issues/3631))
### [`v1.12.0`](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.12.0): /v0.35.0
[Compare Source](https://github.com/open-telemetry/opentelemetry-go/compare/v1.11.2...v1.12.0)
##### Added
- The `WithInt64Callback` option to `go.opentelemetry.io/otel/metric/instrument`. This options is used to configure `int64` Observer callbacks during their creation. ([#​3507](https://github.com/open-telemetry/opentelemetry-go/issues/3507))
- The `WithFloat64Callback` option to `go.opentelemetry.io/otel/metric/instrument`. This options is used to configure `float64` Observer callbacks during their creation. ([#​3507](https://github.com/open-telemetry/opentelemetry-go/issues/3507))
- The `Producer` interface and `Reader.RegisterProducer(Producer)` to `go.opentelemetry.io/otel/sdk/metric`. These additions are used to enable external metric Producers. ([#​3524](https://github.com/open-telemetry/opentelemetry-go/issues/3524))
- The `Callback` function type to `go.opentelemetry.io/otel/metric`. This new named function type is registered with a `Meter`. ([#​3564](https://github.com/open-telemetry/opentelemetry-go/issues/3564))
- The `go.opentelemetry.io/otel/semconv/v1.13.0` package. The package contains semantic conventions from the `v1.13.0` version of the OpenTelemetry specification. ([#​3499](https://github.com/open-telemetry/opentelemetry-go/issues/3499))
- The `EndUserAttributesFromHTTPRequest` function in `go.opentelemetry.io/otel/semconv/v1.12.0` is merged into `ClientRequest` and `ServerRequest` in `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`.
- The `HTTPAttributesFromHTTPStatusCode` function in `go.opentelemetry.io/otel/semconv/v1.12.0` is merged into `ClientResponse` in `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`.
- The `HTTPClientAttributesFromHTTPRequest` function in `go.opentelemetry.io/otel/semconv/v1.12.0` is replaced by `ClientRequest` in `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`.
- The `HTTPServerAttributesFromHTTPRequest` function in `go.opentelemetry.io/otel/semconv/v1.12.0` is replaced by `ServerRequest` in `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`.
- The `HTTPServerMetricAttributesFromHTTPRequest` function in `go.opentelemetry.io/otel/semconv/v1.12.0` is replaced by `ServerRequest` in `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`.
- The `NetAttributesFromHTTPRequest` function in `go.opentelemetry.io/otel/semconv/v1.12.0` is split into `Transport` in `go.opentelemetry.io/otel/semconv/v1.13.0/netconv` and `ClientRequest` or `ServerRequest` in `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`.
- The `SpanStatusFromHTTPStatusCode` function in `go.opentelemetry.io/otel/semconv/v1.12.0` is replaced by `ClientStatus` in `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`.
- The `SpanStatusFromHTTPStatusCodeAndSpanKind` function in `go.opentelemetry.io/otel/semconv/v1.12.0` is split into `ClientStatus` and `ServerStatus` in `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`.
- The `Client` function is included in `go.opentelemetry.io/otel/semconv/v1.13.0/netconv` to generate attributes for a `net.Conn`.
- The `Server` function is included in `go.opentelemetry.io/otel/semconv/v1.13.0/netconv` to generate attributes for a `net.Listener`.
- The `go.opentelemetry.io/otel/semconv/v1.14.0` package. The package contains semantic conventions from the `v1.14.0` version of the OpenTelemetry specification. ([#​3566](https://github.com/open-telemetry/opentelemetry-go/issues/3566))
- The `go.opentelemetry.io/otel/semconv/v1.15.0` package. The package contains semantic conventions from the `v1.15.0` version of the OpenTelemetry specification. ([#​3578](https://github.com/open-telemetry/opentelemetry-go/issues/3578))
- The `go.opentelemetry.io/otel/semconv/v1.16.0` package. The package contains semantic conventions from the `v1.16.0` version of the OpenTelemetry specification. ([#​3579](https://github.com/open-telemetry/opentelemetry-go/issues/3579))
- Metric instruments to `go.opentelemetry.io/otel/metric/instrument`. These instruments are use as replacements of the depreacted `go.opentelemetry.io/otel/metric/instrument/{asyncfloat64,asyncint64,syncfloat64,syncint64}` packages.([#​3575](https://github.com/open-telemetry/opentelemetry-go/issues/3575), [#​3586](https://github.com/open-telemetry/opentelemetry-go/issues/3586))
- `Float64ObservableCounter` replaces the `asyncfloat64.Counter`
- `Float64ObservableUpDownCounter` replaces the `asyncfloat64.UpDownCounter`
- `Float64ObservableGauge` replaces the `asyncfloat64.Gauge`
- `Int64ObservableCounter` replaces the `asyncint64.Counter`
- `Int64ObservableUpDownCounter` replaces the `asyncint64.UpDownCounter`
- `Int64ObservableGauge` replaces the `asyncint64.Gauge`
- `Float64Counter` replaces the `syncfloat64.Counter`
- `Float64UpDownCounter` replaces the `syncfloat64.UpDownCounter`
- `Float64Histogram` replaces the `syncfloat64.Histogram`
- `Int64Counter` replaces the `syncint64.Counter`
- `Int64UpDownCounter` replaces the `syncint64.UpDownCounter`
- `Int64Histogram` replaces the `syncint64.Histogram`
- `NewTracerProvider` to `go.opentelemetry.io/otel/bridge/opentracing`. This is used to create `WrapperTracer` instances from a `TracerProvider`. ([#​3116](https://github.com/open-telemetry/opentelemetry-go/issues/3116))
- The `Extrema` type to `go.opentelemetry.io/otel/sdk/metric/metricdata`. This type is used to represent min/max values and still be able to distinguish unset and zero values. ([#​3487](https://github.com/open-telemetry/opentelemetry-go/issues/3487))
- The `go.opentelemetry.io/otel/semconv/v1.17.0` package. The package contains semantic conventions from the `v1.17.0` version of the OpenTelemetry specification. ([#​3599](https://github.com/open-telemetry/opentelemetry-go/issues/3599))
##### Changed
- Jaeger and Zipkin exporter use `github.com/go-logr/logr` as the logging interface, and add the `WithLogr` option. ([#​3497](https://github.com/open-telemetry/opentelemetry-go/issues/3497), [#​3500](https://github.com/open-telemetry/opentelemetry-go/issues/3500))
- Instrument configuration in `go.opentelemetry.io/otel/metric/instrument` is split into specific options and confguration based on the instrument type. ([#​3507](https://github.com/open-telemetry/opentelemetry-go/issues/3507))
- Use the added `Int64Option` type to configure instruments from `go.opentelemetry.io/otel/metric/instrument/syncint64`.
- Use the added `Float64Option` type to configure instruments from `go.opentelemetry.io/otel/metric/instrument/syncfloat64`.
- Use the added `Int64ObserverOption` type to configure instruments from `go.opentelemetry.io/otel/metric/instrument/asyncint64`.
- Use the added `Float64ObserverOption` type to configure instruments from `go.opentelemetry.io/otel/metric/instrument/asyncfloat64`.
- Return a `Registration` from the `RegisterCallback` method of a `Meter` in the `go.opentelemetry.io/otel/metric` package. This `Registration` can be used to unregister callbacks. ([#​3522](https://github.com/open-telemetry/opentelemetry-go/issues/3522))
- Global error handler uses an atomic value instead of a mutex. ([#​3543](https://github.com/open-telemetry/opentelemetry-go/issues/3543))
- Add `NewMetricProducer` to `go.opentelemetry.io/otel/bridge/opencensus`, which can be used to pass OpenCensus metrics to an OpenTelemetry Reader. ([#​3541](https://github.com/open-telemetry/opentelemetry-go/issues/3541))
- Global logger uses an atomic value instead of a mutex. ([#​3545](https://github.com/open-telemetry/opentelemetry-go/issues/3545))
- The `Shutdown` method of the `"go.opentelemetry.io/otel/sdk/trace".TracerProvider` releases all computational resources when called the first time. ([#​3551](https://github.com/open-telemetry/opentelemetry-go/issues/3551))
- The `Sampler` returned from `TraceIDRatioBased` `go.opentelemetry.io/otel/sdk/trace` now uses the rightmost bits for sampling decisions. This fixes random sampling when using ID generators like `xray.IDGenerator` and increasing parity with other language implementations. ([#​3557](https://github.com/open-telemetry/opentelemetry-go/issues/3557))
- Errors from `go.opentelemetry.io/otel/exporters/otlp/otlptrace` exporters are wrapped in erros identifying their signal name. Existing users of the exporters attempting to identify specific errors will need to use `errors.Unwrap()` to get the underlying error. ([#​3516](https://github.com/open-telemetry/opentelemetry-go/issues/3516))
- Exporters from `go.opentelemetry.io/otel/exporters/otlp` will print the final retryable error message when attempts to retry time out. ([#​3514](https://github.com/open-telemetry/opentelemetry-go/issues/3514))
- The instrument kind names in `go.opentelemetry.io/otel/sdk/metric` are updated to match the API. ([#​3562](https://github.com/open-telemetry/opentelemetry-go/issues/3562))
- `InstrumentKindSyncCounter` is renamed to `InstrumentKindCounter`
- `InstrumentKindSyncUpDownCounter` is renamed to `InstrumentKindUpDownCounter`
- `InstrumentKindSyncHistogram` is renamed to `InstrumentKindHistogram`
- `InstrumentKindAsyncCounter` is renamed to `InstrumentKindObservableCounter`
- `InstrumentKindAsyncUpDownCounter` is renamed to `InstrumentKindObservableUpDownCounter`
- `InstrumentKindAsyncGauge` is renamed to `InstrumentKindObservableGauge`
- The `RegisterCallback` method of the `Meter` in `go.opentelemetry.io/otel/metric` changed.
- The named `Callback` replaces the inline function parameter. ([#​3564](https://github.com/open-telemetry/opentelemetry-go/issues/3564))
- `Callback` is required to return an error. ([#​3576](https://github.com/open-telemetry/opentelemetry-go/issues/3576))
- `Callback` accepts the added `Observer` parameter added. This new parameter is used by `Callback` implementations to observe values for asynchronous instruments instead of calling the `Observe` method of the instrument directly. ([#​3584](https://github.com/open-telemetry/opentelemetry-go/issues/3584))
- The slice of `instrument.Asynchronous` is now passed as a variadic argument. ([#​3587](https://github.com/open-telemetry/opentelemetry-go/issues/3587))
- The exporter from `go.opentelemetry.io/otel/exporters/zipkin` is updated to use the `v1.16.0` version of semantic conventions. This means it no longer uses the removed `net.peer.ip` or `http.host` attributes to determine the remote endpoint. Instead it uses the `net.sock.peer` attributes. ([#​3581](https://github.com/open-telemetry/opentelemetry-go/issues/3581))
- The `Min` and `Max` fields of the `HistogramDataPoint` in `go.opentelemetry.io/otel/sdk/metric/metricdata` are now defined with the added `Extrema` type instead of a `*float64`. ([#​3487](https://github.com/open-telemetry/opentelemetry-go/issues/3487))
##### Fixed
- Asynchronous instruments that use sum aggregators and attribute filters correctly add values from equivalent attribute sets that have been filtered. ([#​3439](https://github.com/open-telemetry/opentelemetry-go/issues/3439), [#​3549](https://github.com/open-telemetry/opentelemetry-go/issues/3549))
- The `RegisterCallback` method of the `Meter` from `go.opentelemetry.io/otel/sdk/metric` only registers a callback for instruments created by that meter. Trying to register a callback with instruments from a different meter will result in an error being returned. ([#​3584](https://github.com/open-telemetry/opentelemetry-go/issues/3584))
##### Deprecated
- The `NewMetricExporter` in `go.opentelemetry.io/otel/bridge/opencensus` is deprecated. Use `NewMetricProducer` instead. ([#​3541](https://github.com/open-telemetry/opentelemetry-go/issues/3541))
- The `go.opentelemetry.io/otel/metric/instrument/asyncfloat64` package is deprecated. Use the instruments from `go.opentelemetry.io/otel/metric/instrument` instead. ([#​3575](https://github.com/open-telemetry/opentelemetry-go/issues/3575))
- The `go.opentelemetry.io/otel/metric/instrument/asyncint64` package is deprecated. Use the instruments from `go.opentelemetry.io/otel/metric/instrument` instead. ([#​3575](https://github.com/open-telemetry/opentelemetry-go/issues/3575))
- The `go.opentelemetry.io/otel/metric/instrument/syncfloat64` package is deprecated. Use the instruments from `go.opentelemetry.io/otel/metric/instrument` instead. ([#​3575](https://github.com/open-telemetry/opentelemetry-go/issues/3575))
- The `go.opentelemetry.io/otel/metric/instrument/syncint64` package is deprecated. Use the instruments from `go.opentelemetry.io/otel/metric/instrument` instead. ([#​3575](https://github.com/open-telemetry/opentelemetry-go/issues/3575))
- The `NewWrappedTracerProvider` in `go.opentelemetry.io/otel/bridge/opentracing` is now deprecated. Use `NewTracerProvider` instead. ([#​3116](https://github.com/open-telemetry/opentelemetry-go/issues/3116))
##### Removed
- The deprecated `go.opentelemetry.io/otel/sdk/metric/view` package is removed. ([#​3520](https://github.com/open-telemetry/opentelemetry-go/issues/3520))
- The `InstrumentProvider` from `go.opentelemetry.io/otel/sdk/metric/asyncint64` is removed. Use the new creation methods of the `Meter` in `go.opentelemetry.io/otel/sdk/metric` instead. ([#​3530](https://github.com/open-telemetry/opentelemetry-go/issues/3530))
- The `Counter` method is replaced by `Meter.Int64ObservableCounter`
- The `UpDownCounter` method is replaced by `Meter.Int64ObservableUpDownCounter`
- The `Gauge` method is replaced by `Meter.Int64ObservableGauge`
- The `InstrumentProvider` from `go.opentelemetry.io/otel/sdk/metric/asyncfloat64` is removed. Use the new creation methods of the `Meter` in `go.opentelemetry.io/otel/sdk/metric` instead. ([#​3530](https://github.com/open-telemetry/opentelemetry-go/issues/3530))
- The `Counter` method is replaced by `Meter.Float64ObservableCounter`
- The `UpDownCounter` method is replaced by `Meter.Float64ObservableUpDownCounter`
- The `Gauge` method is replaced by `Meter.Float64ObservableGauge`
- The `InstrumentProvider` from `go.opentelemetry.io/otel/sdk/metric/syncint64` is removed. Use the new creation methods of the `Meter` in `go.opentelemetry.io/otel/sdk/metric` instead. ([#​3530](https://github.com/open-telemetry/opentelemetry-go/issues/3530))
- The `Counter` method is replaced by `Meter.Int64Counter`
- The `UpDownCounter` method is replaced by `Meter.Int64UpDownCounter`
- The `Histogram` method is replaced by `Meter.Int64Histogram`
- The `InstrumentProvider` from `go.opentelemetry.io/otel/sdk/metric/syncfloat64` is removed. Use the new creation methods of the `Meter` in `go.opentelemetry.io/otel/sdk/metric` instead. ([#​3530](https://github.com/open-telemetry/opentelemetry-go/issues/3530))
- The `Counter` method is replaced by `Meter.Float64Counter`
- The `UpDownCounter` method is replaced by `Meter.Float64UpDownCounter`
- The `Histogram` method is replaced by `Meter.Float64Histogram`
### [`v1.11.2`](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.11.2): /0.34.0
[Compare Source](https://github.com/open-telemetry/opentelemetry-go/compare/v1.11.1...v1.11.2)
##### Added
- The `WithView` `Option` is added to the `go.opentelemetry.io/otel/sdk/metric` package.
This option is used to configure the view(s) a `MeterProvider` will use for all `Reader`s that are registered with it. ([#​3387](https://github.com/open-telemetry/opentelemetry-go/issues/3387))
- Add Instrumentation Scope and Version as info metric and label in Prometheus exporter.
This can be disabled using the `WithoutScopeInfo()` option added to that package.([#​3273](https://github.com/open-telemetry/opentelemetry-go/issues/3273), [#​3357](https://github.com/open-telemetry/opentelemetry-go/issues/3357))
- OTLP exporters now recognize: ([#​3363](https://github.com/open-telemetry/opentelemetry-go/issues/3363))
- `OTEL_EXPORTER_OTLP_INSECURE`
- `OTEL_EXPORTER_OTLP_TRACES_INSECURE`
- `OTEL_EXPORTER_OTLP_METRICS_INSECURE`
- `OTEL_EXPORTER_OTLP_CLIENT_KEY`
- `OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY`
- `OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY`
- `OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE`
- `OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE`
- `OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE`
- The `View` type and related `NewView` function to create a view according to the OpenTelemetry specification are added to `go.opentelemetry.io/otel/sdk/metric`.
These additions are replacements for the `View` type and `New` function from `go.opentelemetry.io/otel/sdk/metric/view`. ([#​3459](https://github.com/open-telemetry/opentelemetry-go/issues/3459))
- The `Instrument` and `InstrumentKind` type are added to `go.opentelemetry.io/otel/sdk/metric`.
These additions are replacements for the `Instrument` and `InstrumentKind` types from `go.opentelemetry.io/otel/sdk/metric/view`. ([#​3459](https://github.com/open-telemetry/opentelemetry-go/issues/3459))
- The `Stream` type is added to `go.opentelemetry.io/otel/sdk/metric` to define a metric data stream a view will produce. ([#​3459](https://github.com/open-telemetry/opentelemetry-go/issues/3459))
- The `AssertHasAttributes` allows instrument authors to test that datapoints returned have appropriate attributes. ([#​3487](https://github.com/open-telemetry/opentelemetry-go/issues/3487))
##### Changed
- The `"go.opentelemetry.io/otel/sdk/metric".WithReader` option no longer accepts views to associate with the `Reader`.
Instead, views are now registered directly with the `MeterProvider` via the new `WithView` option.
The views registered with the `MeterProvider` apply to all `Reader`s. ([#​3387](https://github.com/open-telemetry/opentelemetry-go/issues/3387))
- The `Temporality(view.InstrumentKind) metricdata.Temporality` and `Aggregation(view.InstrumentKind) aggregation.Aggregation` methods are added to the `"go.opentelemetry.io/otel/sdk/metric".Exporter` interface. ([#​3260](https://github.com/open-telemetry/opentelemetry-go/issues/3260))
- The `Temporality(view.InstrumentKind) metricdata.Temporality` and `Aggregation(view.InstrumentKind) aggregation.Aggregation` methods are added to the `"go.opentelemetry.io/otel/exporters/otlp/otlpmetric".Client` interface. ([#​3260](https://github.com/open-telemetry/opentelemetry-go/issues/3260))
- The `WithTemporalitySelector` and `WithAggregationSelector` `ReaderOption`s have been changed to `ManualReaderOption`s in the `go.opentelemetry.io/otel/sdk/metric` package. ([#​3260](https://github.com/open-telemetry/opentelemetry-go/issues/3260))
- The periodic reader in the `go.opentelemetry.io/otel/sdk/metric` package now uses the temporality and aggregation selectors from its configured exporter instead of accepting them as options. ([#​3260](https://github.com/open-telemetry/opentelemetry-go/issues/3260))
##### Fixed
- The `go.opentelemetry.io/otel/exporters/prometheus` exporter fixes duplicated `_total` suffixes. ([#​3369](https://github.com/open-telemetry/opentelemetry-go/issues/3369))
- Remove comparable requirement for `Reader`s. ([#​3387](https://github.com/open-telemetry/opentelemetry-go/issues/3387))
- Cumulative metrics from the OpenCensus bridge (`go.opentelemetry.io/otel/bridge/opencensus`) are defined as monotonic sums, instead of non-monotonic. ([#​3389](https://github.com/open-telemetry/opentelemetry-go/issues/3389))
- Asynchronous counters (`Counter` and `UpDownCounter`) from the metric SDK now produce delta sums when configured with delta temporality. ([#​3398](https://github.com/open-telemetry/opentelemetry-go/issues/3398))
- Exported `Status` codes in the `go.opentelemetry.io/otel/exporters/zipkin` exporter are now exported as all upper case values. ([#​3340](https://github.com/open-telemetry/opentelemetry-go/issues/3340))
- `Aggregation`s from `go.opentelemetry.io/otel/sdk/metric` with no data are not exported. ([#​3394](https://github.com/open-telemetry/opentelemetry-go/issues/3394), [#​3436](https://github.com/open-telemetry/opentelemetry-go/issues/3436))
- Reenabled Attribute Filters in the Metric SDK. ([#​3396](https://github.com/open-telemetry/opentelemetry-go/issues/3396))
- Asynchronous callbacks are only called if they are registered with at least one instrument that does not use drop aggragation. ([#​3408](https://github.com/open-telemetry/opentelemetry-go/issues/3408))
- Do not report empty partial-success responses in the `go.opentelemetry.io/otel/exporters/otlp` exporters. ([#​3438](https://github.com/open-telemetry/opentelemetry-go/issues/3438), [#​3432](https://github.com/open-telemetry/opentelemetry-go/issues/3432))
- Handle partial success responses in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric` exporters. ([#​3162](https://github.com/open-telemetry/opentelemetry-go/issues/3162), [#​3440](https://github.com/open-telemetry/opentelemetry-go/issues/3440))
- Prevent duplicate Prometheus description, unit, and type. ([#​3469](https://github.com/open-telemetry/opentelemetry-go/issues/3469))
- Prevents panic when using incorrect `attribute.Value.As[Type]Slice()`. ([#​3489](https://github.com/open-telemetry/opentelemetry-go/issues/3489))
##### Removed
- The `go.opentelemetry.io/otel/exporters/otlp/otlpmetric.Client` interface is removed. ([#​3486](https://github.com/open-telemetry/opentelemetry-go/issues/3486))
- The `go.opentelemetry.io/otel/exporters/otlp/otlpmetric.New` function is removed. Use the `otlpmetric[http|grpc].New` directly. ([#​3486](https://github.com/open-telemetry/opentelemetry-go/issues/3486))
##### Deprecated
- The `go.opentelemetry.io/otel/sdk/metric/view` package is deprecated.
Use `Instrument`, `InstrumentKind`, `View`, and `NewView` in `go.opentelemetry.io/otel/sdk/metric` instead. ([#​3476](https://github.com/open-telemetry/opentelemetry-go/issues/3476))
### [`v1.11.1`](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.11.1): /v0.33.0
[Compare Source](https://github.com/open-telemetry/opentelemetry-go/compare/v1.11.0...v1.11.1)
##### Added
- The Prometheus exporter in `go.opentelemetry.io/otel/exporters/prometheus` registers with a Prometheus registerer on creation. By default, it will register with the default Prometheus default registerer. A non-default registerer can be used by passing the `WithRegisterer` option. ([#​3239](https://github.com/open-telemetry/opentelemetry-go/issues/3239))
- Added the `WithAggregationSelector` option to the `go.opentelemetry.io/otel/exporters/prometheus` package to change the default `AggregationSelector` used. ([#​3341](https://github.com/open-telemetry/opentelemetry-go/issues/3341))
- The Prometheus exporter in `go.opentelemetry.io/otel/exporters/prometheus` converts the `Resource` associated with metric exports into a `target_info` metric. ([#​3285](https://github.com/open-telemetry/opentelemetry-go/issues/3285))
##### Changed
- The `"go.opentelemetry.io/otel/exporters/prometheus".New` function is updated to return an error. It will return an error if the exporter fails to register with Prometheus. ([#​3239](https://github.com/open-telemetry/opentelemetry-go/issues/3239))
##### Fixed
- The URL-encoded values from the `OTEL_RESOURCE_ATTRIBUTES` environment variable are decoded. ([#​2963](https://github.com/open-telemetry/opentelemetry-go/issues/2963))
- The `baggage.NewMember` function decodes the `value` parameter instead of directly using it. This fixes the implementation to be compliant with the W3C specification. ([#​3226](https://github.com/open-telemetry/opentelemetry-go/issues/3226))
- Slice attributes of the `attribute` package are now comparable based on their value, not instance. ([#​3108](https://github.com/open-telemetry/opentelemetry-go/issues/3108) [#​3252](https://github.com/open-telemetry/opentelemetry-go/issues/3252))
- The `Shutdown` and `ForceFlush` methods of the `"go.opentelemetry.io/otel/sdk/trace".TraceProvider` no longer return an error when no processor is registered. ([#​3268](https://github.com/open-telemetry/opentelemetry-go/issues/3268))
- The Prometheus exporter in `go.opentelemetry.io/otel/exporters/prometheus` cumulatively sums histogram buckets. ([#​3281](https://github.com/open-telemetry/opentelemetry-go/issues/3281))
- The sum of each histogram data point is now uniquely exported by the `go.opentelemetry.io/otel/exporters/otlpmetric` exporters. ([#​3284](https://github.com/open-telemetry/opentelemetry-go/issues/3284), [#​3293](https://github.com/open-telemetry/opentelemetry-go/issues/3293))
- Recorded values for asynchronous counters (`Counter` and `UpDownCounter`) are interpreted as exact, not incremental, sum values by the metric SDK. ([#​3350](https://github.com/open-telemetry/opentelemetry-go/issues/3350), [#​3278](https://github.com/open-telemetry/opentelemetry-go/issues/3278))
- `UpDownCounters` are now correctly output as Prometheus gauges in the `go.opentelemetry.io/otel/exporters/prometheus` exporter. ([#​3358](https://github.com/open-telemetry/opentelemetry-go/issues/3358))
- The Prometheus exporter in `go.opentelemetry.io/otel/exporters/prometheus` no longer describes the metrics it will send to Prometheus on startup. Instead the exporter is defined as an "unchecked" collector for Prometheus. This fixes the `reader is not registered` warning currently emitted on startup. ([#​3291](https://github.com/open-telemetry/opentelemetry-go/issues/3291) [#​3342](https://github.com/open-telemetry/opentelemetry-go/issues/3342))
- The `go.opentelemetry.io/otel/exporters/prometheus` exporter now correctly adds `_total` suffixes to counter metrics. ([#​3360](https://github.com/open-telemetry/opentelemetry-go/issues/3360))
- The `go.opentelemetry.io/otel/exporters/prometheus` exporter now adds a unit suffix to metric names. This can be disabled using the `WithoutUnits()` option added to that package. ([#​3352](https://github.com/open-telemetry/opentelemetry-go/issues/3352))
### [`v1.11.0`](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.11.0): /v0.32.3
[Compare Source](https://github.com/open-telemetry/opentelemetry-go/compare/v1.10.0...v1.11.0)
Retracts the `v0.32.2` version of `go.opentelemetry.io/otel/exporters/otlpmetric/otlpmetricgrpc` and `go.opentelemetry.io/otel/exporters/otlpmetric/otlpmetrichttp` given they include unresolvable dependencies.
##### Added
- Add default User-Agent header to OTLP exporter requests (`go.opentelemetry.io/otel/exporters/otlptrace/otlptracegrpc` and `go.opentelemetry.io/otel/exporters/otlptrace/otlptracehttp`). ([#​3261](https://github.com/open-telemetry/opentelemetry-go/issues/3261))
##### Changed
- `span.SetStatus` has been updated such that calls that lower the status are now no-ops. ([#​3214](https://github.com/open-telemetry/opentelemetry-go/issues/3214))
- Upgrade `golang.org/x/sys/unix` from `v0.0.0-20210423185535-09eb48e85fd7` to `v0.0.0-20220919091848-fb04ddd9f9c8`.
This addresses [GO-2022-0493](https://pkg.go.dev/vuln/GO-2022-0493). ([#​3235](https://github.com/open-telemetry/opentelemetry-go/issues/3235))
</details>
---
### Configuration
📅 **Schedule**: 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 MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about these updates again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzMi4xOTQuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE5NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->https://git.autistici.org/ai3/go-common/-/merge_requests/64Update module github.com/prometheus/client_golang to v1.19.02024-03-22T09:24:37ZrenovateUpdate module github.com/prometheus/client_golang to v1.19.0This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) | require | minor | `v1.12.2` -> `v1.19.0` |
---
### R...This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) | require | minor | `v1.12.2` -> `v1.19.0` |
---
### Release Notes
<details>
<summary>prometheus/client_golang (github.com/prometheus/client_golang)</summary>
### [`v1.19.0`](https://github.com/prometheus/client_golang/releases/tag/v1.19.0)
[Compare Source](https://github.com/prometheus/client_golang/compare/v1.18.0...v1.19.0)
#### What's Changed
The module `prometheus/common v0.48.0` introduced an incompatibility when used together with client_golang (See https://github.com/prometheus/client_golang/pull/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](https://github.com/prometheus/client_golang/issues/1445) [#​1449](https://github.com/prometheus/client_golang/issues/1449)
- \[FEATURE] collectors: Add version collector. [#​1422](https://github.com/prometheus/client_golang/issues/1422) [#​1427](https://github.com/prometheus/client_golang/issues/1427)
#### New Contributors
- [@​michurin](https://github.com/michurin) made their first contribution in https://github.com/prometheus/client_golang/pull/1423
- [@​kavu](https://github.com/kavu) made their first contribution in https://github.com/prometheus/client_golang/pull/1445
- [@​ywwg](https://github.com/ywwg) made their first contribution in https://github.com/prometheus/client_golang/pull/1448
**Full Changelog**: https://github.com/prometheus/client_golang/compare/v1.18.0...v1.19.0
### [`v1.18.0`](https://github.com/prometheus/client_golang/releases/tag/v1.18.0)
[Compare Source](https://github.com/prometheus/client_golang/compare/v1.17.0...v1.18.0)
#### What's Changed
- \[FEATURE] promlint: Allow creation of custom metric validations. [#​1311](https://github.com/prometheus/client_golang/issues/1311)
- \[FEATURE] Go programs using client_golang can be built in wasip1 OS. [#​1350](https://github.com/prometheus/client_golang/issues/1350)
- \[BUGFIX] histograms: Add timer to reset ASAP after bucket limiting has happened. [#​1367](https://github.com/prometheus/client_golang/issues/1367)
- \[BUGFIX] testutil: Fix comparison of metrics with empty Help strings. [#​1378](https://github.com/prometheus/client_golang/issues/1378)
- \[ENHANCEMENT] Improved performance of `MetricVec.WithLabelValues(...)`. [#​1360](https://github.com/prometheus/client_golang/issues/1360)
#### New Contributors
- [@​srenatus](https://github.com/srenatus) made their first contribution in https://github.com/prometheus/client_golang/pull/1350
- [@​jadolg](https://github.com/jadolg) made their first contribution in https://github.com/prometheus/client_golang/pull/1342
- [@​manas-rust](https://github.com/manas-rust) made their first contribution in https://github.com/prometheus/client_golang/pull/1383
- [@​bluekeyes](https://github.com/bluekeyes) made their first contribution in https://github.com/prometheus/client_golang/pull/1378
- [@​tsipo](https://github.com/tsipo) made their first contribution in https://github.com/prometheus/client_golang/pull/1387
**Full Changelog**: https://github.com/prometheus/client_golang/compare/v1.17.0...v1.18.0
### [`v1.17.0`](https://github.com/prometheus/client_golang/releases/tag/v1.17.0)
[Compare Source](https://github.com/prometheus/client_golang/compare/v1.16.0...v1.17.0)
#### What's Changed
- \[CHANGE] Minimum required go version is now 1.19 (we also test client_golang against new 1.21 version). [#​1325](https://github.com/prometheus/client_golang/issues/1325)
- \[FEATURE] Add support for Created Timestamps in Counters, Summaries and Historams. [#​1313](https://github.com/prometheus/client_golang/issues/1313)
- \[ENHANCEMENT] Enable detection of a native histogram without observations. [#​1314](https://github.com/prometheus/client_golang/issues/1314)
<details><summary>Commits</summary>
- Merge v1.16.0 to main by [@​bwplotka](https://github.com/bwplotka) in https://github.com/prometheus/client_golang/pull/1293
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in https://github.com/prometheus/client_golang/pull/1297
- ci: define minimal permissions to GitHub workflows by [@​diogoteles08](https://github.com/diogoteles08) in https://github.com/prometheus/client_golang/pull/1295
- Do not allocate memory when there's no constraints by [@​Okhoshi](https://github.com/Okhoshi) in https://github.com/prometheus/client_golang/pull/1296
- Bump golang.org/x/sys from 0.8.0 to 0.9.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1306
- Bump google.golang.org/grpc from 1.45.0 to 1.53.0 in /tutorial/whatsup by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1307
- histogram: Enable detection of a native histogram without observations by [@​beorn7](https://github.com/beorn7) in https://github.com/prometheus/client_golang/pull/1314
- Bump github.com/prometheus/procfs from 0.10.1 to 0.11.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1305
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in https://github.com/prometheus/client_golang/pull/1302
- Fix data-race in metric without `code` and `method` but with `WithLabelFromCtx` by [@​tigrato](https://github.com/tigrato) in https://github.com/prometheus/client_golang/pull/1318
- Add missing tick "\`" in README by [@​ZiViZiViZ](https://github.com/ZiViZiViZ) in https://github.com/prometheus/client_golang/pull/1321
- Bump golang.org/x/sys from 0.9.0 to 0.10.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1320
- Bump github.com/prometheus/procfs from 0.11.0 to 0.11.1 by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1319
- docs: trivial grammar fixes to improve readability in promauto Godoc by [@​sengi](https://github.com/sengi) in https://github.com/prometheus/client_golang/pull/1322
- Add Go 1.21 support by [@​kakkoyun](https://github.com/kakkoyun) in https://github.com/prometheus/client_golang/pull/1325
- Bump client_model by [@​ArthurSens](https://github.com/ArthurSens) in https://github.com/prometheus/client_golang/pull/1323
- histogram docs: Fixed minor nit. by [@​bwplotka](https://github.com/bwplotka) in https://github.com/prometheus/client_golang/pull/1324
- Update building by [@​SuperQ](https://github.com/SuperQ) in https://github.com/prometheus/client_golang/pull/1326
- Bump golang.org/x/sys from 0.10.0 to 0.11.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1331
- Bump github.com/prometheus/client_golang from 1.15.1-0.20230416215738-0963f595c689 to 1.16.0 in /tutorial/whatsup by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1329
- Bump github.com/prometheus/client_golang from 1.13.1 to 1.16.0 in /examples/middleware by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1328
- Bump github.com/prometheus/common from 0.42.0 to 0.44.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1284
- Bump github.com/prometheus/common from 0.42.0 to 0.44.0 in /tutorial/whatsup by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1330
- Bump google.golang.org/protobuf from 1.30.0 to 1.31.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1304
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in https://github.com/prometheus/client_golang/pull/1332
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in https://github.com/prometheus/client_golang/pull/1338
- Cleanup golangci-lint errcheck by [@​SuperQ](https://github.com/SuperQ) in https://github.com/prometheus/client_golang/pull/1339
- Add go_godebug_non_default_behavior_tlsmaxrsasize_events_total by [@​alexandear](https://github.com/alexandear) in https://github.com/prometheus/client_golang/pull/1348
- Extend Counters, Summaries and Histograms with creation timestamp by [@​ArthurSens](https://github.com/ArthurSens) in https://github.com/prometheus/client_golang/pull/1313
- Fix typos in comments, tests, and errors by [@​alexandear](https://github.com/alexandear) in https://github.com/prometheus/client_golang/pull/1346
- Deprecated comment should begin with "Deprecated:" by [@​alexandear](https://github.com/alexandear) in https://github.com/prometheus/client_golang/pull/1347
- Add changelog entry for 1.17 by [@​ArthurSens](https://github.com/ArthurSens) in https://github.com/prometheus/client_golang/pull/1352
</details>
#### New Contributors
* @​diogoteles08 made their first contribution in https://github.com/prometheus/client_golang/pull/1295
* @​tigrato made their first contribution in https://github.com/prometheus/client_golang/pull/1318
* @​ZiViZiViZ made their first contribution in https://github.com/prometheus/client_golang/pull/1321
* @​sengi made their first contribution in https://github.com/prometheus/client_golang/pull/1322
* @​ArthurSens made their first contribution in https://github.com/prometheus/client_golang/pull/1323
* @​alexandear made their first contribution in https://github.com/prometheus/client_golang/pull/1348
**Full Changelog**: https://github.com/prometheus/client_golang/compare/v1.16.0...v1.17.0
### [`v1.16.0`](https://github.com/prometheus/client_golang/releases/tag/v1.16.0)
[Compare Source](https://github.com/prometheus/client_golang/compare/v1.15.1...v1.16.0)
#### What's Changed
- \[BUGFIX] api: Switch to POST for LabelNames, Series, and QueryExemplars. [#​1252](https://github.com/prometheus/client_golang/issues/1252)
- \[BUGFIX] api: Fix undefined execution order in return statements. [#​1260](https://github.com/prometheus/client_golang/issues/1260)
- \[BUGFIX] native histograms: Fix bug in bucket key calculation. [#​1279](https://github.com/prometheus/client_golang/issues/1279)
- \[ENHANCEMENT] Reduce constrainLabels allocations for all metrics. [#​1272](https://github.com/prometheus/client_golang/issues/1272)
- \[ENHANCEMENT] promhttp: Add process start time header for scrape efficiency. [#​1278](https://github.com/prometheus/client_golang/issues/1278)
- \[ENHANCEMENT] promlint: Improve metricUnits runtime. [#​1286](https://github.com/prometheus/client_golang/issues/1286)
<details>
<summary> Commits </summary>
- Merge v1.15 to main by [@​bwplotka](https://github.com/bwplotka) in https://github.com/prometheus/client_golang/pull/1250
- Switch to POST for LabelNames, Series, and QueryExemplars to DoGetFallback by [@​jacksontj](https://github.com/jacksontj) in https://github.com/prometheus/client_golang/pull/1252
- ✏️ \[collectors]: fix typo in test assertion by [@​vegerot](https://github.com/vegerot) in https://github.com/prometheus/client_golang/pull/1153
- Added interactive tutorial \[kubeCon] by [@​bwplotka](https://github.com/bwplotka) in https://github.com/prometheus/client_golang/pull/1255
- Fixed tutorial. by [@​bwplotka](https://github.com/bwplotka) in https://github.com/prometheus/client_golang/pull/1256
- Bump golang.org/x/sys from 0.6.0 to 0.7.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1265
- Cleanup proto use in tests by [@​SuperQ](https://github.com/SuperQ) in https://github.com/prometheus/client_golang/pull/1264
- Fix tutorial on WSL-based systems by [@​marevers](https://github.com/marevers) in https://github.com/prometheus/client_golang/pull/1257
- Fix undefined execution order in return statements by [@​PiotrLewandowski323](https://github.com/PiotrLewandowski323) in https://github.com/prometheus/client_golang/pull/1260
- Merge release 1.15.1 to main by [@​bwplotka](https://github.com/bwplotka) in https://github.com/prometheus/client_golang/pull/1267
- GitHub Workflows security hardening by [@​sashashura](https://github.com/sashashura) in https://github.com/prometheus/client_golang/pull/1180
- add process start time header to client_golang prometheus by [@​logicalhan](https://github.com/logicalhan) in https://github.com/prometheus/client_golang/pull/1278
- Fix bug in bucket key calculation by [@​beorn7](https://github.com/beorn7) in https://github.com/prometheus/client_golang/pull/1279
- Bump github.com/prometheus/procfs from 0.9.0 to 0.10.1 by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1283
- Reduce constrainLabels allocations by [@​khasanovbi](https://github.com/khasanovbi) in https://github.com/prometheus/client_golang/pull/1272
- added circleci as gh action YAML by [@​krishnaduttPanchagnula](https://github.com/krishnaduttPanchagnula) in https://github.com/prometheus/client_golang/pull/1281
- Improve metricUnits runtime by [@​avlitman](https://github.com/avlitman) in https://github.com/prometheus/client_golang/pull/1286
- Moving fully to GH actions. by [@​bwplotka](https://github.com/bwplotka) in https://github.com/prometheus/client_golang/pull/1288
- Fix docstring references to renamed native histogram fields / functions. by [@​juliusv](https://github.com/juliusv) in https://github.com/prometheus/client_golang/pull/1290
- Fixed README & CHANGELOG; Added fmt makefile command (+bingo) for easier contributions. by [@​bwplotka](https://github.com/bwplotka) in https://github.com/prometheus/client_golang/pull/1289
-
</details>
#### New Contributors
* @​vegerot made their first contribution in https://github.com/prometheus/client_golang/pull/1153
* @​marevers made their first contribution in https://github.com/prometheus/client_golang/pull/1257
* @​PiotrLewandowski323 made their first contribution in https://github.com/prometheus/client_golang/pull/1260
* @​sashashura made their first contribution in https://github.com/prometheus/client_golang/pull/1180
* @​logicalhan made their first contribution in https://github.com/prometheus/client_golang/pull/1278
* @​khasanovbi made their first contribution in https://github.com/prometheus/client_golang/pull/1272
* @​krishnaduttPanchagnula made their first contribution in https://github.com/prometheus/client_golang/pull/1281
* @​avlitman made their first contribution in https://github.com/prometheus/client_golang/pull/1286
**Full Changelog**: https://github.com/prometheus/client_golang/compare/v1.15.1...v1.16.0
### [`v1.15.1`](https://github.com/prometheus/client_golang/releases/tag/v1.15.1)
[Compare Source](https://github.com/prometheus/client_golang/compare/v1.15.0...v1.15.1)
#### Changes
- \[BUGFIX] Fixed promhttp.Instrument\* handlers wrongly trying to attach exemplar to unsupported metrics (e.g. summary), \
causing panics [#​1253](https://github.com/prometheus/client_golang/issues/1253)
**Full Changelog**: https://github.com/prometheus/client_golang/compare/v1.15.0...v1.15.1
### [`v1.15.0`](https://github.com/prometheus/client_golang/releases/tag/v1.15.0)
[Compare Source](https://github.com/prometheus/client_golang/compare/v1.14.0...v1.15.0)
#### Changed
\[BUGFIX] Fix issue with atomic variables on ppc64le [#​1171](https://github.com/prometheus/client_golang/issues/1171)
\[BUGFIX] Support for multiple samples within same metric [#​1181](https://github.com/prometheus/client_golang/issues/1181)
\[BUGFIX] Bump golang.org/x/text to v0.3.8 to mitigate CVE-2022-32149 [#​1187](https://github.com/prometheus/client_golang/issues/1187)
\[ENHANCEMENT] Add exemplars and middleware examples [#​1173](https://github.com/prometheus/client_golang/issues/1173)
\[ENHANCEMENT] Add more context to "duplicate label names" error to enable debugging [#​1177](https://github.com/prometheus/client_golang/issues/1177)
\[ENHANCEMENT] Add constrained labels and constrained variant for all MetricVecs [#​1151](https://github.com/prometheus/client_golang/issues/1151)
\[ENHANCEMENT] Moved away from deprecated github.com/golang/protobuf package [#​1183](https://github.com/prometheus/client_golang/issues/1183)
\[ENHANCEMENT] Add possibility to dynamically get label values for http instrumentation [#​1066](https://github.com/prometheus/client_golang/issues/1066)
\[ENHANCEMENT] Add ability to Pusher to add custom headers [#​1218](https://github.com/prometheus/client_golang/issues/1218)
\[ENHANCEMENT] api: Extend and improve efficiency of json-iterator usage [#​1225](https://github.com/prometheus/client_golang/issues/1225)
\[ENHANCEMENT] Added (official) support for go 1.20 [#​1234](https://github.com/prometheus/client_golang/issues/1234)
\[ENHANCEMENT] timer: Added support for exemplars [#​1233](https://github.com/prometheus/client_golang/issues/1233)
\[ENHANCEMENT] Filter expected metrics as well in CollectAndCompare [#​1143](https://github.com/prometheus/client_golang/issues/1143)
\[ENHANCEMENT] ⚠️ Only set start/end if time is not Zero. This breaks compatibility in experimental api package. If you strictly depend on empty time.Time as actual value, the behavior is now changed [#​1238](https://github.com/prometheus/client_golang/issues/1238)
<details>
<summary>All commits</summary>
- Merge release 1.14 to main by [@​bwplotka](https://github.com/bwplotka) in https://github.com/prometheus/client_golang/pull/1164
- Fix typo in doc comment by [@​beorn7](https://github.com/beorn7) in https://github.com/prometheus/client_golang/pull/1166
- Fix issue with atomic variables on ppc64le by [@​beorn7](https://github.com/beorn7) in https://github.com/prometheus/client_golang/pull/1171
- examples: Add exemplars and middleware examples by [@​jessicalins](https://github.com/jessicalins) in https://github.com/prometheus/client_golang/pull/1173
- Add context to "duplicate label names" to enable debugging by [@​SpencerMalone](https://github.com/SpencerMalone) in https://github.com/prometheus/client_golang/pull/1177
- Add constrained labels and Constrained variant for all MetricVecs by [@​Okhoshi](https://github.com/Okhoshi) in https://github.com/prometheus/client_golang/pull/1151
- Support for multiple samples within same metric by [@​machadovilaca](https://github.com/machadovilaca) in https://github.com/prometheus/client_golang/pull/1181
- Replace deprecated github.com/golang/protobuf package by [@​zhsj](https://github.com/zhsj) in https://github.com/prometheus/client_golang/pull/1183
- Bump golang.org/x/text to v0.3.8 to mitigate CVE-2022-32149 by [@​b4bay](https://github.com/b4bay) in https://github.com/prometheus/client_golang/pull/1187
- typo fix by [@​ibreakthecloud](https://github.com/ibreakthecloud) in https://github.com/prometheus/client_golang/pull/1178
- Add possibility to dynamically get label values for http instrumentation by [@​Okhoshi](https://github.com/Okhoshi) in https://github.com/prometheus/client_golang/pull/1066
- Bump github.com/cespare/xxhash/v2 from 2.1.2 to 2.2.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1199
- Bump github.com/prometheus/procfs from 0.8.0 to 0.9.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1198
- Bump golang.org/x/sys from 0.3.0 to 0.4.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1217
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in https://github.com/prometheus/client_golang/pull/1213
- Bump github.com/prometheus/common from 0.37.0 to 0.39.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1197
- Add `Header` method to Pusher for custom header by [@​songjiayang](https://github.com/songjiayang) in https://github.com/prometheus/client_golang/pull/1218
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in https://github.com/prometheus/client_golang/pull/1224
- api: Extend and improve json-iterator usage by [@​beorn7](https://github.com/beorn7) in https://github.com/prometheus/client_golang/pull/1225
- Indent example in godoc consistently by [@​lamida](https://github.com/lamida) in https://github.com/prometheus/client_golang/pull/1226
- Remove unnecessary check if label is nil in observeWithExemplar by [@​dimonl](https://github.com/dimonl) in https://github.com/prometheus/client_golang/pull/1235
- README: Remove not working gocoverage images. by [@​bwplotka](https://github.com/bwplotka) in https://github.com/prometheus/client_golang/pull/1236
- Added support for go 1.20. by [@​bwplotka](https://github.com/bwplotka) in https://github.com/prometheus/client_golang/pull/1234
- timer: Added support for exemplars. by [@​bwplotka](https://github.com/bwplotka) in https://github.com/prometheus/client_golang/pull/1233
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in https://github.com/prometheus/client_golang/pull/1237
- Filter expected metrics as well in CollectAndCompare by [@​DariaKunoichi](https://github.com/DariaKunoichi) in https://github.com/prometheus/client_golang/pull/1143
- Only set start/end if time is not Zero by [@​jacksontj](https://github.com/jacksontj) in https://github.com/prometheus/client_golang/pull/1238
- Bump google.golang.org/protobuf from 1.28.1 to 1.30.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1243
- Bump golang.org/x/sys from 0.5.0 to 0.6.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1246
- Bump github.com/golang/protobuf from 1.5.2 to 1.5.3 by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1245
- Bump github.com/prometheus/common from 0.41.0 to 0.42.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1244
- Cut v1.15.0 by [@​bwplotka](https://github.com/bwplotka) in https://github.com/prometheus/client_golang/pull/1249
</details>
#### New Contributors
* @​SpencerMalone made their first contribution in https://github.com/prometheus/client_golang/pull/1177
* @​Okhoshi made their first contribution in https://github.com/prometheus/client_golang/pull/1151
* @​machadovilaca made their first contribution in https://github.com/prometheus/client_golang/pull/1181
* @​b4bay made their first contribution in https://github.com/prometheus/client_golang/pull/1187
* @​ibreakthecloud made their first contribution in https://github.com/prometheus/client_golang/pull/1178
* @​songjiayang made their first contribution in https://github.com/prometheus/client_golang/pull/1218
* @​lamida made their first contribution in https://github.com/prometheus/client_golang/pull/1226
* @​dimonl made their first contribution in https://github.com/prometheus/client_golang/pull/1235
* @​DariaKunoichi made their first contribution in https://github.com/prometheus/client_golang/pull/1143
**Full Changelog**: https://github.com/prometheus/client_golang/compare/v1.14.0...v1.15.0
### [`v1.14.0`](https://github.com/prometheus/client_golang/releases/tag/v1.14.0): 1.14.0 / 2022-11-08
[Compare Source](https://github.com/prometheus/client_golang/compare/v1.13.1...v1.14.0)
It might look like a small release, but it's quite opposite 😱 There were many non user facing changes and fixes and enormous work from engineers from Grafana to add native histograms in 💪🏾 Enjoy! 😍
#### What's Changed
- \[FEATURE] Add Support for Native Histograms. [#​1150](https://github.com/prometheus/client_golang/issues/1150)
- \[CHANGE] Extend `prometheus.Registry` to implement `prometheus.Collector` interface. [#​1103](https://github.com/prometheus/client_golang/issues/1103)
#### New Contributors
- [@​hairyhenderson](https://github.com/hairyhenderson) made their first contribution in https://github.com/prometheus/client_golang/pull/1118
- [@​rfratto](https://github.com/rfratto) made their first contribution in https://github.com/prometheus/client_golang/pull/1103
- [@​donotnoot](https://github.com/donotnoot) made their first contribution in https://github.com/prometheus/client_golang/pull/1125
- [@​rogerogers](https://github.com/rogerogers) made their first contribution in https://github.com/prometheus/client_golang/pull/1130
- [@​balintzs](https://github.com/balintzs) made their first contribution in https://github.com/prometheus/client_golang/pull/1148
- [@​fstab](https://github.com/fstab) made their first contribution in https://github.com/prometheus/client_golang/pull/1146
- [@​jessicalins](https://github.com/jessicalins) made their first contribution in https://github.com/prometheus/client_golang/pull/1152
**Full Changelog**: https://github.com/prometheus/client_golang/compare/v1.13.1...v1.14.0
### [`v1.13.1`](https://github.com/prometheus/client_golang/releases/tag/v1.13.1): 1.13.1 / 2022-11-02
[Compare Source](https://github.com/prometheus/client_golang/compare/v1.13.0...v1.13.1)
- \[BUGFIX] Fix race condition with Exemplar in Counter. [#​1146](https://github.com/prometheus/client_golang/issues/1146)
- \[BUGFIX] Fix `CumulativeCount` value of `+Inf` bucket created from exemplar. [#​1148](https://github.com/prometheus/client_golang/issues/1148)
- \[BUGFIX] Fix double-counting bug in `promhttp.InstrumentRoundTripperCounter`. [#​1118](https://github.com/prometheus/client_golang/issues/1118)
**Full Changelog**: https://github.com/prometheus/client_golang/compare/v1.13.0...v1.13.1
### [`v1.13.0`](https://github.com/prometheus/client_golang/releases/tag/v1.13.0): 1.13.0 / 2022-08-06
[Compare Source](https://github.com/prometheus/client_golang/compare/v1.12.2...v1.13.0)
- \[CHANGE] Minimum required Go version is now 1.17 (we also test client_golang against the new 1.19 version).
- \[ENHANCEMENT] Added `prometheus.TransactionalGatherer` interface for `promhttp.Handler` use which allows using low allocation update techniques for custom collectors. [#​989](https://github.com/prometheus/client_golang/issues/989)
- \[ENHANCEMENT] Added exemplar support to `prometheus.NewConstHistogram`. See [`ExampleNewConstHistogram_WithExemplar`](prometheus/examples_test.go#L602) example on how to use it. [#​986](https://github.com/prometheus/client_golang/issues/986)
- \[ENHANCEMENT] Query requests are now retried after network error. [#​1022](https://github.com/prometheus/client_golang/issues/1022)
- \[ENHANCEMENT] `prometheus/push.Pusher` now has context-aware methods that pass context to HTTP requests. [#​1028](https://github.com/prometheus/client_golang/issues/1028)
- \[ENHANCEMENT] `prometheus/push.Pusher` has now `Error` method that retrieve last error. [#​1075](https://github.com/prometheus/client_golang/issues/1075)
- \[ENHANCEMENT] `testutil.GatherAndCompare` provides now readable diff on failed comparisons. [#​998](https://github.com/prometheus/client_golang/issues/998)
- \[ENHANCEMENT] Query API now supports timeouts. [#​1014](https://github.com/prometheus/client_golang/issues/1014)
- \[ENHANCEMENT] New `MetricVec` method `DeletePartialMatch(labels Labels)` for deleting all metrics that match provided labels. [#​1013](https://github.com/prometheus/client_golang/issues/1013)
- \[ENHANCEMENT] `api.Config` now accepts passing custom `*http.Client`. [#​1025](https://github.com/prometheus/client_golang/issues/1025)
- \[BUGFIX] Raise exemplar labels limit from 64 to 128 bytes as specified in OpenMetrics spec. [#​1091](https://github.com/prometheus/client_golang/issues/1091)
- \[BUGFIX] Allow adding exemplar to +Inf bucket to const histograms. [#​1094](https://github.com/prometheus/client_golang/issues/1094)
- \[ENHANCEMENT] Most `promhttp.Instrument*` middlewares now support adding exemplars to metrics. This allows hooking those to your tracing middleware that retrieves trace ID and puts it in exemplar if present. [#​1055](https://github.com/prometheus/client_golang/issues/1055)
- \[ENHANCEMENT] Added `testutil.ScrapeAndCompare` method. [#​1043](https://github.com/prometheus/client_golang/issues/1043)
- \[BUGFIX] Fixed `GopherJS` build support. [#​897](https://github.com/prometheus/client_golang/issues/897)
- \[ENHANCEMENT] :warning: Added way to specify what `runtime/metrics` `collectors.NewGoCollector` should use. See [`ExampleGoCollector_WithAdvancedGoMetrics`](prometheus/collectors/go_collector_latest_test.go#L263). [#​1102](https://github.com/prometheus/client_golang/issues/1102)
#### New Contributors ❤️
- [@​alissa-tung](https://github.com/alissa-tung) made their first contribution in https://github.com/prometheus/client_golang/pull/1000
- [@​wperron](https://github.com/wperron) made their first contribution in https://github.com/prometheus/client_golang/pull/986
- [@​zhijian-pro](https://github.com/zhijian-pro) made their first contribution in https://github.com/prometheus/client_golang/pull/1005
- [@​dohnto](https://github.com/dohnto) made their first contribution in https://github.com/prometheus/client_golang/pull/1021
- [@​tatsuhiro-t](https://github.com/tatsuhiro-t) made their first contribution in https://github.com/prometheus/client_golang/pull/1028
- [@​sourikghosh](https://github.com/sourikghosh) made their first contribution in https://github.com/prometheus/client_golang/pull/998
- [@​josephwoodward](https://github.com/josephwoodward) made their first contribution in https://github.com/prometheus/client_golang/pull/1014
- [@​stone-z](https://github.com/stone-z) made their first contribution in https://github.com/prometheus/client_golang/pull/1013
- [@​yolossn](https://github.com/yolossn) made their first contribution in https://github.com/prometheus/client_golang/pull/1025
- [@​xrstf](https://github.com/xrstf) made their first contribution in https://github.com/prometheus/client_golang/pull/1039
- [@​dependabot](https://github.com/dependabot) made their first contribution in https://github.com/prometheus/client_golang/pull/1051
- [@​sazary](https://github.com/sazary) made their first contribution in https://github.com/prometheus/client_golang/pull/1056
- [@​oiooj](https://github.com/oiooj) made their first contribution in https://github.com/prometheus/client_golang/pull/1075
- [@​fredr](https://github.com/fredr) made their first contribution in https://github.com/prometheus/client_golang/pull/1095
- [@​inosato](https://github.com/inosato) made their first contribution in https://github.com/prometheus/client_golang/pull/1096
- [@​arun-shopify](https://github.com/arun-shopify) made their first contribution in https://github.com/prometheus/client_golang/pull/1094
- [@​paralin](https://github.com/paralin) made their first contribution in https://github.com/prometheus/client_golang/pull/897
<details close>
<summary>Commits</summary>
<br>
- go.mod: Set minimal support version of go to 1.15 by [@​mrueg](https://github.com/mrueg) in https://github.com/prometheus/client_golang/pull/980
- Enable CodeQL Analysis by [@​kakkoyun](https://github.com/kakkoyun) in https://github.com/prometheus/client_golang/pull/982
- Added Transactional Gatherer allowed cached solutions by [@​bwplotka](https://github.com/bwplotka) in https://github.com/prometheus/client_golang/pull/989
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in https://github.com/prometheus/client_golang/pull/992
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in https://github.com/prometheus/client_golang/pull/1003
- Fix deprecated `NewBuildInfoCollector` API by [@​alissa-tung](https://github.com/alissa-tung) in https://github.com/prometheus/client_golang/pull/1000
- Add exemplar support for const histogram by [@​wperron](https://github.com/wperron) in https://github.com/prometheus/client_golang/pull/986
- Fixed lint warning. by [@​bwplotka](https://github.com/bwplotka) in https://github.com/prometheus/client_golang/pull/1007
- .circleci: Add config to test against go1.18 by [@​kakkoyun](https://github.com/kakkoyun) in https://github.com/prometheus/client_golang/pull/1006
- When prefix is empty, no more dots should be written by [@​zhijian-pro](https://github.com/zhijian-pro) in https://github.com/prometheus/client_golang/pull/1005
- Add statebot config by [@​kakkoyun](https://github.com/kakkoyun) in https://github.com/prometheus/client_golang/pull/1001
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in https://github.com/prometheus/client_golang/pull/1009
- Remove workaround for pre go1.15 by [@​johejo](https://github.com/johejo) in https://github.com/prometheus/client_golang/pull/1010
- go.mod: Update dependencies by [@​mrueg](https://github.com/mrueg) in https://github.com/prometheus/client_golang/pull/1018
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in https://github.com/prometheus/client_golang/pull/1019
- Refactor apiClientImpl.DoGetFallback by [@​dohnto](https://github.com/dohnto) in https://github.com/prometheus/client_golang/pull/1021
- Added info about our slack channel. by [@​bwplotka](https://github.com/bwplotka) in https://github.com/prometheus/client_golang/pull/1029
- push: Add PushContext and AddContext to Pusher by [@​tatsuhiro-t](https://github.com/tatsuhiro-t) in https://github.com/prometheus/client_golang/pull/1028
- Make Query requests idempotent by [@​dohnto](https://github.com/dohnto) in https://github.com/prometheus/client_golang/pull/1022
- Bump minimum required Go version to 1.16 by [@​mrueg](https://github.com/mrueg) in https://github.com/prometheus/client_golang/pull/10327
- Update query API to support timeouts by [@​josephwoodward](https://github.com/josephwoodward) in https://github.com/prometheus/client_golang/pull/1014
- Implement deletion based on partially matching labels by [@​stone-z](https://github.com/stone-z) in https://github.com/prometheus/client_golang/pull/1013
- Document WithTimeout option for Query/QueryRange by [@​josephwoodward](https://github.com/josephwoodward) in https://github.com/prometheus/client_golang/pull/1037
- client: Allow configuration of http client by [@​yolossn](https://github.com/yolossn) in https://github.com/prometheus/client_golang/pull/1025
- update branch names in a few links by [@​xrstf](https://github.com/xrstf) in https://github.com/prometheus/client_golang/pull/1039
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in https://github.com/prometheus/client_golang/pull/1045
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in https://github.com/prometheus/client_golang/pull/1046
- prometheus: Fix convention violating names for generated collector metrics by [@​kakkoyun](https://github.com/kakkoyun) in https://github.com/prometheus/client_golang/pull/1048
- Remove -Inf buckets from go collector histograms by [@​kakkoyun](https://github.com/kakkoyun) in https://github.com/prometheus/client_golang/pull/1049
- Enable dependabot by [@​SuperQ](https://github.com/SuperQ) in https://github.com/prometheus/client_golang/pull/1050
- Bump github.com/prometheus/common from 0.33.0 to 0.34.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1051
- Cut v1.12.2 by [@​kakkoyun](https://github.com/kakkoyun) in https://github.com/prometheus/client_golang/pull/1052
- Update readme after v0.12.2 by [@​kakkoyun](https://github.com/kakkoyun) in https://github.com/prometheus/client_golang/pull/1053
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in https://github.com/prometheus/client_golang/pull/1061
- Update minimum supported Go version (1.17) by [@​SuperQ](https://github.com/SuperQ) in https://github.com/prometheus/client_golang/pull/1062
- Add GitHub settings by [@​SuperQ](https://github.com/SuperQ) in https://github.com/prometheus/client_golang/pull/1063
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in https://github.com/prometheus/client_golang/pull/1064
- Enable same linters as the Prometheus repo itself by [@​sazary](https://github.com/sazary) in https://github.com/prometheus/client_golang/pull/1056
- Synchronize common files from prometheus/prometheus by [@​prombot](https://github.com/prombot) in https://github.com/prometheus/client_golang/pull/1068
- Add Error API for pusher by [@​oiooj](https://github.com/oiooj) in https://github.com/prometheus/client_golang/pull/1075
- Bump github.com/prometheus/common from 0.34.0 to 0.35.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1076
- Merge release-1.12 branch back into main by [@​beorn7](https://github.com/beorn7) in https://github.com/prometheus/client_golang/pull/1079
- Fix version number in VERSION by [@​beorn7](https://github.com/beorn7) in https://github.com/prometheus/client_golang/pull/1080
- Merging release branch back to main again by [@​beorn7](https://github.com/beorn7) in https://github.com/prometheus/client_golang/pull/1081
- Raise exemplar labels limit from 64 to 128 by [@​bboreham](https://github.com/bboreham) in https://github.com/prometheus/client_golang/pull/1091
- Update documentation for exemplar label limit by [@​fredr](https://github.com/fredr) in https://github.com/prometheus/client_golang/pull/1095
- Bump github.com/prometheus/common from 0.35.0 to 0.37.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1098
- Bump google.golang.org/protobuf from 1.28.0 to 1.28.1 by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1099
- Remove ioutil by [@​inosato](https://github.com/inosato) in https://github.com/prometheus/client_golang/pull/1096
- Bump github.com/prometheus/procfs from 0.7.3 to 0.8.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/prometheus/client_golang/pull/1097
- explicitly add +inf bucket in withExemplarsMetric by [@​arun-shopify](https://github.com/arun-shopify) in https://github.com/prometheus/client_golang/pull/1094
- Ensure tests verify request params by [@​josephwoodward](https://github.com/josephwoodward) in https://github.com/prometheus/client_golang/pull/1047
- Fixed support for unordered input of exemplars. by [@​bwplotka](https://github.com/bwplotka) in https://github.com/prometheus/client_golang/pull/1100
- Added exemplar support to http middleware. by [@​bwplotka](https://github.com/bwplotka) in https://github.com/prometheus/client_golang/pull/1055
- fix assorted oddities found by golangci-lint by [@​xrstf](https://github.com/xrstf) in https://github.com/prometheus/client_golang/pull/1040
- Generate new Go runtime metrics for go 1.19 by [@​kakkoyun](https://github.com/kakkoyun) in https://github.com/prometheus/client_golang/pull/1105
- testutil: Add ScrapeAndCompare by [@​sazary](https://github.com/sazary) in https://github.com/prometheus/client_golang/pull/1043
- Fix build against GopherJS by [@​paralin](https://github.com/paralin) in https://github.com/prometheus/client_golang/pull/897
- collectors.GoCollector: Added rule support for granular metric configuration. by [@​bwplotka](https://github.com/bwplotka) in https://github.com/prometheus/client_golang/pull/1102
- Cut 1.13.0 by [@​bwplotka](https://github.com/bwplotka) in https://github.com/prometheus/client_golang/pull/1110
</details>
</details>
---
### Configuration
📅 **Schedule**: 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 MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzMi4xNTkuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE5NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->