Hi, Nikolay,

I looked through PR and IEP, and I have some comments:

It would be better to implement it as a separate module, I can't say
if it is possible for the main part of monitoring or not, but I
believe that HttpExposer with Jetty's dependencies should be detached
from the core module.

I like your approach with 'wrapper' for monitored objects, like
'ComputeTaskInfo' in PR, and don't like using 'ServiceConfiguration'
directly as a monitored object for services. I believe we shouldn't
mix approaches. It'd be better always use some kind of container with
monitored object's information to work with such data.

In my opinion, each sensor should have a timestamp. Usually monitoring
systems aggregate data and build graphics according to sensors
timestamp.

Also, it'd be great to have an ability to store a list of a fixed size
of last N sensors, not to miss them without pushing to an external
monitoring system.

It'd be great if you provide a more extended test to show the work of
the system. Everybody who looks to PR needs to run the test and get
the info manually to see the completeness of sensors, this might be
simplified by proper test.

Thank you!



On Fri, Apr 26, 2019 at 5:56 PM Nikolay Izhikov <nizhi...@apache.org> wrote:
>
> Hello, Igniters.
>
> I've prepared Proof of Concept for IEP-35 [1]
> PR can be found here - https://github.com/apache/ignite/pull/6510
>
> I've done following changes:
>
>         1. `GridMonitoringManager`  [2] - simple implementation of manager to 
> store all monitoring info
>         2. `HttpPullExposerSpi` [3] - pull exposer implementation that can 
> respond with JSON from http://localhost:8080/ignite/monitoring. JSON content 
> can be veiwed in gist [4]
>         3. Compute task start and finish monitoring in "compute" list [5]
>         4. Service registration are monitored in "service" list - [6]
>         5. Current `IgniteSpiMBeanAdapter` rewritten using 
> `GridMonitoringManager` [7]
>
> Design principles, monitoring subsystem details and new Ignite entities can 
> be found in IEP [1].
>
> My next steps will be:
>
>         1. Implementation of JMX exposer
>         2. Registration of all "lists" and "sensor groups" as a SQL System 
> view.
>         3. Add monitoring for all unmonitoring Ignite API. (described in IEP).
>         4. Rewrite existing jmx metrics using GridMonitoringManager.
>
> Please, share you thoughts.
>
> Part of JSON file:
> ```
>     "COMPUTE": {
>       "tasks": {
>         "name": "tasks",
>         "rows": [
>           {
>             "id": "0798817a-eeec-4386-9af7-94edb39ffced",
>             "sessionId": "a1814f95a61-912451ff-ca7b-4764-a7fd-728f6a900000",
>             "data": {
>               "taskClasName": 
> "org.apache.ignite.monitoring.MonitoringSelfTest$$Lambda$145/1500885480",
>               "startTime": 1556287337944,
>               "timeout": 9223372036854776000,
>               "execName": null
>             },
>             "name": "anotherBroadcast"
>           }
> ```
>
> [1] https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=112820392
> [2] 
> https://github.com/apache/ignite/pull/6510/files#diff-ec7d5cf5e35b99303deb9accee153c50R34
> [3] 
> https://github.com/apache/ignite/pull/6510/files#diff-32239c45e0ae3b692af2eae7078e1436R47
> [4] https://gist.github.com/nizhikov/aa1e6222e6a3456472b881b8deb0e24d
> [5] 
> https://github.com/apache/ignite/pull/6510/files#diff-d651ed29d07bd0c5ce291654a3254cc0R749
> [6] 
> https://github.com/apache/ignite/pull/6510/files#diff-0b4e54fbda2b0da1c10eff48416336f6R1606
> [7] 
> https://github.com/apache/ignite/pull/6510/files#diff-4398bf118150500e059069b3a1638ec7R61



-- 
Best Regards, Vyacheslav D.

Reply via email to