anchor.diff:              end
       end.
   
  +%% @doc get the reductions of all processes in the pid group
  +-spec get_reductions() -> integer().
  +get_reductions() ->
  +    MyGroupPids = pid_groups:my_members(),
  +    AllReductions =
  +        [begin
  +             {reductions, N} = erlang:process_info(Pid, reductions),
  +             N
  +         end || Pid <- MyGroupPids],
  +    lists:sum(AllReductions).
  +
  +-spec set_last_reductions(integer()) -> ok.
  +set_last_reductions(Reductions) ->
  +    erlang:put(reductions, Reductions),
  +    ok.
  +
  +-spec get_last_reductions() -> integer().
  +get_last_reductions() ->
  +    erlang:get(reductions).
  +
   %%%%%%%%%%%%%%%%%%%%%%%%%% Util %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
   -spec collect_stats() -> boolean().
   collect_stats() ->
  -    Metrics = [cpu, mem], %% TODO
  +    Metrics = [cpu, mem, reductions],
       lists:member(config:read(lb_active_load_metric), Metrics).
   
   -spec trigger() -> ok.
  
positive.code: get_load_metric(Metric, Mode) ->
      case Metric of
          cpu          -> get_vm_metric(cpu, Mode);
          mem          -> get_vm_metric(mem, Mode);
          items        -> items;
          _            -> throw(metric_not_available)
  
negative.code: % items, cpu, mem, db_reads, db_writes, db_requests,
  % transactions, tx_latency, net_throughput, net_latency
  %% available metrics
  -define(LOAD_METRICS, [items, cpu, mem, reductions, db_reads, db_writes]).
  -define(REQUEST_METRICS, [db_reads, db_writes]).
  
  %%%%%%%%%%%%%%%%%%%%%%%% Monitoring values %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  