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)

Reply via email to