anchor.diff:  
   -spec get_load_metric() -> items | number().
   get_load_metric() ->
  -    Metric = config:read(lb_active_metric),
  +    Metric = config:read(lb_active_load_metric),
       Value = case get_load_metric(Metric) of
  -        unknown -> 0;
  -        Val -> Val
  -    end,
  +                unknown -> 0;
  +                Val -> Val
  +            end,
       io:format("Load: ~p~n", [Value]),
       Value. %%TODO
   
  --spec get_load_metric(metric()) -> items | number(). %% unknwon shouldn't happen here, in theory it can TODO
  +-spec get_load_metric(load_metric()) -> items | number(). %% unknwon shouldn't happen here, in theory it can TODO
   get_load_metric(Metric) ->
       get_load_metric(Metric, normal).
   
  --spec get_load_metric(metric(), normal | strict) -> unknown | items | number().
  +-spec get_load_metric(load_metric(), normal | strict) -> unknown | items | number().
   get_load_metric(Metric, Mode) ->
  -            case Metric of
  -                cpu          -> get_vm_metric({lb_active, cpu10sec}, Mode) / 100;
  -                mem          -> get_vm_metric({lb_active, mem10sec}, Mode) / 100;
  -                db_reads     -> get_dht_metric({lb_active, db_reads}, Mode);
  -                db_writes    -> get_dht_metric({lb_active, db_writes}, Mode);
  -                db_requests  -> get_load_metric(db_reads, Mode) + get_load_metric(db_writes, Mode); %% TODO
  -                %tx_latency   -> get_dht_metric({api_tx, req_list}, avg, Mode);
  -                %transactions -> get_dht_metric({api_tx, req_list}, count, Mode);
  -                items        -> items;
  -                _            -> throw(metric_not_available)
  -    end.
  -
  --spec get_vm_metric(metric(), normal | strict) -> unknown | number().
  +    case Metric of
  +        cpu          -> get_vm_metric({lb_active, cpu}, Mode) / 100;
  +        mem          -> get_vm_metric({lb_active, mem}, Mode) / 100;
  +        %net_latency  ->
  +        %net_bandwith ->
  +        %tx_latency   -> get_dht_metric({api_tx, req_list}, avg, Mode);
  +        %transactions -> get_dht_metric({api_tx, req_list}, count, Mode);
  +        items        -> items;
  +        _            -> throw(metric_not_available)
  +    end.
  +
  +-spec get_request_metric() -> ok.
  +get_request_metric() ->
  +    Metric = config:read(lb_active_request_metric),
  +    Value = case get_request_metric(Metric) of
  +                unknown -> 0;
  +                Val -> Val
  +            end,
  +    io:format("Requests: ~p~n", [Value]),
  +    Value.
  +
  +-spec get_request_metric(request_metric()) -> ok.
  +get_request_metric(Metric) ->
  +    get_request_metric(Metric, normal).
  +
  +-spec get_request_metric(request_metric(), normal | strict) -> ok.
  +get_request_metric(Metric, Mode) ->
  +    case Metric of
  +        db_reads -> get_dht_metric({lb_active, db_reads}, Mode);
  +        db_writes -> get_dht_metric({lb_active, db_writes}, Mode)
  +        %db_requests  -> get_request_metric(db_reads, Mode) +
  +        %                get_request_metric(db_writes, Mode); %% TODO
  +    end.
  +
  +-spec get_vm_metric(load_metric() | request_metric(), normal | strict) -> unknown | number().
   get_vm_metric(Metric, Mode) ->
       ClientMonitorPid = pid_groups:pid_of("clients_group", monitor),
       get_metric(ClientMonitorPid, Metric, Mode).
  
positive.code:             end
      end.
  
  -spec collect_phase() -> boolean().
  collect_phase() ->
      %% TODO CollectPhase config to be removed
      %CollectPhase = config:read(lb_active_collect_init_phase),
      History = config:read(lb_active_monitor_history),
      Resolution = config:read(lb_active_monitor_resolution),
      CollectPhase = History * Resolution,
  
negative.code: %% @doc config check registered in config.erl
  -spec check_config() -> boolean().
  check_config() ->
      config:cfg_is_in(lb_active_module, ?MODULES) and
  
      config:cfg_is_integer(lb_active_interval) and
      config:cfg_is_greater_than(lb_active_interval, 0) and
  
      config:cfg_is_in(lb_active_load_metric, ?LOAD_METRICS) and
  
      config:cfg_is_in(lb_active_request_metric, ?REQUEST_METRICS) and
  
      config:cfg_is_in(lb_active_balance_metric, [items, requests]) and
  
      config:cfg_is_bool(lb_active_use_gossip) and
      config:cfg_is_greater_than(lb_active_gossip_stddev_threshold, 0) and
  
      config:cfg_is_integer(lb_active_histogram_size) and
      config:cfg_is_greater_than(lb_active_histogram_size, 0) and
  
      config:cfg_is_integer(lb_active_monitor_resolution) and
      config:cfg_is_greater_than(lb_active_monitor_resolution, 0) and
  
      config:cfg_is_integer(lb_active_monitor_interval) and
      config:cfg_is_greater_than(lb_active_monitor_interval, 0) and
  
      config:cfg_is_less_than(lb_active_monitor_interval, config:read(lb_active_monitor_resolution)) and
  
      config:cfg_is_integer(lb_active_monitor_history) and
      config:cfg_is_greater_than(lb_active_monitor_history, 0) and
  
      config:cfg_is_integer(lb_active_wait_for_pending_ops) and
      config:cfg_is_greater_than(lb_active_wait_for_pending_ops, 0) and
  
      call_module(check_config, []).
  