[
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)