alex-plekhanov commented on a change in pull request #6845: IGNITE-12145: 
Monitoring list engine.
URL: https://github.com/apache/ignite/pull/6845#discussion_r323615290
 
 

 ##########
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/processors/metric/GridMetricManager.java
 ##########
 @@ -265,45 +378,116 @@ public MetricRegistry registry(String name) {
         return registries.computeIfAbsent(name, n -> {
             MetricRegistry mreg = new MetricRegistry(name, log);
 
-            notifyListeners(mreg, metricRegCreationLsnrs);
+            notifyListeners(mreg, metricRegCreationLsnrs, log);
 
             return mreg;
         });
     }
 
-    /** {@inheritDoc} */
-    @NotNull @Override public Iterator<MetricRegistry> iterator() {
-        return registries.values().iterator();
+    public <R extends MonitoringRow, D> void list(String name, String 
description,
+        Class<R> rowClazz, Supplier<ConcurrentMap<?, D>> data, Function<D, R> 
rowFunc, Consumer<D> clearer) {
+
+        Supplier<MonitoringList<R>> listCreator = () -> list(name, () -> new 
MonitoringListAdapter<>(name,
+            description,
+            rowClazz,
+            (MonitoringRowAttributeWalker<R>)walkers.get(rowClazz),
+            data.get(),
+            rowFunc));
+
+        //Create new instance of the list.
+        listCreator.get();
+
+        ctx.metric().addEnableListListener(listenOnlyEqual(name, identity(), n 
-> listCreator.get()));
 
 Review comment:
   > This will require one more additional listener map because we already have 
'List' of the listeners that comes from MonitoringExporterSpi
   
   I think it's fine to have addition list of listeners for 
`MonitoringExporterSpi`. So we will have one map of list removers and one list 
of listeners.
   
   > I expect very few enable/disable events, and from 10 to 20 lists over 
Ignite, so we shouldn't observe performance issues because of name check in 
listenOnlyEqual.
   
   It's mostly not a performance issue, but a wrongly used pattern issue (which 
leads to readability and undesirability issue).
   
   >  Seems, I'm already did it.
   
   Looks much better now!
   
   > What is the issue with the lambdas count, in the first place?
   > Do you see some issues with code readability, understandability?
   
   Yes, it's about readability and understandability.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to