This release adds support for Kafka 3.7, adds a few community requested APIs,
some internal improvements, and fixes two bugs. One of the bugfixes is for a
deadlock; it is recommended to bump to this release to ensure you do not run
into the deadlock. The features in this release are relatively small.
This adds protocol support for KIP-890 and KIP-994, and
adds further protocol support for [KIP-848][KIP-848]. If you are using
transactions, you may see a new kerr.TransactionAbortable error, which
signals that your ongoing transaction should be aborted and will not be
successful if you try to commit it.
Lastly, there have been a few improvements to pkg/sr that are not mentioned
in these changelog notes.
Bug fixes
If you canceled the context used while producing while your client was
at the maximum buffered records or bytes, it was possible to experience
deadlocks. This has been fixed. See #832 for more details.
Previously, if using GetConsumeTopics while regex consuming, the function
would return all topics ever discovered. It now returns only the topics that
are being consumed.
Improvements
The client now internaly ignores OutOfOrderSequenceNumber errors that are
encountered when consuming if possible. If a producer produces very infrequently,
it is possible the broker forgets the producer by the next time the producer
produces. In this case, the producer receives an OutOfOrderSequenceNumber error.
The client now internally resets properly so that you do not see the error.
Features
AllowRebalance and CloseAllowingRebalance have been added to GroupTransactSession.
The FetchTopic type now has includes the topic's TopicID.
The ErrGroupSession internal error field is now public, allowing you to test how you handle the internal error.
You may now receive a kerr.TransactionAbortable error from many functions while using transactions.
Relevant commits
0fd1959d kgo: support Kafka 3.8's kip-890 modifications
68163c55bugfix kgo: do not add all topics to internal tps map when regex consuming
3548d1f7improvement kgo: ignore OOOSN where possible
... (truncated)
Commits
0a9996b Merge pull request #841 from twmb/1.18-changelog
This release contains a few new APIs, one behavior change, and one minor bugfix.
Bug fixes
Previously, HookBrokerRead and HookBrokerE2E could not be used at the same
time. This has been fixed.
Behavior changes
PauseFetch{Topics,Partitions} now causes the client to drop all buffered
fetches and kill all in-flight fetch requests. Importantly, this also means
that once you pause, it is no longer possible for what you paused to be
returned while polling. Previously, the client made no attempt to clear
internal buffers / in flight requests, meaning you could receive paused data
for a while.
Seed brokers now show up in logs as seed_### rather than seed ### (an
underscore has been added).
Features
kgo.Offset now has an EpochOffset getter function that allows access
to the actual epoch and offset that are inside the opaque Offset type.
AddConsumePartitions allows adding individual partitions to consume, and
the new counterpart RemoveConsumePartitions allows removing individual
partitions from being consumed. Removing is different from purging, please
see the docs.
KeepRetryableFetchErrors bubbles up retryable errors to the end user that
are encountered while fetching. By default, these errors are stripped.
kversion now supports Kafka 3.5
kversion now supports version guessing against KRaft by default
kgo.DialTLS now exists to even more easily opt into TLS.
kgo.Client.Opts now exists to return the original options that were used
to configure the client, making initializing new clients easier.
kgo.NodeName returns a string form of a broker node name. Internally, seed
brokers use math.MinInt32 for node IDs, which shows up as massively negative
numbers in logs sometimes. NodeName can help convert that to seed_<#>.
Relevant commits
c3b083bimprovement kgo: do not returned paused topics/partitions after pausing
e224e90bugfix kgo: allow HookBrokerRead and HookBrokerE2E to both be called
875761afeature kgo Offset: add EpochOffset getter field
c5d0fc5 kgo: add a debug log for stripping retryable errors from fetches
b45d663 kgo: add more context to opportunistic metadata loads while fetching
This release contains one important bugfix (sequence number int32 overflow) for
long-lived producers, one minor bugfix that allows this client to work on 32
bit systems, and a few other small improvements.
This project now has integration tests ran on every PR (and it is now forbidden
to push directly to master). These integration tests run against Kraft (Kafka +
Raft), which itself seems to not be 100% polished. A good amount of
investigation went into hardening the client internals to not fail when Kraft
is going sideways.
This release also improves behavior when a consumer group leader using an
instance ID restarts and changes the topics it wants to consume from. See the
KIP-814 commit for more details.
It is now easier to setup a TLS dialer with a custom dial timeout, it is easier
to detect if requests are failing due to missing SASL, and it is now possible
to print attributes with RecordFormatter.
Lastly, the corresponding kadm v1.3.0 release adds new LeaveGroup admin APIs.
The Severitier and SeverityVar types are added to go.opentelemetry.io/contrib/processors/minsev allowing dynamic configuration of the severity used by the LogProcessor. (#6116)
Move examples from go.opentelemetry.io/otel to this repository under examples directory. (#6158)
Support yaml/json struct tags for generated code in go.opentelemetry.io/contrib/config. (#5433)
Add support for parsing YAML configuration via ParseYAML in go.opentelemetry.io/contrib/config. (#5433)
Add support for temporality preference configuration in go.opentelemetry.io/contrib/config. (#5860)
Changed
The function signature of NewLogProcessor in go.opentelemetry.io/contrib/processors/minsev has changed to accept the added Severitier interface instead of a log.Severity. (#6116)
Updated go.opentelemetry.io/contrib/config to use the v0.3.0 release of schema which includes backwards incompatible changes. (#6126)
NewSDK in go.opentelemetry.io/contrib/config now returns a no-op SDK if disabled is set to true. (#6185)
The deprecated go.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelecho package has found a Code Owner. The package is no longer deprecated. (#6207)
Fixed
Possible nil dereference panic in go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace. (#5965)
logrus.Level transformed to appropriate log.Severity in go.opentelemetry.io/contrib/bridges/otellogrus. (#6191)
Removed
The Minimum field of the LogProcessor in go.opentelemetry.io/contrib/processors/minsev is removed.
Use NewLogProcessor to configure this setting. (#6116)
The deprecated go.opentelemetry.io/contrib/instrumentation/gopkg.in/macaron.v1/otelmacaron package is removed. (#6186)
The deprecated go.opentelemetry.io/contrib/samplers/aws/xray package is removed. (#6187)
The Severitier and SeverityVar types are added to go.opentelemetry.io/contrib/processors/minsev allowing dynamic configuration of the severity used by the LogProcessor. (#6116)
Move examples from go.opentelemetry.io/otel to this repository under examples directory. (#6158)
Support yaml/json struct tags for generated code in go.opentelemetry.io/contrib/config. (#5433)
Add support for parsing YAML configuration via ParseYAML in go.opentelemetry.io/contrib/config. (#5433)
Add support for temporality preference configuration in go.opentelemetry.io/contrib/config. (#5860)
Changed
The function signature of NewLogProcessor in go.opentelemetry.io/contrib/processors/minsev has changed to accept the added Severitier interface instead of a log.Severity. (#6116)
Updated go.opentelemetry.io/contrib/config to use the v0.3.0 release of schema which includes backwards incompatible changes. (#6126)
NewSDK in go.opentelemetry.io/contrib/config now returns a no-op SDK if disabled is set to true. (#6185)
The deprecated go.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelecho package has found a Code Owner.
The package is no longer deprecated. (#6207)
Fixed
Possible nil dereference panic in go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace. (#5965)
logrus.Level transformed to appropriate log.Severity in go.opentelemetry.io/contrib/bridges/otellogrus. (#6191)
Removed
The Minimum field of the LogProcessor in go.opentelemetry.io/contrib/processors/minsev is removed.
Use NewLogProcessor to configure this setting. (#6116)
The deprecated go.opentelemetry.io/contrib/instrumentation/gopkg.in/macaron.v1/otelmacaron package is removed. (#6186)
The deprecated go.opentelemetry.io/contrib/samplers/aws/xray package is removed. (#6187)
The Severitier and SeverityVar types are added to go.opentelemetry.io/contrib/processors/minsev allowing dynamic configuration of the severity used by the LogProcessor. (#6116)
Move examples from go.opentelemetry.io/otel to this repository under examples directory. (#6158)
Support yaml/json struct tags for generated code in go.opentelemetry.io/contrib/config. (#5433)
Add support for parsing YAML configuration via ParseYAML in go.opentelemetry.io/contrib/config. (#5433)
Add support for temporality preference configuration in go.opentelemetry.io/contrib/config. (#5860)
Changed
The function signature of NewLogProcessor in go.opentelemetry.io/contrib/processors/minsev has changed to accept the added Severitier interface instead of a log.Severity. (#6116)
Updated go.opentelemetry.io/contrib/config to use the v0.3.0 release of schema which includes backwards incompatible changes. (#6126)
NewSDK in go.opentelemetry.io/contrib/config now returns a no-op SDK if disabled is set to true. (#6185)
The deprecated go.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelecho package has found a Code Owner. The package is no longer deprecated. (#6207)
Fixed
Possible nil dereference panic in go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace. (#5965)
logrus.Level transformed to appropriate log.Severity in go.opentelemetry.io/contrib/bridges/otellogrus. (#6191)
Removed
The Minimum field of the LogProcessor in go.opentelemetry.io/contrib/processors/minsev is removed.
Use NewLogProcessor to configure this setting. (#6116)
The deprecated go.opentelemetry.io/contrib/instrumentation/gopkg.in/macaron.v1/otelmacaron package is removed. (#6186)
The deprecated go.opentelemetry.io/contrib/samplers/aws/xray package is removed. (#6187)
The Severitier and SeverityVar types are added to go.opentelemetry.io/contrib/processors/minsev allowing dynamic configuration of the severity used by the LogProcessor. (#6116)
Move examples from go.opentelemetry.io/otel to this repository under examples directory. (#6158)
Support yaml/json struct tags for generated code in go.opentelemetry.io/contrib/config. (#5433)
Add support for parsing YAML configuration via ParseYAML in go.opentelemetry.io/contrib/config. (#5433)
Add support for temporality preference configuration in go.opentelemetry.io/contrib/config. (#5860)
Changed
The function signature of NewLogProcessor in go.opentelemetry.io/contrib/processors/minsev has changed to accept the added Severitier interface instead of a log.Severity. (#6116)
Updated go.opentelemetry.io/contrib/config to use the v0.3.0 release of schema which includes backwards incompatible changes. (#6126)
NewSDK in go.opentelemetry.io/contrib/config now returns a no-op SDK if disabled is set to true. (#6185)
The deprecated go.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelecho package has found a Code Owner.
The package is no longer deprecated. (#6207)
Fixed
Possible nil dereference panic in go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace. (#5965)
logrus.Level transformed to appropriate log.Severity in go.opentelemetry.io/contrib/bridges/otellogrus. (#6191)
Removed
The Minimum field of the LogProcessor in go.opentelemetry.io/contrib/processors/minsev is removed.
Use NewLogProcessor to configure this setting. (#6116)
The deprecated go.opentelemetry.io/contrib/instrumentation/gopkg.in/macaron.v1/otelmacaron package is removed. (#6186)
The deprecated go.opentelemetry.io/contrib/samplers/aws/xray package is removed. (#6187)
Add go.opentelemetry.io/otel/sdk/metric/exemplar package which includes Exemplar, Filter, TraceBasedFilter, AlwaysOnFilter, HistogramReservoir, FixedSizeReservoir, Reservoir, Value and ValueType types. These will be used for configuring the exemplar reservoir for the metrics sdk. (#5747, #5862)
Add WithExportBufferSize option to log batch processor.(#5877)
Changed
Enable exemplars by default in go.opentelemetry.io/otel/sdk/metric. Exemplars can be disabled by setting OTEL_METRICS_EXEMPLAR_FILTER=always_off (#5778)
Logger.Enabled in go.opentelemetry.io/otel/log now accepts a newly introduced EnabledParameters type instead of Record. (#5791)
FilterProcessor.Enabled in go.opentelemetry.io/otel/sdk/log/internal/x now accepts EnabledParameters instead of Record. (#5791)
The Record type in go.opentelemetry.io/otel/log is no longer comparable. (#5847)
Performance improvements for the trace SDK SetAttributes method in Span. (#5864)
Reduce memory allocations for the Event and Link lists in Span. (#5858)
Performance improvements for the trace SDK AddEvent, AddLink, RecordError and End methods in Span. (#5874)
Deprecated
Deprecate all examples under go.opentelemetry.io/otel/example as they are moved to Contrib repository. (#5854)
Fixed
The race condition for multiple FixedSize exemplar reservoirs identified in #5814 is resolved. (#5819)
Fix log records duplication in case of heterogeneous resource attributes by correctly mapping each log record to it's resource and scope. (#5803)
Fix timer channel drain to avoid hanging on Go 1.23. (#5868)
Fix delegation for global meter providers, and panic when calling otel.SetMeterProvider. (#5827)
Change the reflect.TypeOf to use a nil pointer to not allocate on the heap unless necessary. (#5827)
Add go.opentelemetry.io/otel/sdk/metric/exemplar package which includes Exemplar, Filter, TraceBasedFilter, AlwaysOnFilter, HistogramReservoir, FixedSizeReservoir, Reservoir, Value and ValueType types. These will be used for configuring the exemplar reservoir for the metrics sdk. (#5747, #5862)
Add WithExportBufferSize option to log batch processor.(#5877)
Changed
Enable exemplars by default in go.opentelemetry.io/otel/sdk/metric. Exemplars can be disabled by setting OTEL_METRICS_EXEMPLAR_FILTER=always_off (#5778)
Logger.Enabled in go.opentelemetry.io/otel/log now accepts a newly introduced EnabledParameters type instead of Record. (#5791)
FilterProcessor.Enabled in go.opentelemetry.io/otel/sdk/log/internal/x now accepts EnabledParameters instead of Record. (#5791)
The Record type in go.opentelemetry.io/otel/log is no longer comparable. (#5847)
Performance improvements for the trace SDK SetAttributes method in Span. (#5864)
Reduce memory allocations for the Event and Link lists in Span. (#5858)
Performance improvements for the trace SDK AddEvent, AddLink, RecordError and End methods in Span. (#5874)
Deprecated
Deprecate all examples under go.opentelemetry.io/otel/example as they are moved to Contrib repository. (#5854)
Fixed
The race condition for multiple FixedSize exemplar reservoirs identified in #5814 is resolved. (#5819)
Fix log records duplication in case of heterogeneous resource attributes by correctly mapping each log record to it's resource and scope. (#5803)
Fix timer channel drain to avoid hanging on Go 1.23. (#5868)
Fix delegation for global meter providers, and panic when calling otel.SetMeterProvider. (#5827)
Change the reflect.TypeOf to use a nil pointer to not allocate on the heap unless necessary. (#5827)
Bumps the go-packages group with 6 updates in the / directory:
1.17.1
1.18.0
1.13.0
1.14.0
0.55.0
0.56.0
0.55.0
0.56.0
1.30.0
1.31.0
1.30.0
1.31.0
Updates
github.com/twmb/franz-go
from 1.17.1 to 1.18.0Changelog
Sourced from github.com/twmb/franz-go's changelog.
... (truncated)
Commits
0a9996b
Merge pull request #841 from twmb/1.18-changelog835c682
CHANGELOG: note incoming released771ddf
Merge pull request #838 from twmb/81004356d7
Merge pull request #835 from twmb/8193d71b14
Merge pull request #834 from twmb/805019799a
Merge pull request #829 from andrewstucki/sr-client-opts3a0f09a
Merge pull request #814 from noamcohen97/new-offset-helper6028e72
Merge pull request #794 from twmb/790581d7ef
Merge pull request #789 from sbuliarca/errgroupsession-export-errfd084a5
Merge pull request #760 from twmb/753Updates
github.com/twmb/franz-go/pkg/kadm
from 1.13.0 to 1.14.0Changelog
Sourced from github.com/twmb/franz-go/pkg/kadm's changelog.
... (truncated)
Commits
f132eaa
Merge pull request #504 from twmb/bump_kmsgfa4e091
franz-go: bump kmsg to v1.6.17182514
Merge pull request #503 from twmb/kmsg_noretract23c38ff
plugin/klogrus: use fmt.Sprint7ea9b09
pkg/kmsg: avoid retract v2 directive063ab3e
Merge pull request #502 from twmb/v1.14-changelogcd58477
CHANGELOG: note incoming v1.14118e822
Merge pull request #470 from JGShaw/master6fb7260
Merge pull request #498 from twmb/ftbc4b0e4
Merge pull request #496 from twmb/kadm_listUpdates
github.com/twmb/franz-go/pkg/kmsg
from 1.8.0 to 1.9.0Changelog
Sourced from github.com/twmb/franz-go/pkg/kmsg's changelog.
Commits
24d0cfe
Merge pull request #231 from twmb/v1.9b0bc0b6
CHANGELOG: note incoming v1.9, incoming kadma4a2aaf
Merge pull request #230 from twmb/kadmd3ee144
kadm: add LeaveGroup api2ee43e3
kadm: update CalculateGroupLag documentation00209b4
kgo: add addr to sasl logsa7f5d0d
Merge pull request #229 from twmb/instance_idf8038de
kgo: consistently use \d.\d rather than \d.\d.0 for kafka versionsb18341d
kgo: work around KIP-814 limitations6cac810
kversions: bump Stable from 3.0 to 3.3Updates
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc
from 0.55.0 to 0.56.0Release notes
Sourced from go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc's releases.
... (truncated)
Changelog
Sourced from go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc's changelog.
Commits
9cf5701
Release v1.31.0/v0.56.0/v0.25.0/v0.11.0/v0.6.0/v0.4.0/v0.3.0 (#6243)d6305c0
chore(deps): update module github.com/klauspost/compress to v1.17.11 (#6232)09cbf41
fix(deps): update module github.com/aws/aws-sdk-go-v2/service/s3 to v1.65.3 (...c3c8538
Update otel core to the latest release (#6233)79bb705
otelecho: Add Code Owner and remove deprecation (#6207)45ba204
config: support v0.3 of the config schema (#6126)20e45af
Revert "chore(deps): update lycheeverse/lychee-action action to v2" (#6229)5322670
Remove otelmacaron (#6186)87d0229
feat(instrumentation/http/otelhttp): move client metrics creation into intern...900fc4b
Run the test compatibility check even if tests failed (#6224)Updates
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp
from 0.55.0 to 0.56.0Release notes
Sourced from go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp's releases.
... (truncated)
Changelog
Sourced from go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp's changelog.
Commits
9cf5701
Release v1.31.0/v0.56.0/v0.25.0/v0.11.0/v0.6.0/v0.4.0/v0.3.0 (#6243)d6305c0
chore(deps): update module github.com/klauspost/compress to v1.17.11 (#6232)09cbf41
fix(deps): update module github.com/aws/aws-sdk-go-v2/service/s3 to v1.65.3 (...c3c8538
Update otel core to the latest release (#6233)79bb705
otelecho: Add Code Owner and remove deprecation (#6207)45ba204
config: support v0.3 of the config schema (#6126)20e45af
Revert "chore(deps): update lycheeverse/lychee-action action to v2" (#6229)5322670
Remove otelmacaron (#6186)87d0229
feat(instrumentation/http/otelhttp): move client metrics creation into intern...900fc4b
Run the test compatibility check even if tests failed (#6224)Updates
go.opentelemetry.io/otel
from 1.30.0 to 1.31.0Changelog
Sourced from go.opentelemetry.io/otel's changelog.
Commits
bc2fe88
Release v1.31.0/v0.53.0/v0.7.0/v0.0.10 (#5883)a7d5c1a
Add an option to configure the exporter buffer of the BatchProcessor (#5877)eb9279b
fix(deps): update golang.org/x/exp digest to f66d83c (#5880)6441653
Performance improvements for the trace SDK inSpan
. (#5874)8e9baf2
chore(deps): update lycheeverse/lychee-action action to v2 (#5878)8fbaa97
ReducenewEvictedQueueLink
andnewEvictedQueueEvent
memory allocations (#...4a911f9
chore(deps): update googleapis to 5fefd90 (#5876)98cbdcb
fix(deps): update module google.golang.org/protobuf to v1.35.1 (#5875)3cbd967
Performance improvements forrecordingSpan
SetAttributes
and `addOverCapA...9e791a6
fix(deps): update golang.org/x (#5872)Updates
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp
from 1.30.0 to 1.31.0Changelog
Sourced from go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp's changelog.
Commits
bc2fe88
Release v1.31.0/v0.53.0/v0.7.0/v0.0.10 (#5883)a7d5c1a
Add an option to configure the exporter buffer of the BatchProcessor (#5877)eb9279b
fix(deps): update golang.org/x/exp digest to f66d83c (#5880)6441653
Performance improvements for the trace SDK inSpan
. (#5874)8e9baf2
chore(deps): update lycheeverse/lychee-action action to v2 (#5878)8fbaa97
ReducenewEvictedQueueLink
andnewEvictedQueueEvent
memory allocations (#...