anchor.diff:          end),
       case escalus_pred:is_iq_result(PublishResult) of
           true ->
  -            exometer:update(?PUBLISH_SUCCESS_COUTER, 1),
  -            exometer:update(?PUBLISH_TIME, PublishTime);
  +            amoc_metrics:update_counter(publish_success, 1),
  +            amoc_metrics:update_time(publish_time, PublishTime);
           Error ->
  -            exometer:update(?PUBLISH_FAILS_COUTER, 1),
  +            amoc_metrics:update_counter(publish_fails, 1),
               lager:error("Error subscribing node ~p filed: ~p", [Node, Error]),
               exit(connection_failed)
           end.
  
positive.code: 
      case escalus_pred:is_iq_result(CreateNodeResult) of
          true ->
              exometer:update(?NODE_CREATE_SUCCESS_COUTER, 1),
              exometer:update(?NODE_CREATE_TIME, CreateNodeTime);
          Error ->
              exometer:update(?NODE_CREATE_FAILS_COUTER, 1),
              lager:error("Error creating node: ~p", [Error]),
              exit(connection_failed)
      end,
  
negative.code: %% --- Metrics ---------------------------------------------------------------------------------------------
  
  init_metrics() ->
      Counters = [ node_creation_success, node_creation_failure, subscription_failure,
                   publication_failure, subscription_success, publication_success ],
      Times = [ node_creation, subscription, publication, message_ttd ],
      lists:foreach(fun(Metric) ->
                            amoc_metrics:init(counters, Metric) end, Counters),
      lists:foreach(fun(Metric) ->
                            amoc_metrics:init(times, Metric) end, Times).
  %% ----------------------------------------------------------------------------------------------------------
  
  assign_role(Id, CreatorsNumber) when Id < CreatorsNumber ->
  