anchor.diff:            name,
             datapoints = ?DATAPOINTS,
             data = [],
  -          ttl = 5000,
  -          ref
  +          ttl = 5000
            }).
   
   ad_hoc_spec() ->
       [{module, ?MODULE},
        {type, probe},
  -     {cache, 5000}].
  +     {cache, 5000},
  +     {sample_interval, infinity}].
   
   -spec behaviour() -> exometer:behaviour().
   behaviour() ->
  
positive.code: probe_handle_msg({watchdog, _Node, _Ts, _Trigger, TriggerData}, S) ->
      update_metrics(TriggerData),
      {ok, update_counter(updates, 1, S)};
  probe_handle_msg({'DOWN', Ref, _, _, SampleRes}, #st{ref = Ref} = S) ->
      case SampleRes of
          {sample, Data} ->
              lager:debug("got sample: ~p", [Data]),
              {ok, S#st{ref = undefined, data = Data}};
          Other ->
              lager:debug("sampler died: ~p", [Other]),
              {ok, S#st{ref = undefined}}
      end;
  probe_handle_msg(_Msg, S) ->
      lager:debug("Unknown msg: ~p", [_Msg]),
      {ok, S}.
  
  probe_code_change(_, S, _) ->
      {ok, S}.
  
  sample(DPs) ->
      lists:foldr(fun sample_/2, [], DPs).
  
  sample_(_, Acc) ->
      Acc.
  
  update_counter(K, Value, #st{data = Data, name = Name, ttl = TTL} = S) ->
      Data1 =
  
negative.code: probe_get_value(DPs, #st{data = Data0,
                           datapoints = DPs0} = S) ->
      Data1 = if Data0 =:= undefined ->
                      [];
                 true -> Data0
              end,
      DPs1 = if DPs =:= default -> DPs0;
  