anchor.diff:  % gauge: record newest value of a time slot,
   % counter: sum up all values of a time slot,
   % event: record every event (incl. timestamp) in a time slot,
  +% histogram: record all values in a time slot using an approximative histogram
   % timing: record time spans, store {sum(x), sum(x^2), count(x), min(x), max(x)}
   % timing_with_hist: record time spans, store {sum(x), sum(x^2), count(x), min(x), max(x), histogram(x)}
  --type timeseries_type() :: gauge | counter | event | {timing | timing_with_hist, us | ms | s | count}.
  +-type timeseries_type() :: gauge | counter | event |
  +                           {histogram, Size::non_neg_integer()} |
  +                           {histogram, Size::non_neg_integer(),
  +                                       NormalizationFun::histogram_normalized:norm_fun(),
  +                                       InverseFun::histogram_normalized:norm_fun()} |
  +                           {timing | timing_with_hist, us | ms | s | count | percent}.
   -type fill_policy_type() :: set_undefined | keep_last_value.
   -type time() :: erlang_timestamp().
   -type internal_time() :: non_neg_integer(). % default: micro seconds since Epoch
  
positive.code: %%      valid.
  -spec check_config() -> boolean().
  check_config() ->
      config:cfg_is_integer(rrd_timing_hist_size) and
      config:cfg_is_greater_than_equal(rrd_timing_hist_size, 0).
  
  -spec get_timing_hist_size() -> non_neg_integer().
  
negative.code: 
  -type gauge_type() :: number().
  -type counter_type() :: number().
  -type histogram_type() :: histogram:histogram() | histogram_normalized:histogram().
  -type timing_type() :: {Sum::number(), Sum2::number(), Count::pos_integer(), Min::number(), Max::number(), Hist::histogram:histogram()}.
  -type event_type(T) :: [{internal_time(), T}].
  -type data_type() :: gauge_type() | counter_type() | timing_type() | event_type(term()).
  