anchor.diff:      {bench} |
       {propagate} |
       {get_node_details_response, node_details:node_details()} |
  -    {gather_stats, SourcePid::comm:mypid(), Round::pos_integer()} |
  -    {{get_rrds_response, [{Process::atom(), Key::string(), DB::rrd:rrd() | undefined}]}, {SourcePid::comm:mypid(), Round::pos_integer()}} |
  -    {gather_stats_response, Round::pos_integer(), [{Process::atom(), Key::string(), Data::rrd:timing_type(number())}]} |
  +    {gather_stats, SourcePid::comm:mypid(), Id::util:global_uid()} |
  +    {{get_rrds_response, [{Process::atom(), Key::string(), DB::rrd:rrd() | undefined}]}, {SourcePid::comm:mypid(), Id::util:global_uid()}} |
  +    {gather_stats_response, Id::util:global_uid(), [{Process::atom(), Key::string(), Data::rrd:timing_type(number())}]} |
       {report_value, StatsOneRound::#state{}} |
       {get_rrds, [{Process::atom(), Key::string()},...], SourcePid::comm:mypid()}.
   
  
positive.code:     msg_delay:send_local(FirstDelay, self(), {bench}),
      msg_delay:send_local(get_gather_interval(), self(), {propagate}),
      Now = os:timestamp(),
      State = #state{perf_rr = rrd:create(get_gather_interval() * 1000000, 60, {timing, ms}, Now),
                     perf_lh = rrd:create(get_gather_interval() * 1000000, 60, {timing, count}, Now)},
      {State, State}.
  
  
negative.code:         false -> State;
          _ ->
              % start a new timeslot and gather stats...
              NewId = util:get_global_uid(),
              Msg = {send_to_group_member, monitor_perf, {gather_stats, comm:this(), NewId}},
              bulkowner:issue_bulk_owner(intervals:all(), Msg),
              Leader1 = check_timeslots(Leader),
              broadcast_values(Leader, Leader1),
              {AllNodes, Leader1#state{id = NewId}}
      end;
  
  on({gather_stats, SourcePid, Id} = _Msg, State) ->
      ?TRACE1(_Msg, State),
      This = comm:this_with_cookie({SourcePid, Id}),
      comm:send_local(pid_groups:get_my(monitor),
                      {get_rrds, [{?MODULE, "read_read"}, {dht_node, "lookup_hops"}], This}),
      State;
  
  on({{get_rrds_response, DBs}, {SourcePid, Id}} = _Msg, State) ->
      ?TRACE1(_Msg, State),
      DataL = lists:flatten(
                [begin
  