Skip to content

Add documentation for tracking progress of Cruise Control rebalances. #11529

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,5 @@ include::../../modules/cruise-control/proc-approving-optimization-proposal.adoc[
include::../../modules/cruise-control/proc-stopping-cluster-rebalance.adoc[leveloffset=+1]

include::../../modules/cruise-control/proc-fixing-problems-with-kafkarebalance.adoc[leveloffset=+1]

include::../../modules/cruise-control/proc-tracking-cluster-rebalance.adoc[leveloffset=+1]
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
// Module included in the following assemblies:
//
// assembly-cruise-control-concepts.adoc

[id='proc-tracking-cluster-rebalance-{context}']

= Tracking rebalances

Information surrounding the progress of an executing partition rebalance is useful for planning future cluster operations, such as worker node maintenance, scaling, or upgrading brokers.
Knowing details like the duration and data left to transfer for an ongoing partition rebalance can help users schedule maintenance windows effectively and assess the impact of continuing versus canceling a rebalance.

Strimzi provides the following rebalance progress information fields in the `ConfigMap` listed in the `status.progress.rebalanceProgressConfigMap` of the `KafkaRebalance` resource.

- `estimatedTimeToCompletionInMinutes`: The estimated time it will take in minutes until the partition rebalance is complete.

- `completedByteMovementPercentage`: The percentage of the byte movement of the partition rebalance that is completed as a rounded down integer value in the range [0-100].

- `executorState.json`: The “non-verbose” JSON payload from the link:https://github.com/linkedin/cruise-control/wiki/REST-APIs#query-the-state-of-cruise-control[/kafkacruisecontrol/state?substates=executor] endpoint, providing details about the executor's current status, including partition movement progress, concurrency limits, and total data to move.

This information is updated every reconciliation of the `KafkaRebalance` resource.

.Prerequisites

* The status of the `KafkaRebalance` custom resource is `Rebalancing` state.

.Procedure

- Accessing `estimatedTimeToCompletionInMinutes` field.:
+
[source,shell]
----
kubectl get configmaps <my_rebalance_configmap_name> -o json | jq '.["data"]["estimatedTimeToCompletionInMinutes"]'
----

- Accessing `completedByteMovementPercentage` field.:
+
[source,shell]
----
kubectl get configmaps <my_rebalance_configmap_name> -o json | jq '.["data"]["completedByteMovementPercentage"]'
----

- Accessing `executorState.json` field.
+
[source,shell]
----
kubectl get configmaps <my_rebalance_configmap_name> -o json | jq '.["data"]["executorState.json"] | fromjson | .'
----
Loading