[ 
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)

Reply via email to