8000 refactor(inkless:consume): drop four never-recorded fetch metrics by jeqo · Pull Request #787 · aiven/inkless · GitHub
[go: up one dir, main page]

Skip to content

refactor(inkless:consume): drop four never-recorded fetch metrics - #787

Merged
giuseppelillo merged 2 commits into
mainfrom
jeqo/fetch-metrics-cleanup
Sep 9, 2026
Merged

giuseppelillo merged 2 commits into
mainfrom
jeqo/fetch-metrics-cleanup

Conversation

@jeqo
@jeqo jeqo commented Sep 7, 2026
Copy link
Copy Markdown
Contributor

CacheQueryTime, CacheStoreTime, CacheHitCount and CacheMissCount are registered on the consumer fetch group and documented in metrics.rst, but nothing records them: cacheQueryFinished, cacheStoreFinished and cacheHit(boolean) have no callers anywhere in the tree. An operator graphing any of the four sees an empty series with no way to tell that from a quiet broker.

Remove the constants, templates, registrations, recording methods and removeMetric calls together, so the class and the generated reference agree again.

Operator impact

Four documented metric names disappear. They never carried a sample, so no dashboard loses data - but one referencing them moves from an empty series to a missing metric, which some tools surface differently.

Cache hit and miss stay observable elsewhere: CaffeineCacheMetrics publishes Caffeine's own hitCount and missCount, and the byte split is CacheHitBytesPerSec against StorageBytesInPerSec. CacheQueryTime and CacheStoreTime have no equivalent, and gain none here - they simply never worked.

Commits

  • drop four never-recorded fetch metrics - the removal, plus the regenerated metrics.rst.
  • tidy metrics javadoc and gauge lambda - two cosmetic fixes in the same class, split out so they do not sit in a commit that changes what the broker publishes.

jeqo added 2 commits September 7, 2026 11:27
CacheQueryTime, CacheStoreTime, CacheHitCount and CacheMissCount were
registered on the consumer fetch group and documented in metrics.rst, but
nothing ever recorded them: cacheQueryFinished, cacheStoreFinished and
cacheHit(boolean) had no callers anywhere in the tree. An operator graphing any
of the four saw an empty series and no way to tell that from a quiet broker.

Remove the constants, the templates, the registrations, the recording methods
and the removeMetric calls together, so the class and the generated reference
agree, and regenerate metrics.rst.

Cache hit and miss stay observable: CaffeineCacheMetrics publishes Caffeine's
own hitCount and missCount, and the byte split is CacheHitBytesPerSec against
StorageBytesInPerSec. CacheQueryTime and CacheStoreTime have no equivalent, but
they never carried a sample, so nothing is lost that ever worked. Note the names
did appear in the reference, so a dashboard referencing them will now show a
missing metric rather than an empty one.
Two cosmetic fixes in InklessFetchMetrics, split out so they do not sit in a
commit that changes behavior: the recordLaggingConsumerRejection javadoc had
paragraphs the renderer ran together for want of a <p>, and the CacheSize gauge
took a lambda where a method reference reads the same.
Copilot AI left a comment
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The removed metrics have no call sites in the codebase and the documentation update matches the updated metric template list, so the change should not break compilation or runtime behavior.

Pull request overview

This PR removes four consumer fetch metrics (CacheQueryTime, CacheStoreTime, C 8000 acheHitCount, CacheMissCount) that were registered and documented but never actually recorded anywhere, aligning the runtime metrics set with the generated docs/inkless/metrics.rst.

Changes:

  • Remove the unused cache timing / hit-miss metric constants, templates, registrations, recording methods, and removeMetric calls from InklessFetchMetrics.
  • Regenerate docs/inkless/metrics.rst to drop the four metric rows.
  • Minor cleanup in InklessFetchMetrics (use cache::size for the cache size gauge; improve Javadoc paragraph formatting).
File summaries
File Description
storage/inkless/src/main/java/io/aiven/inkless/consume/InklessFetchMetrics.java Removes never-recorded metric definitions/recorders and tightens up the cache-size gauge/Javadoc so published metrics match behavior.
docs/inkless/metrics.rst Removes the four metric entries so operator docs reflect what brokers can actually emit.
Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@jeqo
jeqo marked this pull request as ready for review September 8, 2026 12:11
@giuseppelillo
giuseppelillo merged commit 095cf08 into main Sep 9, 2026
11 checks passed
@giuseppelillo
giuseppelillo deleted the jeqo/fetch-metrics-cleanup branch September 9, 2026 09:43
jeqo added a commit that referenced this pull request Sep 9, 2026
* refactor(inkless:consume): drop four never-recorded fetch metrics

CacheQueryTime, CacheStoreTime, CacheHitCount and CacheMissCount were
registered on the consumer fetch group and documented in metrics.rst, but
nothing ever recorded them: cacheQueryFinished, cacheStoreFinished and
cacheHit(boolean) had no callers anywhere in the tree. An operator graphing any
of the four saw an empty series and no way to tell that from a quiet broker.

Remove the constants, the templates, the registrations, the recording methods
and the removeMetric calls together, so the class and the generated reference
agree, and regenerate metrics.rst.

Cache hit and miss stay observable: CaffeineCacheMetrics publishes Caffeine's
own hitCount and missCount, and the byte split is CacheHitBytesPerSec against
StorageBytesInPerSec. CacheQueryTime and CacheStoreTime have no equivalent, but
they never carried a sample, so nothing is lost that ever worked. Note the names
did appear in the reference, so a dashboard referencing them will now show a
missing metric rather than an empty one.

* refactor(inkless:consume): tidy metrics javadoc and gauge lambda

Two cosmetic fixes in InklessFetchMetrics, split out so they do not sit in a
commit that changes behavior: the recordLaggingConsumerRejection javadoc had
paragraphs the renderer ran together for want of a <p>, and the CacheSize gauge
took a lambda where a method reference reads the same.
jeqo added a commit that referenced this pull request Sep 9, 2026
* refactor(inkless:consume): drop four never-recorded fetch metrics

CacheQueryTime, CacheStoreTime, CacheHitCount and CacheMissCount were
registered on the consumer fetch group and documented in metrics.rst, but
nothing ever recorded them: cacheQueryFinished, cacheStoreFinished and
cacheHit(boolean) had no callers anywhere in the tree. An operator graphing any
of the four saw an empty series and no way to tell that from a quiet broker.

Remove the constants, the templates, the registrations, the recording methods
and the removeMetric calls together, so the class and the generated reference
agree, and regenerate metrics.rst.

Cache hit and miss stay observable: CaffeineCacheMetrics publishes Caffeine's
own hitCount and missCount, and the byte split is CacheHitBytesPerSec against
StorageBytesInPerSec. CacheQueryTime and CacheStoreTime have no equivalent, but
they never carried a sample, so nothing is lost that ever worked. Note the names
did appear in the reference, so a dashboard referencing them will now show a
missing metric rather than an empty one.

* refactor(inkless:consume): tidy metrics javadoc and gauge lambda

Two cosmetic fixes in InklessFetchMetrics, split out so they do not sit in a
commit that changes behavior: the recordLaggingConsumerRejection javadoc had
paragraphs the renderer ran together for want of a <p>, and the CacheSize gauge
took a lambda where a method reference reads the same.
jeqo added a commit that referenced this pull request Sep 9, 2026
* refactor(inkless:consume): drop four never-recorded fetch metrics

CacheQueryTime, CacheStoreTime, CacheHitCount and CacheMissCount were
registered on the consumer fetch group and documented in metrics.rst, but
nothing ever recorded them: cacheQueryFinished, cacheStoreFinished and
cacheHit(boolean) had no callers anywhere in the tree. An operator graphing any
of the four saw an empty series and no way to tell that from a quiet broker.

Remove the constants, the templates, the registrations, the recording methods
and the removeMetric calls together, so the class and the generated reference
agree, and regenerate metrics.rst.

Cache hit and miss stay observable: CaffeineCacheMetrics publishes Caffeine's
own hitCount and missCount, and the byte split is CacheHitBytesPerSec against
StorageBytesInPerSec. CacheQueryTime and CacheStoreTime have no equivalent, but
they never carried a sample, so nothing is lost that ever worked. Note the names
did appear in the reference, so a dashboard referencing them will now show a
missing metric rather than an empty one.

* refactor(inkless:consume): tidy metrics javadoc and gauge lambda

Two cosmetic fixes in InklessFetchMetrics, split out so they do not sit in a
commit that changes behavior: the recordLaggingConsumerRejection javadoc had
paragraphs the renderer ran together for want of a <p>, and the CacheSize gauge
took a lambda where a method reference reads the same.
jeqo added a commit that referenced this pull request Sep 10, 2026
* docs(inkless:sync): archive the 0.48 cherry-pick sessions for 4.1, 4.2, 4.3

Session logs for bringing the three active release branches up to main
(5fa6669, #784) ahead of the 0.48 release. inkless-4.3 took its 8
commits clean. inkless-4.2 and inkless-4.1 took 19 each; the logs record
the conflict resolutions and the sync(compile)/sync(test) adaptations
needed for the 4.2.1 and 4.1.2 APIs (Record package, LogReadResult
constructor, Seq-based DelayedFetch statuses).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

docs(inkless:sync): complete the 0.48 cherry-pick session logs

The three branches took six more main commits (#794, #787, #792, #793,
tables and the verification that covered them.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* docs(inkless:release): list inkless-4.3 as an active release branch

inkless-4.3 is on Kafka 4.3.1 (#779) and gets its first Kafka-base tag
with 0.48, so it moves from Planned to Active in RELEASES.md. The release
workflow header names it among the branches the cherry-pick sync has to
cover before a run.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* docs(inkless:release): add 0.48 changelog entry

Generated from inkless-release-0.47..inkless-release-0.48 and curated:
every metric delta traced to its commit, the four config default changes
the configs.rst diff shows added next to the four new keys, and the V28
lock on logs described for operators.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
giuseppelillo pushed a commit that referenced this pull request Sep 18, 2026
* docs(inkless:sync): archive the 0.48 cherry-pick sessions for 4.1, 4.2, 4.3

Session logs for bringing the three active release branches up to main
(5fa6669, #784) ahead of the 0.48 release. inkless-4.3 took its 8
commits clean. inkless-4.2 and inkless-4.1 took 19 each; the logs record
the conflict resolutions and the sync(compile)/sync(test) adaptations
needed for the 4.2.1 and 4.1.2 APIs (Record package, LogReadResult
constructor, Seq-based DelayedFetch statuses).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

docs(inkless:sync): complete the 0.48 cherry-pick session logs

The three branches took six more main commits (#794, #787, #792, #793,
tables and the verification that covered them.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* docs(inkless:release): list inkless-4.3 as an active release branch

inkless-4.3 is on Kafka 4.3.1 (#779) and gets its first Kafka-base tag
with 0.48, so it moves from Planned to Active in RELEASES.md. The release
workflow header names it among the branches the cherry-pick sync has to
cover before a run.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* docs(inkless:release): add 0.48 changelog entry

Generated from inkless-release-0.47..inkless-release-0.48 and curated:
every metric delta traced to its commit, the four config default changes
the configs.rst diff shows added next to the four new keys, and the V28
lock on logs described for operators.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
giuseppelillo pushed a commit that referenced this pull request Sep 18, 2026
* docs(inkless:sync): archive the 0.48 cherry-pick sessions for 4.1, 4.2, 4.3

Session logs for bringing the three active release branches up to main
(5fa6669, #784) ahead of the 0.48 release. inkless-4.3 took its 8
commits clean. inkless-4.2 and inkless-4.1 took 19 each; the logs record
the conflict resolutions and the sync(compile)/sync(test) adaptations
needed for the 4.2.1 and 4.1.2 APIs (Record package, LogReadResult
constructor, Seq-based DelayedFetch statuses).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

docs(inkless:sync): complete the 0.48 cherry-pick session logs

The three branches took six more main commits (#794, #787, #792, #793,
tables and the verification that covered them.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* docs(inkless:release): list inkless-4.3 as an active release branch

inkless-4.3 is on Kafka 4.3.1 (#779) and gets its first Kafka-base tag
with 0.48, so it moves from Planned to Active in RELEASES.md. The release
workflow header names it among the branches the cherry-pick sync has to
cover before a run.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* docs(inkless:release): add 0.48 changelog entry

Generated from inkless-release-0.47..inkless-release-0.48 and curated:
every metric delta traced to its commit, the four config default changes
the configs.rst diff shows added next to the four new keys, and the V28
lock on logs described for operators.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
giuseppelillo pushed a commit that referenced this pull request Sep 24, 2026
* docs(inkless:sync): archive the 0.48 cherry-pick sessions for 4.1, 4.2, 4.3

Session logs for bringing the three active release branches up to main
(5fa6669, #784) ahead of the 0.48 release. inkless-4.3 took its 8
commits clean. inkless-4.2 and inkless-4.1 took 19 each; the logs record
the conflict resolutions and the sync(compile)/sync(test) adaptations
needed for the 4.2.1 and 4.1.2 APIs (Record package, LogReadResult
constructor, Seq-based DelayedFetch statuses).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

docs(inkless:sync): complete the 0.48 cherry-pick session logs

The three branches took six more main commits (#794, #787, #792, #793,
tables a
8000
nd the verification that covered them.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* docs(inkless:release): list inkless-4.3 as an active release branch

inkless-4.3 is on Kafka 4.3.1 (#779) and gets its first Kafka-base tag
with 0.48, so it moves from Planned to Active in RELEASES.md. The release
workflow header names it among the branches the cherry-pick sync has to
cover before a run.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* docs(inkless:release): add 0.48 changelog entry

Generated from inkless-release-0.47..inkless-release-0.48 and curated:
every metric delta traced to its commit, the four config default changes
the configs.rst diff shows added next to the four new keys, and the V28
lock on logs described for operators.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

0