> 1. Add ability to enable\disable subset of the metrics for collection:
> https://issues.apache.org/jira/browse/IGNITE-11927
> Am I right that the task will let us perform a desired configuration
MetricExporterSPI and its specific implementation?

This improvement should allow Ignite users to disable or enable
`MetricsRegistry` globally on the node.
When some `MetricRegistry` disabled then registry:
* Do not consume resources(CPU, RAM) to keep metrics values up to
date(don’t perform increment, decrement operations,  etc)
* Can’t be viewed in any exporter.

> Frankly, I couldn't figure out how to do that with
"setExportFilter(Predicate<ReadOnlyMetricRegistry> filter);"

With filter user can exclude arbitrary registry from arbitrary exporter.
Example of filtering out all cache metrics from JMX:

```
JmxMetricExporterSpi jmxSpi = new JmxMetricExporterSpi();
jmxSpi.setExportFilter(mreg -> !mreg.name().startsWith(«cache»));

cfg.setMetricExporterSpi(jmxSpi);
```

> 2. Extension of IgniteSpiContext in order to allow Ignite developers to
implement their own exporters

Please, clarify, your idea.
Exporters can be implemented without usage of the internal API.
You can look into JmxMetricExporterSpi as an example.

> 3. Adding/extending/removing public metrics related to the API facade.

I think we can start with a discussion and finishing Java API to read
metrics.
It implemented in my PR [1].

> 4. After registering an exporter with a node only a subset of metrics
gets updated. This is extremely confusing. Any way we can remove this
ambiguity?

Yes, it a bad thing.
And it’s known restriction of the current implementation that was
introduced to preserve backward compatibility.
It seems we can remove this restriction after  IGNITE-11927 would be
implemented.

> 5. The system view that should track compute tasks (views.tasks) is
always empty

TASKS reflects the running task that was started on the local node.
You can find an example of using this view in tests [2]
It seems we should add examples for the views.

The view to observe compute JOBS(parts of the task that are executed on the
remote node) was added by me in [3]
It’s not a part of 2.8.0 release but should be available in 2.8.1

> 6. Ignite MBeans are listed under "org.apache.{node_id}" but should be
placed under "org.apache.ignite.{node_id}".

Please, create a ticket and I will try to fix it.

> we can also add descriptions to MXBeans explaining what a metric is used
for.

Great idea! Let’s do it, for sure!
Please, create a ticket for it

> 8. Failed to use LogExporterSpi:

On my plate, I will fix it.

[1] https://github.com/apache/ignite/pull/7283
[2]
https://github.com/apache/ignite/blob/master/modules/core/src/test/java/org/apache/ignite/internal/metric/SystemViewSelfTest.java#L236
[3] https://issues.apache.org/jira/browse/IGNITE-12745


ср, 8 апр. 2020 г. в 23:10, Denis Magda <dma...@apache.org>:

> Igniters,
>
> There was a private discussion between Nikolay Izhikov, Andrey Gura, Alex
> Goncharuk and I some time ago where we attempted to outline a list of tasks
> to complete before announcing the feature in the GA state (removing the
> experimental flag from the new APIs and deprecating the legacy ones).
> Folks, with your permission, let me share the list first and next we can
> talk out each item in detail separately:
>
> 1. Add ability to enable\disable subset of the metrics for collection:
> https://issues.apache.org/jira/browse/IGNITE-11927
> Am I right that the task will let us perform a desired configuration
> MetricExporterSPI and its specific implementation? Frankly, I couldn't
> figure out how to do that
> with "setExportFilter(Predicate<ReadOnlyMetricRegistry> filter);" method --
> probably, that's just the matter of documentation.
>
> 2. Extension of IgniteSpiContext in order to allow Ignite developers to
> implement their own exporters (with no usage of the internal API).
>
> 3. Adding/extending/removing public metrics related to the API
> facade. Andrey, please elaborate on this item if needed.
>
> Also, I had a chance to experience the API in wearing a hat of an
> application developer while preparing for the Ignite 2.8 webinar. Please
> take into account my feedback below. Overall, I was impressed with the way
> the new system is designed and operates. All I had to do is just to
> register exporters and connect my favorite tool to the cluster. Kudos to
> Nikolay, Andrey and everyone else involved. So, that's my list and I ready
> to create JIRA tickets whenever is relevant:
>
> 4. After registering an exporter with a node only a subset of metrics gets
> updated. For instance, "GetTime_X" set of metrics belonging to a specific
> cache get updated all the times while CacheGets/Puts/Hits require me to
> enable "setStatisticsEnable(true)" for the cache. This is extremely
> confusing. Any way we can remove this ambiguity? Guess the same applies for
> memory and persistence metrics - there are old ones that might require to
> turn on "metricsEnabled" flag for data regions.
>
> 5. The system view that should track compute tasks (views.tasks) is always
> empty and I can see a number of tasks running via the compute.jobs
> registry
> or in "views.views" mxbean. Again, confusing from the application developer
> standpoint.
>
> 6. Ignite MBeans are listed under "org.apache.{node_id}" but should be
> placed under "org.apache.ignite.{node_id}". Guess this is left as is for
> now to preserve backward compatibility.
>
> 7. You see hundreds of metrics once connect through JMX and it's hard to
> sort out the valuable ones. The documentation can do a great job outlining
> the right ones but we can also add descriptions to MXBeans explaining what
> a metric is used for.
>
> 8. Failed to use LogExporterSpi:
> https://issues.apache.org/jira/browse/IGNITE-12880
>
> -
> Denis
>

Reply via email to