[ 
https://issues.apache.org/jira/browse/IGNITE-12145?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16927639#comment-16927639
 ] 

Nikolay Izhikov commented on IGNITE-12145:
------------------------------------------

* Basic interface for objects list is {{MonitoringList}}. It provides the 
following features:
 ** name.
 ** description.
 ** row class.
 ** size.
 ** iterator for the list content.
 ** attribute walker (described below).
 * MonitoringRow is a marker interface for classes that can be used as a 
monitoring list content.

Internally, there is only one implementation of {{MonitoringList}}, for now, 
{{MonitoringListAdapter}}.
 It adapts the content of some {{ConcurrentMap}} which uses widely in Ignite 
internals.
 I think, will be another implementation in the follow-up PRs.

Public API changes:

* New registry created {{ReadOnlyMonitoringListRegistry}} It provides access:
** To all lists that exist in the Ignite.
** Ability to subscribe to the list creation/removal events.
* {{MetricExporterSpi}} changes:
** {{setMonitoringListRegistry}} method added
** {{setMonitoringListExportFilter}} method added.


{{MonitoringRowAttributeWalker}} is a helper class for exporter implementations.
Usually, exporter SPI iterates on `MonitoringRow` attributes.
{{SqlViewExporterSpi}}, {{JmxMetricExporterSpi}} can be taken as an example.

It can be implemented with Java reflection API, but I use more quick approach.

{{MonitoringRowAttributeWalker}} can visit each attribute of the 
{{MonitoringRow}} implementation.
It's also, preserves, the order provided by the {{MonitoringRow}} 
implementation author.

> [IEP-35] Monitoring list engine
> -------------------------------
>
>                 Key: IGNITE-12145
>                 URL: https://issues.apache.org/jira/browse/IGNITE-12145
>             Project: Ignite
>          Issue Type: Sub-task
>    Affects Versions: 2.7.5
>            Reporter: Nikolay Izhikov
>            Assignee: Nikolay Izhikov
>            Priority: Major
>              Labels: IEP-35
>             Fix For: 2.8
>
>          Time Spent: 6h 50m
>  Remaining Estimate: 0h
>
> The base engine for the monitoring list.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to