package com.bizo.asperatus.tracker; import java.util.Collection; import java.util.List; import com.bizo.asperatus.model.CompoundDimension; import com.bizo.asperatus.model.Dimension; import com.bizo.asperatus.model.Unit; public interface MetricTracker { /** * Track metrics. * * Equivalent to track(metricName, value, Unit.Count, dimensions); * * @param metricName * metric name * @param value * value * @param dimensions * dimensions to track against (ordering unimportant) */ void track(String metricName, Number value, List<Dimension> dimensions); /** * Track metrics. * * Metrics will be tracked individually against each dimension passed. * * I.e. track("a", 1, List((d1,v1), (d2,v2), (d3,v3))) is equivalent to calling track("a", 1, List((d1, v1))); * track("a", 1, List((d2,v2)));... * * @param metricName * metric name * @param value * value * @param unit * unit * @param dimensions * dimensions to track against (ordering unimportant) */ void track(String metricName, Number value, Unit unit, List<Dimension> dimensions); /** * Track metrics with compound dimensions. */ void track(String metricName, Number value, Unit unit, Collection<CompoundDimension> dimensions); /** * Close tracker, perform any flushing, cleanup, etc. */ void close(); }