Alin Andrei Corodescu created IGNITE-6881:
---------------------------------------------
Summary: More flexible metrics aggregation
Key: IGNITE-6881
URL: https://issues.apache.org/jira/browse/IGNITE-6881
Project: Ignite
Issue Type: Wish
Security Level: Public (Viewable by anyone)
Reporter: Alin Andrei Corodescu
Priority: Minor
The current implementation of ClusterMetrics, while powerful, is not very
easily extensible. Through a single interface, it can provide both aggregated
and current metrics, and the aggregated ones are defined through interface
methods. Suppose I want to aggregate the metrics in some other way (compute
p90, median etc); I would have to record my own "metric history", which Ignite
already does under the hood, and compute the aggregates on that object. I
propose the following solution to this problem:
Expose the history of the metrics through an interface which can provide a List
of data points and the last recorded value for each metric. The last recorded
values could be used for current metric querying, while the list of data points
could be used for aggregation. Current aggregations could come implemented in
the Ignite distribution, but this design would allow for the user to implement
his/her own aggregations on the data.
Please feel free to correct me if I was wrong in any part about the current
implementation, as I did not have a lot of time allocated to this particular
task.
Another problem this would solve is the overhead of maintaining an interface
with so many methods. At the time I tested my implementation, I discovered that
some of the functions either returned 0 all the time or their documentation was
unclear on how the aggregation is made.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)