The use of mean and variance as histogram parameter names makes more
sense.
This also make it safe to use an empty histogram that holds no samples.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
This adds a Timer creation methods to the APIMetricsRegistry, the
newTimer method would create an APITimer and would pass it the url for
quering.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
This is a clean up in the APIMetricsRegistry. It replaces snake case to
camel case, and perform a better formatting of the code.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
The Timer object in the yammer library is used to regularly check a
histogram.
The APITimer is a Timer that uses the APIHistogram instead that in it
self calls the API to get its values.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
This patch replace the Histogram data and statistic calculation from the
JMX proxy to the API.
This way the count, sum, min, max variance and square sum are calculated
always on the server.
When an update is perform, the API would return the statistic with a
sample of the last n elements as a sample.
This implementation insure that the counters are correct. The
implementation also allows to set the minimal update interval.
The implementation adds a mutable getter for each of the parameters so
they could be set to their new value.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
The HistogramValue object is used by the APIClient to returns a
histogram object from the API.
It contains the values that are defined in utils.json
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
This change update the internal value on each time click, after this
change the rate calculation will be done on the proxy at the price of
continuesly query the server. It is yet to be determine if this is a
problem, if so, it is possible to do and store those calculation on the
server and just pull them on demend.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
The MetricsRegistry in yammer used to create metrics and register them
in the JMX.
The APIMetricsRegistry extends the functionality by accepting a URL
that the API will perform to retrieve the relevant data, it also creates
the API version of each of the requested Metric (i.e. APIMeter,
APICounter or APIHistogram)
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
Three of the Metric in the yammer library are based on data that is
pushed to them: Counter, Histogram and Meter.
This patch modify the specific functionality by inherit the original
Meter, keeping its functionality and API, and modify the way the data is
collected.
For Counter: A call to count will be implementing by calling the API to
retreive a value.
For Meter: A call to count will be implementing by calling the API to
retreive a value, similiar to count, but the timer aspect of the Meter
remains the same.
For histogram: Histogram uses an internal sample container. To mimic the
behaviour, a call to any of the historgram get functionality will update
the sample container first. A timestamp of the last update limits the
number of updates that will be done by the histogram.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>