[
https://issues.apache.org/jira/browse/KUDU-3730?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gabriella Lotz updated KUDU-3730:
---------------------------------
Description:
{*}File{*}:
{{[src/kudu/master/auto_rebalancer.cc](src/kudu/master/auto_rebalancer.cc)}}
(new {{METRIC_DEFINE_counter}} entries, mirroring the pattern in
{{{}[src/kudu/master/ts_manager.cc:55](src/kudu/master/ts_manager.cc){}}})
Counters to add (server-entity scope):
* {{auto_rebalancer_leader_moves_scheduled}} — incremented in
{{ExecuteMoves()}} when the tablet selected by {{FindReplicas()}} came from
{{tablet_uuids_src_leaders}} (i.e., no follower was available)
* {{auto_rebalancer_follower_moves_scheduled}} — incremented when the tablet
came from {{tablet_uuids_src}} (non-leader path)
* {{auto_rebalancer_rounds_completed}} — incremented once per full rebalancing
cycle at the end of the {{do \{ } while}} loop in {{Run()}}
* {{auto_rebalancer_moves_scheduled_total}} — total replica moves handed to
{{ExecuteMoves()}} across all rounds
The split between {{leader_moves}} and {{follower_moves}} requires knowing
which path {{FindReplicas()}} took. The simplest approach: have
{{FindReplicas()}} return a bool (or an enum) indicating whether the result was
from the follower list or the leader-fallback list, and use that in the call
site in {{{}ScheduleReplicaMove(){}}}.
> Add observability metrics
> -------------------------
>
> Key: KUDU-3730
> URL: https://issues.apache.org/jira/browse/KUDU-3730
> Project: Kudu
> Issue Type: Sub-task
> Reporter: Gabriella Lotz
> Assignee: Gabriella Lotz
> Priority: Major
>
> {*}File{*}:
> {{[src/kudu/master/auto_rebalancer.cc](src/kudu/master/auto_rebalancer.cc)}}
> (new {{METRIC_DEFINE_counter}} entries, mirroring the pattern in
> {{{}[src/kudu/master/ts_manager.cc:55](src/kudu/master/ts_manager.cc){}}})
> Counters to add (server-entity scope):
> * {{auto_rebalancer_leader_moves_scheduled}} — incremented in
> {{ExecuteMoves()}} when the tablet selected by {{FindReplicas()}} came from
> {{tablet_uuids_src_leaders}} (i.e., no follower was available)
> * {{auto_rebalancer_follower_moves_scheduled}} — incremented when the tablet
> came from {{tablet_uuids_src}} (non-leader path)
> * {{auto_rebalancer_rounds_completed}} — incremented once per full
> rebalancing cycle at the end of the {{do \{ } while}} loop in {{Run()}}
> * {{auto_rebalancer_moves_scheduled_total}} — total replica moves handed to
> {{ExecuteMoves()}} across all rounds
> The split between {{leader_moves}} and {{follower_moves}} requires knowing
> which path {{FindReplicas()}} took. The simplest approach: have
> {{FindReplicas()}} return a bool (or an enum) indicating whether the result
> was from the follower list or the leader-fallback list, and use that in the
> call site in {{{}ScheduleReplicaMove(){}}}.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)