how are counters different from regular, instantaneous measurements of a value?
From a client API perspective its an atomic 'increment' (or 'decrement') operation that requires one call from the client instead of a two calls 1) read current value and 2) update the value.
Backend implementations of this can provide optimizations of counter operations over "normal" measurement of values. For instance, Cassandra has a counter type: http://www.datastax.com/dev/blog/whats-new-in-cassandra-2-1-a-better-implementation-of-counters
The use case is the typical "Web Page Hit Counters" that you see on pages. Making that easy for users to setup with something like:
So a counter has no notion of "over time" or timestamp?
StatsD counters seem to be bucketized by the second and then the "real backend" - e.g. Graphite - is averaging this further over a minute.
I think this bucketizing could make sense for use cases of what RHQ calls "Call time data" - counters with
key=value of url.http-status = <count>
StatsD seems to use the so called timers for this and autocomputes percentiles from them
I think StatsD Gauges are what we use as "normal data" so far and no automatic averaging or so is done.
Yammer Metics also has some basic types and then derivatives:
with Gauges apparently like StatsD, Counters like ours and Histograms similar to StatsD Sets (?)
Does anyone know about other systems and their metric types ?