> You want say didn't discuss? Yes.
> Secondly, yes it took a lot of time due to a lot of changes. Is it problem? No, of course. My point - that your contribution that took a long time, already, can’t be an argument to postpone creation of the API in the current release. > 23 янв. 2020 г., в 18:11, Andrey Gura <ag...@apache.org> написал(а): > >> We don’t discuss your changes and your proposals for the Metric API. > > You want say didn't discuss? Actually we did it [1] but you told ok > let's see code :) > >> So I don’t think we can make the existence of some PR is an argument to >> introduce(or not introduce) this facade. > > You definitely right in case of competition development. But I think > that collaborative development is more effective. Isn't it? > >> Moreover, As far as I know, you developing changes for the Metric API for 5 >> months without public discussion, for now. Let's start it. > > Firsty, with discussion. See above. > Secondly, yes it took a lot of time due to a lot of changes. Is it problem? > >> Let’s do the following: >> 1. Review `IgniteMetric` facade and introduce it to the users as an >> experimental API. > > It just doesn't make sense. Just commit for commit. > >> 2. Discuss your proposal to the Metric API in the separate thread you are >> referencing. > > You a re welcome to thread [1] again. But please, take into account. > because discussion is postponed by you it's late enough to discuss > proposed solution. But of course I'll answer on your questions and > will be glade to your comments and suggestions. > >> I think we should start a discussion from the simplified explanation of: >> 1. API intentions - What we want to gain with it? What is our focus? >> 2. Simple, minimal example of API main interfaces and desired usages. > > All this already described at [1]. You also can take a look on PR (see > MetricSource implementations, there are complex and simple ones). > > [1] > http://apache-ignite-developers.2346864.n4.nabble.com/IEP-35-Metrics-management-in-Ignite-tp43243.html > > On Thu, Jan 23, 2020 at 5:42 PM Николай Ижиков <nizhi...@apache.org> wrote: >> >> Andrey. >> >>> IGNITE-11927 implementation so your changes are incompatible with my changes >> >> We don’t discuss your changes and your proposals for the Metric API. >> So I don’t think we can make the existence of some PR is an argument to >> introduce(or not introduce) this facade. >> Moreover, As far as I know, you developing changes for the Metric API for 5 >> months without public discussion, for now. Let's start it. >> >> Let’s do the following: >> >> 1. Review `IgniteMetric` facade and introduce it to the users as an >> experimental API. >> >> 2. Discuss your proposal to the Metric API in the separate thread you are >> referencing. >> >> I think we should start a discussion from the simplified explanation of: >> >> 1. API intentions - What we want to gain with it? What is our focus? >> 2. Simple, minimal example of API main interfaces and desired usages. >> >> This will help to the community and me personally better understand your >> idea and share feedback. >> >> Thanks. >> >>> 23 янв. 2020 г., в 17:15, Andrey Gura <ag...@apache.org> написал(а): >>> >>> Nikolay, >>> >>> as I wrote early in this thread API significantly changed during >>> IGNITE-11927 implementation so your changes are incompatible with my >>> changes. >>> >>> ReadOnlyMetricRegistry will be removed at all (still exists in a >>> couple of places where it uses). >>> >>> Also I don't want to introduce IgniteMetric facade in this rush. In >>> current implementation this interface just provides access to the >>> ReadOnlyMetricManager instance (which will be removed) but it is not >>> enough. >>> >>> I agree with Denis. We should mark current API as experimental and >>> continue IEP-35 development. See my process proposal [1] described >>> early this thread. We can release Apache Ignite 2.8.1 specially for >>> this changes. >>> Public APIs require deeper thinking in order to provide comprehensive, >>> consistent and convenient way of metrics management for end users. >>> >>> Let's add IgniteExperimental, release 2.8 and finish metrics related >>> issues after it. >>> >>> [1] >>> http://apache-ignite-developers.2346864.n4.nabble.com/Internal-classes-are-exposed-in-public-API-tp45146p45185.html >>> >>> >>> On Wed, Jan 22, 2020 at 5:21 PM Николай Ижиков <nizhi...@apache.org> wrote: >>>> >>>> Hello, Igniters. >>>> >>>> * IGNITE-12552: Move ReadOnlyMetricRegistry to public API merged to the >>>> master and cherry-picked to the 2.8. >>>> So the main issue with the Metric API solved. >>>> >>>> * I raised the PR [1] to fix second issue with the new Metric API: absence >>>> of the public Java API to get metrics. >>>> This PR introduces the following changes: >>>> >>>> 1. IgniteMetric interface created: it provides Java API to access Ignite >>>> metrics created with the new Metric API. >>>> >>>> ``` >>>> public interface IgniteMetric extends Iterable<ReadOnlyMetricRegistry> { >>>> @Nullable ReadOnlyMetricRegistry registry(String name); >>>> } >>>> ``` >>>> >>>> 2. All deprecation javadocs regarding metrics now reference to the public >>>> IgniteMetric instead of internal GridMetricManager: >>>> >>>>> @deprecated Use {@link IgniteMetric} instead. >>>> >>>> 3. Tests refactored to use IgniteMetric instead of GridMetricManager when >>>> possible. >>>> >>>> Please, review. >>>> >>>> [1] https://github.com/apache/ignite/pull/7283 >>>> >>>>> 21 янв. 2020 г., в 17:51, Николай Ижиков <nizhikov....@gmail.com> >>>>> написал(а): >>>>> >>>>> Hello, Igniters. >>>>> >>>>> Alexey approved my PR [1] regarding fixing public API for metric >>>>> exporters. >>>>> I’m waiting for a bot visa and merge this PR. >>>>> >>>>> As we discussed, the metrics API will be marked with IgniteExperimental >>>>> annotation. >>>>> >>>>> If anyone has any objection to this plan, please provide your feedback. >>>>> >>>>> [1] https://github.com/apache/ignite/pull/7269 >>>>> >>>>>> 21 янв. 2020 г., в 13:45, Николай Ижиков <nizhikov....@gmail.com> >>>>>> написал(а): >>>>>> >>>>>> Thanks, for the review Alexey. >>>>>> >>>>>> I will fix your comment and try to implement Monitoring facade, shortly. >>>>>> >>>>>>> 21 янв. 2020 г., в 13:32, Alexey Goncharuk <alexey.goncha...@gmail.com> >>>>>>> написал(а): >>>>>>> >>>>>>> Nikolay, >>>>>>> >>>>>>> I left a single comment in the PR about the histogram metric. I think >>>>>>> the >>>>>>> API looks much cleaner now. >>>>>>> >>>>>>> I will take care of the @IgniteExperimental annotation. >>>>>>> >>>>>>> пн, 20 янв. 2020 г. в 20:55, Николай Ижиков <nizhi...@apache.org>: >>>>>>> >>>>>>>> Alexey. >>>>>>>> >>>>>>>> PR [1] is waiting for your review. >>>>>>>> Please, take a look. >>>>>>>> >>>>>>>> I think we should do the following before 2.8 release >>>>>>>> >>>>>>>> * Introduce new @IgniteExperimental annotation as discussed. >>>>>>>> * Mark Monitoring API with it. >>>>>>>> * merge «[IEP-35] Expose MetricRegistry to the public API» to 2.8 >>>>>>>> * merge «[IEP-35] public Java metric API» to 2.8 >>>>>>>> >>>>>>>> [1] https://github.com/apache/ignite/pull/7269 >>>>>>>> >>>>>>>>> 20 янв. 2020 г., в 17:09, Alexey Goncharuk >>>>>>>>> <alexey.goncha...@gmail.com> >>>>>>>> написал(а): >>>>>>>>> >>>>>>>>> Nikolay, >>>>>>>>> >>>>>>>>> Should we wait for both of the tickets given that we agreed that we >>>>>>>>> are >>>>>>>>> putting an experimental marker on the new APIs? I'm ok to fix only the >>>>>>>>> first one and add the experimental marker so that we do not delay 2.8 >>>>>>>>> release. >>>>>>>>> >>>>>>>>> пн, 20 янв. 2020 г. в 13:32, Николай Ижиков <nizhi...@apache.org>: >>>>>>>>> >>>>>>>>>> Andrey. >>>>>>>>>> >>>>>>>>>> Let’s move from the long letters to the code. >>>>>>>>>> If you want to change API - please, propose this changes. >>>>>>>>>> I think everybody wins if we make our API better. >>>>>>>>>> >>>>>>>>>> Please, describe proposed changes. >>>>>>>>>> It would be great if you have some examples or PR for it. >>>>>>>>>> >>>>>>>>>> As for this release, I have plans to contribute tickets >>>>>>>>>> «[IEP-35] Expose MetricRegistry to the public API» [1] and >>>>>>>>>> «[IEP-35] public Java metric API» [2] for it. >>>>>>>>>> >>>>>>>>>> Any objections on it? >>>>>>>>>> >>>>>>>>>> [1] https://github.com/apache/ignite/pull/7269 >>>>>>>>>> [2] https://issues.apache.org/jira/browse/IGNITE-12553 >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> 20 янв. 2020 г., в 13:08, Andrey Gura <ag...@apache.org> написал(а): >>>>>>>>>>> >>>>>>>>>>> It solves problem. >>>>>>>>>>> >>>>>>>>>>> On Mon, Jan 20, 2020 at 12:09 PM Alexey Goncharuk >>>>>>>>>>> <alexey.goncha...@gmail.com> wrote: >>>>>>>>>>>> >>>>>>>>>>>> After giving it some thought, I agree with Denis - there is nothing >>>>>>>>>> wrong >>>>>>>>>>>> with exposing the new APIs, we just need to make it clear that we >>>>>>>>>>>> are >>>>>>>>>> still >>>>>>>>>>>> going to change it. >>>>>>>>>>>> >>>>>>>>>>>> Should we Introduce something like @IgniteExperimental annotation >>>>>>>>>>>> (I >>>>>>>>>>>> believe it has been discussed a dozen of times on the dev-list)? >>>>>>>>>>>> >>>>>>>>>>>> пт, 17 янв. 2020 г. в 23:28, Nikolay Izhikov <nizhi...@apache.org>: >>>>>>>>>>>> >>>>>>>>>>>>> +1 to mark feature or whole release as EA. >>>>>>>>>>>>> >>>>>>>>>>>>> пт, 17 янв. 2020 г., 23:00 Denis Magda <dma...@apache.org>: >>>>>>>>>>>>> >>>>>>>>>>>>>> Folks, if you don't mind I'll share some thoughts/suggestions as >>>>>>>>>>>>>> an >>>>>>>>>>>>>> observer who was not involved in the feature development. >>>>>>>>>>>>>> >>>>>>>>>>>>>> It's absolutely 'ok' to deprecate an API that is replaced with a >>>>>>>> much >>>>>>>>>>>>>> better version. However, we should do this only when the new APIs >>>>>>>> are >>>>>>>>>>>>>> production-ready. If there are still many limitations or open >>>>>>>>>>>>>> items >>>>>>>>>> then >>>>>>>>>>>>>> don't deprecate anything that exists and release the new APIs >>>>>>>>>> labeling as >>>>>>>>>>>>>> early access. What if release the improvements labeling as EA >>>>>>>> instead >>>>>>>>>> of >>>>>>>>>>>>>> hiding them completely? >>>>>>>>>>>>>> >>>>>>>>>>>>>> I would also encourage us to put aside emotions, don't blame or >>>>>>>> point >>>>>>>>>>>>>> fingers. This IEP is a great initiative and you both have already >>>>>>>>>> done a >>>>>>>>>>>>>> tremendous job by developing, architecting and reviewing changes. >>>>>>>>>> Just be >>>>>>>>>>>>>> respectful. Nobody is trying to block the feature from being >>>>>>>> released. >>>>>>>>>>>>>> Everyone would be glad to tap into improvements and start using >>>>>>>>>>>>>> them >>>>>>>>>> in >>>>>>>>>>>>>> prod. But if more time is needed for the GA let's reiterate a >>>>>>>>>>>>>> bit. >>>>>>>>>>>>>> >>>>>>>>>>>>>> - >>>>>>>>>>>>>> Denis >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Fri, Jan 17, 2020 at 12:24 PM Николай Ижиков < >>>>>>>> nizhi...@apache.org> >>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Also I agree with Alexey about introducing public >>>>>>>>>>>>>>>> IgniteMonitoring >>>>>>>>>>>>>> facade >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> This is not an issue with the API. >>>>>>>>>>>>>>> Just the new feature that doesn’t affects API. >>>>>>>>>>>>>>> Moreover, I create a ticket to fix it, already. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> It's right. But if you add checking of statisticsEnabling >>>>>>>>>>>>>>>> property >>>>>>>>>>>>> then >>>>>>>>>>>>>>> test will fail. It's just not good tests. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> My changes doesn’t affect any `staticticsEnabled` property. >>>>>>>>>>>>>>> I don’ understand your point here. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Redundant ReadOnlyMetricRegistry. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> It’s not redundant. >>>>>>>>>>>>>>> It required for exporters and provide read only access to >>>>>>>>>>>>> MetricRegistry >>>>>>>>>>>>>>> existing in the node. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> MetricExporterSpi that requires ReadOnlyMetricRegistry. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Absence of newly created metrics in old MBeans that forces user >>>>>>>> use >>>>>>>>>>>>>>>> exporter SPI while his code base uses old MBeans. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Why this is issue? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Inconsistent MetricRegistry API. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> It’s consistent. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Metrics lookups from map instead of using direct reference >>>>>>>>>>>>>>>> (performance problem). >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> 1. We(You and I) did this choice together to simplify creation >>>>>>>>>>>>>>> of >>>>>>>> the >>>>>>>>>>>>> new >>>>>>>>>>>>>>> metrics. >>>>>>>>>>>>>>> 2. This is not public API issue. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Ignoring of statisticsEnabled flag. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I don’t ignore this flag. >>>>>>>>>>>>>>> It just doesn’t exists in new framework(because of scope). >>>>>>>>>>>>>>> I don’t think it’s an issue. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> JmxExporterSpi creates beans that doesn't satisfy best MBeans >>>>>>>>>>>>>> practices. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Please, clarify your statement. >>>>>>>>>>>>>>> What is best MBeans practices you are talking about? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Not finished IGNITE-11927 >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> How this can be API issue? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> 17 янв. 2020 г., в 20:52, Andrey Gura <ag...@apache.org> >>>>>>>>>> написал(а): >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> All issues Alexey mentioned in starting letter are fixed >>>>>>>>>>>>>>>>>> with my >>>>>>>>>> PR >>>>>>>>>>>>>>> [1]. >>>>>>>>>>>>>>>>>> I don’t think other issues you mentioned are blocker for the >>>>>>>>>>>>> release. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> As I mentioned already IGNITE-11927 is part of IEP-35 and >>>>>>>>>>>>>>>> implementation seriously affects API's. Also I agree with >>>>>>>>>>>>>>>> Alexey >>>>>>>>>>>>> about >>>>>>>>>>>>>>>> introducing public IgniteMonitoring facade. So thiss PR doesn't >>>>>>>> fix >>>>>>>>>>>>>>>> all issues. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> I talk about ignored existing functionality. >>>>>>>>>>>>>>>>> There is no existing tests that was broken by this >>>>>>>>>>>>>>>>> contribution. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> It's right. But if you add checking of statisticsEnabling >>>>>>>>>>>>>>>> property >>>>>>>>>>>>>>>> then test will fail. It's just not good tests. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> If you know the issues with it, feel free to create a ticket I >>>>>>>> will >>>>>>>>>>>>>> fix >>>>>>>>>>>>>>> it ASAP. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I already fix it all in IGNITE-11927 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> 1. Moving IEP-35 API's to the internal package. >>>>>>>>>>>>>>>>> We should move the product forward and shouldn't hide major >>>>>>>>>>>>>>> contribution from the user just because your second guess «I >>>>>>>>>>>>>>> don’t >>>>>>>>>> like >>>>>>>>>>>>>> the >>>>>>>>>>>>>>> API I just reviewed and approved». >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> We should move the product forward with with really finished >>>>>>>>>>>>> features, >>>>>>>>>>>>>>>> not pieces of features. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> So I am against this proposal. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> It is not argument. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> But, I’m ready to see your proposal for the API change and >>>>>>>> discuss >>>>>>>>>>>>>> them. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> We can prepare it together. But we can't block release. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Because IGNITE-11927 doesn't solve all problems >>>>>>>>>>>>>>>>> What is *ALL* problems? >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Redundant ReadOnlyMetricRegistry. >>>>>>>>>>>>>>>> MetricExporterSpi that requires ReadOnlyMetricRegistry. >>>>>>>>>>>>>>>> Absence of newly created metrics in old MBeans that forces user >>>>>>>> use >>>>>>>>>>>>>>>> exporter SPI while his code base uses old MBeans. >>>>>>>>>>>>>>>> Inconsistent MetricRegistry API. >>>>>>>>>>>>>>>> Metrics lookups from map instead of using direct reference >>>>>>>>>>>>>>>> (performance problem). >>>>>>>>>>>>>>>> Ignoring of statisticsEnabled flag. >>>>>>>>>>>>>>>> JmxExporterSpi creates beans that doesn't satisfy best MBeans >>>>>>>>>>>>>> practices. >>>>>>>>>>>>>>>> Not finished IGNITE-11927 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> It's enough I believe. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Fri, Jan 17, 2020 at 7:28 PM Николай Ижиков < >>>>>>>> nizhi...@apache.org >>>>>>>>>>> >>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Andrey. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> All issues Alexey mentioned in starting letter are fixed with >>>>>>>>>>>>>>>>> my >>>>>>>> PR >>>>>>>>>>>>>> [1]. >>>>>>>>>>>>>>>>> I don’t think other issues you mentioned are blocker for the >>>>>>>>>>>>> release. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> I talk about ignored existing functionality. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> There is no existing tests that was broken by this >>>>>>>>>>>>>>>>> contribution. >>>>>>>>>>>>>>>>> If you know the issues with it, feel free to create a ticket I >>>>>>>> will >>>>>>>>>>>>>> fix >>>>>>>>>>>>>>> it ASAP. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> 1. Moving IEP-35 API's to the internal package. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> We should move the product forward and shouldn't hide major >>>>>>>>>>>>>>> contribution from the user just because your second guess «I >>>>>>>>>>>>>>> don’t >>>>>>>>>> like >>>>>>>>>>>>>> the >>>>>>>>>>>>>>> API I just reviewed and approved». >>>>>>>>>>>>>>>>> So I am against this proposal. >>>>>>>>>>>>>>>>> But, I’m ready to see your proposal for the API change and >>>>>>>> discuss >>>>>>>>>>>>>> them. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Because IGNITE-11927 doesn't solve all problems >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> What is *ALL* problems? >>>>>>>>>>>>>>>>> Seems, we never be able to solve *ALL* problems. >>>>>>>>>>>>>>>>> But, we should move the product forward. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> As for your steps [1-6]. >>>>>>>>>>>>>>>>> I’m always following these steps during my contribution. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> [1] https://github.com/apache/ignite/pull/7269 >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> 17 янв. 2020 г., в 19:08, Andrey Gura <ag...@apache.org> >>>>>>>>>>>>> написал(а): >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> The discussion is hot and can be endless. So in separate >>>>>>>>>>>>>>>>>> post I >>>>>>>>>>>>> want >>>>>>>>>>>>>>>>>> propose my solution. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> 1. Moving IEP-35 API's to the internal package. >>>>>>>>>>>>>>>>>> 2. Create special feature branch B. >>>>>>>>>>>>>>>>>> 3. In branch B will be merged IGNITE-11927 >>>>>>>>>>>>>>>>>> 4. Because IGNITE-11927 doesn't solve all problems we should >>>>>>>>>>>>> propose >>>>>>>>>>>>>>>>>> solution and implement it in branch B. >>>>>>>>>>>>>>>>>> 5. Testing, usability testing, fixing, etc iteratively. >>>>>>>>>>>>>>>>>> 6. Merge it to master and in new release branch if needed. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Independent step. There are some problem which should be >>>>>>>>>>>>>>>>>> fixed >>>>>>>> in >>>>>>>>>>>>> 2.8 >>>>>>>>>>>>>>>>>> before release otherwise we introduce problems with >>>>>>>> compatibility >>>>>>>>>>>>>>>>>> which will haunt us till next major release. I'll create >>>>>>>> tickets. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On Fri, Jan 17, 2020 at 7:03 PM Andrey Gura >>>>>>>>>>>>>>>>>> <ag...@apache.org> >>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Because it is brand new API and it requires rewrite client >>>>>>>>>> code. >>>>>>>>>>>>>>>>>>>> We doesn’t break backward compatibility. >>>>>>>>>>>>>>>>>>>> The message is - this interface would be remove in the next >>>>>>>>>> major >>>>>>>>>>>>>>> release. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> We don't know anything about development processes our >>>>>>>>>>>>>>>>>>> users. I >>>>>>>>>>>>> can >>>>>>>>>>>>>>>>>>> admit that process could require that deprecated >>>>>>>>>>>>>>>>>>> methods/APIs >>>>>>>> are >>>>>>>>>>>>>> not >>>>>>>>>>>>>>>>>>> allowed for example. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> ReadOnlyMetricRegistry >>>>>>>>>>>>>>>>>>>>> Form user stand point it is very strange interface which >>>>>>>> don't >>>>>>>>>>>>>> give >>>>>>>>>>>>>>> me any information about it’s purpose and responsibilities. >>>>>>>>>>>>>>>>>>>>> Seems, I should explain proposed changes [1] more clear: >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> I understand this. But I'm not Ignite user, I'm Ignite >>>>>>>> developer. >>>>>>>>>>>>>> The >>>>>>>>>>>>>>>>>>> key moment in my message *from user stand point*. From my >>>>>>>>>>>>>>>>>>> point >>>>>>>>>> of >>>>>>>>>>>>>>>>>>> view it is very not intuitive solution and this interface is >>>>>>>>>>>>>>>>>>> redundant. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Actually not. We have statisticsEnabled for caches for >>>>>>>> example. >>>>>>>>>>>>>>> There are other entities with such flag. >>>>>>>>>>>>>>>>>>>> They still works as expected. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Actually not. I fixed many such issues during IGNITE-11927 >>>>>>>>>>>>>>> implementation. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Why do you decided do in such way? >>>>>>>>>>>>>>>>>>>> Because of the scope. >>>>>>>>>>>>>>>>>>>> The ability to disable/enable metrics is the matter of the >>>>>>>> other >>>>>>>>>>>>>>> ticket. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> I talk not about ability. I talk about ignored existing >>>>>>>>>>>>>> functionality. >>>>>>>>>>>>>>>>>>> So scope is not case here. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> But they should not be exported by MetricExporterSpi >>>>>>>>>>>>>>> implementations. >>>>>>>>>>>>>>>>>>>> Actually, it’s a responsibility of the exporter to decide. >>>>>>>>>>>>>>>>>>>> JMX exporter can exports ObjectMetric while OpenCensus >>>>>>>> exporter >>>>>>>>>>>>>>> can’t. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Actually list is not metric at all as I already told. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> On Fri, Jan 17, 2020 at 5:26 PM Николай Ижиков < >>>>>>>>>>>>> nizhi...@apache.org >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Andrey. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Because it is brand new API and it requires rewrite client >>>>>>>>>> code. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> We doesn’t break backward compatibility. >>>>>>>>>>>>>>>>>>>> The message is - this interface would be remove in the next >>>>>>>>>> major >>>>>>>>>>>>>>> release. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> ReadOnlyMetricRegistry >>>>>>>>>>>>>>>>>>>>> Form user stand point it is very strange interface which >>>>>>>> don't >>>>>>>>>>>>>> give >>>>>>>>>>>>>>> me any information about it’s purpose and responsibilities. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Seems, I should explain proposed changes [1] more clear: >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Each SPI would have a `ReadOnlyMetricManager` which >>>>>>>>>>>>>>>>>>>> provides >>>>>>>>>>>>> access >>>>>>>>>>>>>>> to collection of `ReadOnlyMetricRegistry` >>>>>>>>>>>>>>>>>>>> which has a collection of `Metric`. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> So we reflects two-level structure we have in the internal >>>>>>>>>>>>>>>>>>>> API >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> GridMetricManager -> Collection[MetricRegistry] -> >>>>>>>>>>>>>> Collection[Metric] >>>>>>>>>>>>>>>>>>>> ReadOnlyMetricManager -> >>>>>>>>>>>>>>>>>>>> Collection[ReadOnlyMetricRegistry] -> >>>>>>>>>>>>>>> Collection[Metric] >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Actually not. We have statisticsEnabled for caches for >>>>>>>> example. >>>>>>>>>>>>>>> There are other entities with such flag. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> They still works as expected. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Why do you decided do in such way? >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Because of the scope. >>>>>>>>>>>>>>>>>>>> The ability to disable/enable metrics is the matter of the >>>>>>>> other >>>>>>>>>>>>>>> ticket. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> But they should not be exported by MetricExporterSpi >>>>>>>>>>>>>>> implementations. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Actually, it’s a responsibility of the exporter to decide. >>>>>>>>>>>>>>>>>>>> JMX exporter can exports ObjectMetric while OpenCensus >>>>>>>> exporter >>>>>>>>>>>>>>> can’t. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> [1] >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>> >>>>>>>> https://github.com/apache/ignite/pull/7269/files#diff-0ae5657231fc4c1f650493b02190b81bR25 >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> 17 янв. 2020 г., в 16:57, Andrey Gura <ag...@apache.org> >>>>>>>>>>>>>>> написал(а): >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> If I’m not missing something, you were one of the active >>>>>>>>>>>>>> reviewers >>>>>>>>>>>>>>> of the Metric API. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Yes. But if I'm not missing some thing you were major >>>>>>>> developer >>>>>>>>>>>>> of >>>>>>>>>>>>>>>>>>>>> Metric API :) Shit happens. And it happened. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> The first, I agree with Alexey about deprecation of APIs >>>>>>>> that >>>>>>>>>>>>>> are >>>>>>>>>>>>>>> still supported and don't offer reasonable substitution. >>>>>>>>>>>>>>>>>>>>>> It has - MetricExporterSPI. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> There is such concept - backward compatibility. I >>>>>>>>>>>>>>>>>>>>> understand >>>>>>>>>>>>> that >>>>>>>>>>>>>>>>>>>>> deprecation of some interface doesn't break backward >>>>>>>>>>>>> compatibility >>>>>>>>>>>>>>> but >>>>>>>>>>>>>>>>>>>>> it leads to question^ what should I use instead of this. >>>>>>>>>>>>>>>>>>>>> And >>>>>>>>>>>>>>>>>>>>> MetricExporterSpi is not answer for this question. >>>>>>>>>>>>>>>>>>>>> Because it >>>>>>>>>> is >>>>>>>>>>>>>>> brand >>>>>>>>>>>>>>>>>>>>> new API and it requires rewrite client code. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> ReadOnlyMetricRegistry interface is redundant. >>>>>>>>>>>>>>>>>>>>>> It’s an interface that exposes internal MetricRegistry >>>>>>>>>>>>>>>>>>>>>> to >>>>>>>> the >>>>>>>>>>>>>>> exporters. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> No it is not. It's completely artificial thing which allow >>>>>>>>>>>>> iterate >>>>>>>>>>>>>>> via >>>>>>>>>>>>>>>>>>>>> all metric registries. GridMetricManager implements this >>>>>>>>>>>>> interface >>>>>>>>>>>>>>>>>>>>> while it is not metric registry. Form user stand point it >>>>>>>>>>>>>>>>>>>>> is >>>>>>>>>>>>> very >>>>>>>>>>>>>>>>>>>>> strange interface which don't give me any information >>>>>>>>>>>>>>>>>>>>> about >>>>>>>>>> it's >>>>>>>>>>>>>>>>>>>>> purpose and responsibilities. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> Exporters expose metrics if they are disabled. >>>>>>>>>>>>>>>>>>>>>> We don’t have an ability to disable metrics. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Actually not. We have statisticsEnabled for caches for >>>>>>>> example. >>>>>>>>>>>>>>> There >>>>>>>>>>>>>>>>>>>>> are other entities with such flag. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> And that done, intentionally. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Why do you decided do in such way? Why you ignore existing >>>>>>>>>>>>>>>>>>>>> functionality? It affects user expectations and >>>>>>>>>>>>>>>>>>>>> experience. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> You are working on this issue, aren’t you? >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Yes? I'm working. Unfortunately we are not synchronized in >>>>>>>> this >>>>>>>>>>>>>>>>>>>>> context and I should redo all metrics related changes in >>>>>>>> order >>>>>>>>>>>>> to >>>>>>>>>>>>>>>>>>>>> merge it with my changes. Anyway, my change doesn't solve >>>>>>>>>>>>>>>>>>>>> all >>>>>>>>>>>>>>> problems >>>>>>>>>>>>>>>>>>>>> (e.g. it doesn't introduce IgniteMonitoring facade). >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> I can fix this issue, by myself. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Unfortunately it will be just fix. In my solution it is >>>>>>>>>>>>> redesign. >>>>>>>>>>>>>>> Stop >>>>>>>>>>>>>>>>>>>>> fixing issues, let's do things. It requires deeper >>>>>>>>>>>>>>>>>>>>> changes. >>>>>>>> My >>>>>>>>>>>>>>> changes >>>>>>>>>>>>>>>>>>>>> blocks AI 2.8 release because it big enough. So it >>>>>>>>>>>>>>>>>>>>> retargeted >>>>>>>>>> on >>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>>>>> next release. And it is one more reason for moving the >>>>>>>> changes >>>>>>>>>>>>> to >>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>>>>> internal packages. And it isn't good news for me because I >>>>>>>> will >>>>>>>>>>>>> go >>>>>>>>>>>>>>>>>>>>> throughout pan and tiers of merge. But it is right. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> Metrics of type lists are not metric at all. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> They are created to deal with backward compatibility. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> Metrics of type lists are not metric at all. >>>>>>>>>>>>>>>>>>>>>> They are created to deal with backward compatibility. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Yes, I know. But they should not be exported by >>>>>>>>>>>>> MetricExporterSpi >>>>>>>>>>>>>>>>>>>>> implementations. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> On Fri, Jan 17, 2020 at 3:37 PM Николай Ижиков < >>>>>>>>>>>>>> nizhi...@apache.org> >>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> Andrey, thanks for your opinion and your ownest >>>>>>>>>>>>>>>>>>>>>> critisism. >>>>>>>>>>>>>>>>>>>>>> I can’t wait for your contribution. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> If I’m not missing something, you were one of the active >>>>>>>>>>>>>> reviewers >>>>>>>>>>>>>>> of the Metric API. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> The first, I agree with Alexey about deprecation of APIs >>>>>>>> that >>>>>>>>>>>>>> are >>>>>>>>>>>>>>> still supported and don't offer reasonable substitution. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> It has - MetricExporterSPI. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> The second, from my point of view, we can't recommend >>>>>>>>>>>>>>> MetricExporterSpi's because it are still not-production ready. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> It’s ready. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> The third, moving of MetricRegistry to the public API >>>>>>>> doesn't >>>>>>>>>>>>>>> solve the problem because this interface exposes internal Metric >>>>>>>>>>>>>> interface >>>>>>>>>>>>>>> implementations. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> Not, its’ not. >>>>>>>>>>>>>>>>>>>>>> Please, see `org.apache.ignite.spi.metric.LongMetric` and >>>>>>>>>> other >>>>>>>>>>>>>>> public interface. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> API of MetricRegistry is inconsistent. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> MetricRegistry is the internal API. >>>>>>>>>>>>>>>>>>>>>> Feel free to create ticket for an issues with it and I >>>>>>>>>>>>>>>>>>>>>> will >>>>>>>>>> try >>>>>>>>>>>>>> to >>>>>>>>>>>>>>> fix it. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> ReadOnlyMetricRegistry interface is redundant. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> It’s an interface that exposes internal MetricRegistry >>>>>>>>>>>>>>>>>>>>>> to >>>>>>>> the >>>>>>>>>>>>>>> exporters. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> Exporters expose metrics if they are disabled. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> We don’t have an ability to disable metrics. >>>>>>>>>>>>>>>>>>>>>> And that done, intentionally. >>>>>>>>>>>>>>>>>>>>>> You are working on this issue, aren’t you? >>>>>>>>>>>>>>>>>>>>>> I can fix this issue, by myself. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> Metrics of type lists are not metric at all. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> They are created to deal with backward compatibility. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> 17 янв. 2020 г., в 15:09, Andrey Gura <ag...@apache.org> >>>>>>>>>>>>>>> написал(а): >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> Hi, >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> The first, I agree with Alexey about deprecation of APIs >>>>>>>> that >>>>>>>>>>>>>> are >>>>>>>>>>>>>>>>>>>>>>> still supported and don't offer reasonable substitution. >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> The second, from my point of view, we can't recommend >>>>>>>>>>>>>>>>>>>>>>> MetricExporterSpi's because it are still not-production >>>>>>>>>> ready. >>>>>>>>>>>>>>> There >>>>>>>>>>>>>>>>>>>>>>> are some issues with it and usage of >>>>>>>>>>>>>>>>>>>>>>> ReadOnlyMetricRegistry >>>>>>>>>>>>>>> interface >>>>>>>>>>>>>>>>>>>>>>> just one of them. >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> The third, moving of MetricRegistry to the public API >>>>>>>> doesn't >>>>>>>>>>>>>>> solve >>>>>>>>>>>>>>>>>>>>>>> the problem because this interface exposes internal >>>>>>>>>>>>>>>>>>>>>>> Metric >>>>>>>>>>>>>>> interface >>>>>>>>>>>>>>>>>>>>>>> implementations. So your PR is incomplete. >>>>>>>>>>>>>>>>>>>>>>> Moreover, API of MetricRegistry is inconsistent. E.g. >>>>>>>>>>>>>>> register(name, >>>>>>>>>>>>>>>>>>>>>>> supplier, desc) method returns registered metric for >>>>>>>>>>>>>>>>>>>>>>> some >>>>>>>>>>>>> types >>>>>>>>>>>>>>> and >>>>>>>>>>>>>>>>>>>>>>> doesn't for other. register(metric) method is >>>>>>>>>>>>>>>>>>>>>>> inconsistent >>>>>>>> in >>>>>>>>>>>>>>> sense of >>>>>>>>>>>>>>>>>>>>>>> metric naming. ReadOnlyMetricRegistry interface is >>>>>>>> redundant. >>>>>>>>>>>>>>>>>>>>>>> MetricExporterSpi should be revised because it >>>>>>>>>>>>>>>>>>>>>>> absolutely >>>>>>>> not >>>>>>>>>>>>>>>>>>>>>>> intuitive because it requires ReadOnlyMetricRegistry and >>>>>>>> it's >>>>>>>>>>>>>>> purpose >>>>>>>>>>>>>>>>>>>>>>> is undefined. >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> One more point. IEP-35 is still not fully implemented. >>>>>>>>>>>>>>>>>>>>>>> Some >>>>>>>>>>>>>>> things are >>>>>>>>>>>>>>>>>>>>>>> not taken into account. Exporters expose metrics if they >>>>>>>> are >>>>>>>>>>>>>>> disabled. >>>>>>>>>>>>>>>>>>>>>>> JMX beans exposes values that don't confirm to best >>>>>>>> practices >>>>>>>>>>>>>> [1]. >>>>>>>>>>>>>>>>>>>>>>> Metrics of type lists are not metric at all. Ubiquitous >>>>>>>>>> merics >>>>>>>>>>>>>>> lookup >>>>>>>>>>>>>>>>>>>>>>> from hash map instead of usage reference for getting >>>>>>>> metrics >>>>>>>>>>>>>>> values >>>>>>>>>>>>>>>>>>>>>>> (it is just performance issue). Also IGNITE-11927 is not >>>>>>>>>>>>>>> implemented >>>>>>>>>>>>>>>>>>>>>>> which also changes interfaces significantly. >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> Let's just admit that the implementation is immature and >>>>>>>> must >>>>>>>>>>>>> be >>>>>>>>>>>>>>> moved >>>>>>>>>>>>>>>>>>>>>>> to the internal packages. >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> And because we already merged partially implemented IEP >>>>>>>>>>>>>>>>>>>>>>> to >>>>>>>>>> the >>>>>>>>>>>>>>> master >>>>>>>>>>>>>>>>>>>>>>> branch we *must move all currently public APIs to the >>>>>>>>>> internal >>>>>>>>>>>>>>> API* >>>>>>>>>>>>>>>>>>>>>>> while it will not be ready for publication. >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> And the last but not least. What is happening indicates >>>>>>>>>>>>>>>>>>>>>>> a >>>>>>>>>>>>>> immature >>>>>>>>>>>>>>>>>>>>>>> development process which must be revised. I don't want >>>>>>>>>>>>> discuss >>>>>>>>>>>>>>> it in >>>>>>>>>>>>>>>>>>>>>>> this thread but we must not allow merge of change to the >>>>>>>>>>>>> master >>>>>>>>>>>>>>> branch >>>>>>>>>>>>>>>>>>>>>>> before it will completed, that is we must use feature >>>>>>>>>> branches >>>>>>>>>>>>>> for >>>>>>>>>>>>>>>>>>>>>>> full IEP not only for particular tickets. And also we >>>>>>>> should >>>>>>>>>>>>>>>>>>>>>>> reformulate IEP process in order to avoid things like >>>>>>>>>>>>>>>>>>>>>>> this. >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> [1] >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>> >>>>>>>> https://www.oracle.com/technetwork/java/javase/tech/best-practices-jsp-136021.html >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> On Fri, Jan 17, 2020 at 12:49 PM Николай Ижиков < >>>>>>>>>>>>>>> nizhi...@apache.org> wrote: >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> Alex. >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> OK, I may leverage your experience and create pure Java >>>>>>>> API. >>>>>>>>>>>>>>>>>>>>>>>> Ticket [1] created. >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> But, personally, I don’t agree with you. >>>>>>>>>>>>>>>>>>>>>>>> Ignite has dozens of the API that theoretically have a >>>>>>>> usage >>>>>>>>>>>>>>> scenario, but in real-world have 0 custom implementation and >>>>>>>> usages. >>>>>>>>>>>>>>>>>>>>>>>> Moreover, many APIs that were created with the >>>>>>>>>>>>>>>>>>>>>>>> intentions >>>>>>>>>> you >>>>>>>>>>>>>>> mentioned is abandoned now and confuses users. >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> You can just see count of the tests we just mute on the >>>>>>>> TC. >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> Can you, please, take a look at the fix regarding puck >>>>>>>>>>>>>>>>>>>>>>>> API >>>>>>>>>>>>>> issue >>>>>>>>>>>>>>> you mentioned in your first letter [2], [3] >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> [1] https://issues.apache.org/jira/browse/IGNITE-12553 >>>>>>>>>>>>>>>>>>>>>>>> [2] https://github.com/apache/ignite/pull/7269 >>>>>>>>>>>>>>>>>>>>>>>> [3] https://issues.apache.org/jira/browse/IGNITE-12552 >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> 17 янв. 2020 г., в 12:12, Alexey Goncharuk < >>>>>>>>>>>>>>> alexey.goncha...@gmail.com> написал(а): >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> Nikolay, >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> Why do you think this is a wrong usage pattern? From >>>>>>>>>>>>>>>>>>>>>>>>> the >>>>>>>>>> top >>>>>>>>>>>>>> of >>>>>>>>>>>>>>> my head, >>>>>>>>>>>>>>>>>>>>>>>>> here is a few cases of direct metric API usage that I >>>>>>>> know >>>>>>>>>>>>> are >>>>>>>>>>>>>>> currently >>>>>>>>>>>>>>>>>>>>>>>>> being used in production: >>>>>>>>>>>>>>>>>>>>>>>>> * A custom task execution scheduling service with load >>>>>>>>>>>>>>> balancing based on >>>>>>>>>>>>>>>>>>>>>>>>> utilization metrics readings from Java code >>>>>>>>>>>>>>>>>>>>>>>>> * Cleanup task trigger based on metrics readings >>>>>>>>>>>>>>>>>>>>>>>>> * A custom health-check endpoint for an application >>>>>>>>>>>>>>>>>>>>>>>>> with >>>>>>>> an >>>>>>>>>>>>>>> embedded >>>>>>>>>>>>>>>>>>>>>>>>> Ignite node for Kubernetes/Spring Application/etc >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>> >>>>>>>> >>>>>> >>>>> >>>> >> >>