[Flink] Add sourceParallelismUpperBound metric for auto-scaling systems#7117
Merged
yunfengzhou-hub merged 2 commits intoapache:masterfrom Feb 11, 2026
Conversation
affa652 to
438e986
Compare
438e986 to
edbdea3
Compare
edbdea3 to
166deaa
Compare
Contributor
yunfengzhou-hub
left a comment
There was a problem hiding this comment.
Thanks for the PR. Left some comments as below.
...mon-flink-common/src/main/java/org/apache/paimon/flink/source/ContinuousFileStoreSource.java
Outdated
Show resolved
Hide resolved
...mon-flink-common/src/main/java/org/apache/paimon/flink/source/ContinuousFileStoreSource.java
Outdated
Show resolved
Hide resolved
jerry-024
added a commit
to jerry-024/paimon
that referenced
this pull request
Feb 12, 2026
* upstream/master: (33 commits) [core] Fix merge adjacent files in DataEvolutionCompactCoordinator [python] Rename list_tag to list_tags [python] add list tag for TagManager (apache#7264) [core][python] Introduce DataFileMeta.nonNullRowIdRange to unify codes [python] with_shard should be evenly distributed for data evolution mode (apache#7271) [core] Remove useless version in Varant [core] Should work with Split in DataTableBatchScan [core] Fix paimon_incremental_query with limit push down (apache#7269) [rest] Improve RestCatalog OpenAPI nonce generation (apache#7270) [cdc] Avoid sending empty schema change events to Schema Evolution (apache#7261) [python] Fix avro write timestamp without timezone wrongly (apache#7259) [doc] add doc for filter by _ROW_ID on data evolution (apache#7262) [fs] Extract jindo dls to separate module (apache#7263) [core] Add listTableDetails method to Catalog interface (apache#7266) [python] Support filter by _ROW_ID for data evolution (apache#7252) [Flink] Add sourceParallelismUpperBound metric for auto-scaling systems (apache#7117) [github] Add whether it is an AI-generated tag in the PR template (apache#7257) [core] Improve HttpClient error response handling (apache#7254) [python] Light refactor: move _is_blob_file check into DataFileMeta (apache#7256) [core] RowIdPredicateVisitor supports converting between statement (apache#7255) ...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
This PR adds a new metric
sourceParallelismUpperBoundto the Flink Source Enumerator. This metric provides a recommended upper bound of parallelism for auto-scaling systems to optimize resource allocation.Motivation
Auto-scaling systems need to understand the optimal parallelism for Paimon sources to:
The metric value:
Note: This is a recommendation, not a hard limit - users can still configure higher parallelism manually if needed.
Tests
Added unit tests in
FileStoreSourceMetricsTest.java:continuousFileStoreFixBucketEnumeratorMetricsTest()- Verifies metric equals bucket number for fixed bucket tablescontinuousFileStoreDynBucketEnumeratorMetricsTest()- Verifies metric equals current parallelism for dynamic bucket tablesAlso added
TestingMetricUtils.getGauge()helper method for testing Gauge metrics.API and Format
No API or storage format changes. This only adds a new metric.
Documentation
Updated
docs/content/maintenance/metrics.mdwith the new metric description.