On Mar 20, 2015, at 12:47 PM, John Sanda <jsanda@redhat.com> wrote:


On Mar 20, 2015, at 12:23 PM, Lukas Krejci <lkrejci@redhat.com> wrote:

On Friday, March 20, 2015 09:03:19 mike thompson wrote:
On 20 Mar 2015, at 08:19, Lukas Krejci <lkrejci@redhat.com> wrote:

I think the "metrics" should actually be dropped instead of "numeric”.

The only thing about ‘numeric’ is that it is not very specific. Numeric just
means number — every metric is a number so its really not adding anything.
Even availability data is numeric.

Isn't metrics going to store "events" eventually, too? Those would be textual, 
wouldn't they?

Also, IMHO, even config could be stored in metrics. Even though that is a bit 
of a stretch, configuration is after all a time series of structured data...

You're right that at the moment numeric doesn't add much information. So maybe 
instead of that, the type would specify what should be done with the metric?

Something along the lines of dropwizard-metrics' distinction between a meter, 
counter, gauge, histogram, etc?

So like:

http://asdf.com/hawkular/metrics/tenant1/histogram/{id}
http://asdf.com/hawkular/metrics/tenant1/counter/{id}


My aggregate metrics design doc[1] talks about formally introducing gauges and counters. The question I have about endpoints like this is what about pushing a batch of metrics? Do we need to make a separate request for each type? That seems cumbersome and inefficient.

[1] http://bit.ly/1BAfF8d


I spent time today thinking about how we might implement counters. There is likely going to be different write paths and schema involved for counters and gauges; consquently, I think that the last suggestion from Lukas makes the most sense. We might have,

POST  /hawkular/metrics/tenant1/gauages
GET    /hawkular/metrics/tenant1/gauges
GET    /hawkular/metrics/tenant1/gauges/{id}

POST  /hawkular/metrics/tenant1/counters
GET    /hawkular/metrics/tenant1/counters 
GET    /hawkular/metrics/tenant1/counters/{id}

And to put my REST education to the test here, If I want to find out about the types of metrics that are supported, I would do a GET /hawkular/metrics/tenant1 and the response should tell me about gauges, counters, tags, etc.