public StringBuilder counterSnapshot(final Collection<Counter> instances) { final long ts = System.currentTimeMillis(); final StringBuilder events = newEventStream(); for (final Counter counter : instances) { buildEvent(events, COUNTER_TYPE, ts, new MapBuilder() .add(NAME, counter.getKey().getName()) .add(ROLE, counter.getKey().getRole().getName()) .add(UNIT, counter.getKey().getRole().getUnit().getName()) // minimum metrics to be able to aggregate counters later .add(CONCURRENCY, counter.currentConcurrency().intValue()) .add(MEAN, counter.getMean()) .add(VARIANCE, counter.getVariance()) .add(HITS, counter.getHits()) .add(MAX, counter.getMax()) .add(MIN, counter.getMin()) .add(SUM, counter.getSum()) .add(M_2, counter.getSecondMoment()) .map()); } return events; }
protected CassandraLeafCounter save(final CassandraLeafCounter counter, final String marker) { final Counter.Key key = counter.getKey(); final String id = id(key, marker); HFactory.createMutator(keyspace, StringSerializer.get()) // counter values .addInsertion(id, family, column("role", key.getRole().getName())) .addInsertion(id, family, column("key", key.getName())) .addInsertion(id, family, column("maxConcurrency", counter.getMaxConcurrency())) .addInsertion(id, family, column("variance", counter.getVariance())) .addInsertion(id, family, column("n", counter.getHits())) .addInsertion(id, family, column("max", counter.getMax())) .addInsertion(id, family, column("min", counter.getMin())) .addInsertion(id, family, column("sum", counter.getSum())) .addInsertion(id, family, column("m2", counter.getSecondMoment())) .addInsertion(id, family, column("mean", counter.getMean())) // counter in marker .addInsertion(marker, markerFamily, emptyColumn(id)) //save it .execute(); return counter; }
public void add(final double delta, Unit unit) { add(key.getRole().getUnit().convert(delta, unit)); }
@Override public void add(final double delta, final Unit deltaUnit) { add(key.getRole().getUnit().convert(delta, deltaUnit)); }
@Override public String getRole() { return delegate.getKey().getRole().getName(); }
public CounterGauge(final Counter counter, final MetricData metric) { this.counter = counter; this.metric = metric; this.role = new Role("counter-" + counter.getKey().getRole().getName() + "-" + counter.getKey().getName() + "-" + metric.name(), Unit.UNARY); }