std.timeseries.process

create-custom-fns

added in 3.0

(create-custom-fns custom time-opts)

create custom functions

(create-custom-fns [{:keys :bench.stats.lag :bench.stats.time :sample 10 :aggregate :max}] {:order :desc :key :start}) => (contains {:bench.stats.lag fn? :bench.stats.time fn?})

create-merge-fn

added in 3.0

(create-merge-fn {:keys [sample aggregate none], :as m} time-opts)

creates a merge function

(def merge-fn (create-merge-fn {:sample 9} {:key identity :order :asc}))

(long (merge-fn (range 90))) => 44

map-merge-fn

added in 3.0

(map-merge-fn {:keys [default time custom skip template]} {time-key :key, :as time-opts})

creates a map merge function

(map-merge-fn {:time {:aggregate :first} :default {:sample 4} :custom [{:keys :bench.stats.lag :sample 10 :aggregate :max} {:keys :bench.stats.time :sample 4 :aggregate :mean}]} {:order :desc :key :start}) => fn?

parse-transform-expr

added in 3.0

(parse-transform-expr {:keys [interval time default custom], :as m} type time-opts)

parses the transform expr

prep-merge

added in 3.0

(prep-merge {:keys [sample aggregate none], :or {aggregate :mean, none 0}} time-opts)

prepares the merge functions and options

(prep-merge {:sample [0 :1m :range]} {:unit :ms}) => (contains-in [fn? {:size {:type :to, :start :array 0, :end :time 60000}, :strategy :range}])

process

added in 3.0

(process arr {:keys [time transform computes], :as opts})

processes time series

process-compute

added in 3.0

(process-compute arr {:keys [compute time]})

process-transform

added in 3.0

(process-transform arr {:keys [transform template], time-opts :time})

processes the transform stage

time-merge-fn

added in 3.0

(time-merge-fn {:keys [time]} time-opts)

creates a merge function for time

transform-interval

added in 3.0

(transform-interval arr {:keys [interval template merge-fn]} type time-opts)

transform array based on resolution