fix(deps): update module github.com/twmb/franz-go/plugin/kprom to v1.5.0 (main) - #7384
Conversation
b634cd6 to
15cef37
Compare
|
🤖 fix-renovate-prs: opened a CI fix → #7491 |
15cef37 to
1d5cb9f
Compare
This comment has been minimized.
This comment has been minimized.
|
🤖 fix-renovate-prs |
|
Expand for findings |
|
Rebase requested. Renovate is processing this repository now. |
74b4f5d to
4d76d10
Compare
|
Rebase failed. Please check the logs or retry. |
|
🤖 fix-renovate-prs |
| datasource | package | from | to | | ---------- | ------------------------------------- | ------ | ------ | | go | github.com/twmb/franz-go/plugin/kprom | v1.2.1 | v1.5.0 | Signed-off-by: renovate-sh-app[bot] <219655108+renovate-sh-app[bot]@users.noreply.github.com>
4d76d10 to
348f1cc
Compare
|
🤖 fix-renovate-prs |
This PR contains the following updates:
v1.2.1→v1.5.0Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
twmb/franz-go (github.com/twmb/franz-go/plugin/kprom)
v1.5.0Compare Source
===
This release adds a few new APIs, has a few small behavior changes, and has one
"breaking" change.
Breaking changes
The
kerberospackage is now a dedicated separate module. Rather thanrequiring a major version bump, since this fix is entirely at the module level
for an almost entirely unused package, I figured it is okayish to technically
break compatibility for the few usages of this package, when the fix can be
done entirely when
go geting.The gokrb5 library, basically the only
library in the Go ecosystem that implements Kerberos, has a slightly broken
license. Organizations that
are sensitive to this were required to not use franz-go even if they did not
use Kerberos because franz-go pulls in a dependency on gokrb5.
Now, with
kerberosbeing a distinct and separate module, depending onfranz-go only will not cause an indirect dependency on gokrb5.
If your upgrade is broken by this change, run:
Behavior changes
UnknownTopicRetriesnow allows -1 to signal disabling the option (meaningunlimited retries, rather than no retries). This follows the convention of
other options where -1 disables limits.
Improvements
Waiting for unknown topics while producing now takes into account both the
produce context and aborting. Previously, the record context was only taken
into account after a topic was loaded. The same is true for aborting buffered
records: previously, abort would hang until a topic was loaded.
New APIs are added to kmsg to deprecate the previous
Intofunctions. TheIntofunctions still exist and will not be removed until kadm is stabilized(see #141).
Features
ConsumeResetOffsetis now clearer, you can now useNoResetOffsetwithstart or end or exact offsets, and there is now the very useful
Offset.AfterMillifunction. Previously,NoResetOffsetonly allowed startingconsuming at the start and it was not obvious why. We keep the previous
default-to-start behavior, but we now allow modifying it. As well,
AfterMillican be used to largely replace
AtEnd. Odds are, you want to consume allrecords after your program starts even if new partitions are added to a
topic. Previously, if you added a partition to a topic,
AtEndwould missrecords that were produced until the client refreshed metadata and discovered
the partition. Because of this, you were safer using
AtStart, but thisunnecessarily forced you to consume everything on program start.
Custom group balancers can now return errors, you can now intercept commits
to attach metadata, and you can now intercept offset fetches to read
metadata. Previously, none of this was possible. I considered metadata a bit
of a niche feature, but accessing it (as well as returning errors when
balancing) is required if you want to implement streams. New APIs now exist to
support the more advanced behavior:
PreCommitFnContext,OnOffsetsFetched,and
GroupMemberBalancerOrError. As well,BalancePlan.AsMemberIDMapnowexists to provide access to a plan's underlying plan map. This did not exist
previously because I wanted to keep the type opaque for potential future
changes, but the odds of this are low and we can attempt forward compatibility
when the time arises.
RecordReadernow supports regular expressions for text values.Relevant commits
a2cbbf8go.{mod,sum}: go get -u ./...; go mod tidyce7a84fkerberos: split into dedicated module, p1e8e5c82and744a60ekgo: improve ConsumeResetOffset, NoResetOffset, add Offset.AfterMilli78fff0fande8e5117andb457742: add GroupMemberBalancerOrErrorb5256c7kadm: fix long standing poor API (Into fns)8148c55BalancePlan: add AsMemberIDMap113a2c0add OnOffsetsFetched function to allow inspecting commit metadata0a4f2ecandcba9e26kgo: add PreCommitFnContext, enabling pre-commit interceptors for metadata42e5b57producer: allow a canceled context & aborting to quit unknown wait96d647aUnknownTopicRetries: allow -1 to disable the option001c6d3RecordReader: support regular expressions for text valuesv1.4.0Compare Source
===
This release adds a lot of new features and changes a few internal behaviors.
The new features have been tested, but it is possible that a bug slipped by—if
you see one, please open an issue and the bug can be fixed promptly.
Behavior changes
Promises are now serialized. Previously, promises were called at the end
of handling produce requests. As well, errors that caused records to fail
independent of producing could fail whenever. Now, all promises are called in
one loop. Benchmarking showed that concurrent promises did not really help,
even in cases where the promises could be concurrent. As well, my guess is that
most people serialize promises, resulting in more complicated logic punted to
the users. Now with serializing promises, user code can be simpler.
The default
MetadataMinAgehas been lowered from 5s to 2.5s. Metadatarefreshes internally on retryable errors, 2.5s helps fail records for
non-existing topics quicker. Related, for sharded requests, we now cache topic
& partition metadata for the
MetadataMinAge. This mostly benefitsListOffsets, where usually a person may list both the start and end back toback. We cannot cache indefinitely because a user may add partitions outside
this client, but 2.5s is still helpful especially for how infrequently sharded
requests are issued.
Group leaders now track topics that the leader is not interested in
consuming. Previously, if leader A consumed only topic foo and member B only
bar, then leader A would not notice if partitions were added to bar. Now, the
leader tracks bar. This behavior change only affects groups where the members
consume non-overlapping topics.
Group joins & leaves now include a reason, as per KIP-800. This will be
useful when Kafka 3.2 is released.
Transactions no longer log
CONCURRENT_TRANSACTIONSerrors at the infolevel. This was a noisy log that meant nothing and was non-actionable. We
still track this at the debug level.
Features
A few new APIs and options have been added. These will be described shortly
here, and the commits are linked below.
ConcurrentTransactionsBackoff: a new option that allows configuring thebackoff when starting a transaction runs into the
CONCURRENT_TRANSACTIONSerror. Changing the backoff can decrease latency if Kafka is fast, but can
increase load on the cluster.
MaxProduceRequestsInflightPerBroker: a new option that allows changing themax inflight produce requests per broker if you disable idempotency.
Idempotency has an upper bound of 5 requests; by default, disabling idempotency
sets the max inflight to 1.
UnknownTopicRetries: a new option that sets how many times a metadata loadfor a topic can return
UNKNOWN_TOPIC_OR_PARTITIONbefore all recordsbuffered for the topic are failed. As well, we now use this option more widely:
if a topic is loaded successfully and then later repeatedly experiences these
errors, records will be failed. Previously, this limit was internal and was
only applied before the topic was loaded successfully once.
NoResetOffset: a new special offset that can be used withConsumeResetOffsetto trigger the client to enter a fatal state ifOffsetOutOfRangeis encountered.Client.PurgeTopicsFromClient: a new API that allows for completely removinga topic from the client. This can help if you regex consume and delete a topic,
or if you produce to random topics and then stop producing to some of them.
Client.AddConsumeTopics: a new API that enables you to consume from topicsthat you did not initially configure. This enables you to add more topics to
consume from without restarting the client; this works both both direct
consumers and group consumers.
Client.TryProduce: a new API that is a truly non-blocking produce. If theclient has the maximum amount of records buffered, this function will
immediately fail a new promise with
ErrMaxBuffered.Client.ForceMetadataRefresh: a new API that allows you to manually triggera metadata refresh. This can be useful if you added partitions to a topic and
want to trigger a metadata refresh to load those partitions sooner than the
default
MetadataMaxAgerefresh interval.Client.EndAndBeginTransaction: a new API that can be used to have higherthroughput when producing transactionally. This API requires care; if you use
it, read the documentation for what it provides and any downsides.
BlockRebalancesOnPollandClient.AllowRebalance: a new option andcorresponding required API that allows for easier reasoning about when
rebalances can happen. This option can be greatly beneficial to users for
simplifying code, but has a risk around taking so long that your group member
is booted from the group. Two examples were added using these options.
kversion.V3_1_0: the kversion package now officially detects v3.1 and hasan API for it.
Relevant commits
c3fc8e0: add two more goroutine per consumer examples (thanks @JacobSMoller)cffbee7consumer: add BlockRebalancesOnPoll option, AllowRebalance (commit accidentally pluralized)39af436docs: add metrics-and-logging.md83dfa9dclient: add EndAndBeginTransactiond11066fcommitting: internally retry on some errors when cooperative31f3f5fproducer: serialize promisese3ef142txn: move concurrent transactions log to debug level10ee8ddgroup consuming: add reasons to JoinGroup, LeaveGroup per KIP-8000bfaf64consumer group: track topics that the leader is not interested ine8495bbclient: add ForceMetadataRefreshc763c9bconsuming: add NoResetOffset4e0e1d7config: add UnknownTopicRetries option, use more widely7f58a97config: lower default MetadataMinAge to 2.5se7bd28fClient,GroupTransactSession: add TryProduce2a2cf66consumer: add AddConsumeTopicsd178e26client: add PurgeTopicsFromClient336d2c9kgo: add ConcurrentTransactionsBackoff, MaxProduceRequestsInflightPerBrokerfb04711kversion: cut v3.1v1.3.0Compare Source
===
This release contains three new features, a few behavior changes, and one minor
bugfix.
For features, you can now adjust fetched offsets before they are used (thanks
@michaelwilner!), you can now "ping" your cluster to see if the client can
connect at all, and you can now use
SetOffsetswhen consuming partitionsmanually. As a somewhat of a feature-ish, producing no longer requires a
context, instead if a context is nil,
context.Backgroundis used (this wasadded to allow more laziness when writing small unimportant files).
The transactional behavior change is important: the documentation changes are
worth reading, and it is worth using a 2.5+ cluster along with the
RequireStableFetchOffsetsoption if possible. The metadata leader epochrewinding behavior change allows the client to continue in the event of odd
cluster issues.
In kadm, we now return individual per-partition errors if partitions are not
included in OffsetCommit responses. The generated code now has a few more enums
(thanks @weeco!)
Lastly, as a small bugfix,
client.Close()did not properly stop seed brokers.A previous commit split seed brokers and non-seed brokers internally into two
fields but did not add broker shutdown on the now-split seed broker field.
e0b520cbehavior change kadm: set per-partition errors on missing offsets in CommitOffsets32425dffeature client: add Ping methoda059901behavior change txns: sleep 200ms on commit, preventing rebalance / new commit12eaa1ebehavior change metadata: allow leader epoch rewinds after 5 tries029e655feature-ish Produce{,Sync}: default to context.Background if no ctx is providedeb2cec3bugfix client: stop seed brokers on client.Close2eae20dfeature consumer: allow SetOffsets for direct partition consumingConfiguration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
Need help?
You can ask for more help in the following Slack channel: #proj-renovate-self-hosted. In that channel you can also find ADR and FAQ docs in the Resources section.