Maxim. I’m +1 to do it.
> 1. Let's keep @deprecated annotation to notify users earlier. > 2. Let's fix javadoc comments for this annotation (remove internal > references). We also have a consensus to add IgniteExperimental annotation to the new metrics API. > 28 янв. 2020 г., в 19:05, Maxim Muzafarov <mmu...@apache.org> написал(а): > > Folks, > > > Let me share my humble opinion over this thread. The first priority > here is making Ignite better and taking the next step with releasing > Ignite's 2.8 version for our users (we've already done a great job > with metrics). > > According to this point of view and from the user perspective I'd like > to be notified about changing Ignite's architecture and concepts of > using metrics as early as possible not only through the public > documentation but through the code I write also. > > So, I see nothing strange by keeping @deprecated annotation (Javadoc > comments must be fixed, true): > 1. it's just a hint for users (we will notify them as earlier as > possible but they can still write a code using deprecated methods) > 2. users will be notified about new JmxMetricExporterSpi through the > code and documentation. > 3. it's a recommendation for developers that they should not add new > methods to the old facade. > > I also see nothing strange by removing @deprecated annotation > currently added to DataRegionMetrics interface. It's also OK if we are > still developing new facade and do not want to share some public API > changes with users because all the 2.8 release looks for me like an > experimental. > > > So, summarizing: > 1. Let's keep @deprecated annotation to notify users earlier. > 2. Let's fix javadoc comments for this annotation (remove internal > references). > 3. Let's do not too much debate here. This question isn't too > important compared to 23 critical release issues [1]. > > > Alexey, Andrey, Nikolay, > > Can we proceed this way? > > > P.S. > From the release managers view, it's sad to see such a discussions > about API changes and compatibility because we've discussed API at > July 2019 [3] and all issues with monitoring activities at October > 2019 [2]. > > > [1] > https://cwiki.apache.org/confluence/display/IGNITE/Apache+Ignite+2.8#ApacheIgnite2.8-Unresolvedissues(notrelatedtodocumentation) > [2] > http://apache-ignite-developers.2346864.n4.nabble.com/Apache-Ignite-2-8-RELEASE-Time-Scope-Manager-tp43616p43807.html > [3] https://issues.apache.org/jira/browse/IGNITE-11848 > > On Mon, 27 Jan 2020 at 22:23, Andrey Gura <ag...@apache.org> wrote: >> >>>> I just want to remove the deprecations on the classes for which there is >>>> no a well-defined replacement. >>> Well-defined replacement for these classes exists. >> >> Nikolay, statements like this are not arguments. At least because >> there are people who disagree with this. >> >> Current implementation is not well-defined due to API is not >> well-defined enough. Also there are lack of functionality >> (enabling/disabling metrics, requirement for end user to configure new >> exporter in order to get a couple of new metrics while it is still >> possible to use old MBeans but without this metrics) and potential >> performance problems (that couldn't be solved because metrics couldn't >> be switched off). >> >> We are walking in a circle instead of moving forward. On comments >> about API you provide new PRs that change API while denying problems >> with the API. This is illogical and process doesn't converge because >> it is attempt to close gaps in a hurry. >> >> The best we can do now is stop, take a deep breath and follow the >> offers of Alexey about deprecation, my proposal and Denis' idea about >> one additional iteration. >> >> On Mon, Jan 27, 2020 at 4:37 PM Nikolay Izhikov <nizhi...@apache.org> wrote: >>> >>>> it's better to remove deprecation for the old APIs in AI 2.8 >>> >>> Are you suggest to have 2 concurrent metrics implementations(both not >>> deprecated)? >>> >>>> Let's say I am writing a custom exporter in binary format and I need to >>>> write the number of exported metrics in a packet beforehand. >>> >>> This an `MetricExporterSPI` implementation task. >>> Exporter has the listeners that can be used to track all registry events - >>> creation, removal >>> >>>> There is no separation on public and internal metrics >>> >>> I think we should write in the documentation that ANY metric can be changed. >>> We will try to keep them, but if we found that some metric doesn’t required >>> any more or implemented in the wrong way - we can remove it. >>> >>>> Will we allow users to register their own metrics? >>> >>> No. Why we should considering this feature? >>> >>>> It's still not clear how a user will map old interfaces and methods to the >>>> new metric names. >>> >>> With the documentation. >>> We can write separate deprecation comment for each metric providing method. >>> >>>> I just want to remove the deprecations on the classes for which there is >>>> no a well-defined replacement. >>> >>> Well-defined replacement for these classes exists. >>> >>>> 27 янв. 2020 г., в 16:21, Alexey Goncharuk <alexey.goncha...@gmail.com> >>>> написал(а): >>>> >>>> Nikolay, >>>> >>>> I've reviewed your changes and I tend to agree with Andrey, it's better to >>>> remove deprecation for the old APIs in AI 2.8 and discuss and merge the new >>>> facade (IGNITE-12553) in a more calm and structured way. My observations on >>>> the changes: >>>> >>>> - I am not sure if Iterable would suffice both for the exporter and >>>> public APIs. Should we provide a way to know the number of metrics and >>>> registries in advance? Let's say I am writing a custom exporter in binary >>>> format and I need to write the number of exported metrics in a packet >>>> beforehand. >>>> - There is no separation on public and internal metrics, when public >>>> metrics preserve their name and semantics, and internal metrics may >>>> change. >>>> I remember we discussed this, but it's not reflected in the APIs in any >>>> way. >>>> - Will we allow users to register their own metrics? Again I remember we >>>> discussed a possibility for this. If so, why the registry is called >>>> 'ReadyOnly'? >>>> - It's still not clear how a user will map old interfaces and methods to >>>> the new metric names. >>>> >>>> As you can see in the original message, I am not pushing for the new APIs >>>> in the nearest release, I just want to remove the deprecations on the >>>> classes for which there is no a well-defined replacement. >>>> >>>> пн, 27 янв. 2020 г. в 15:56, Maxim Muzafarov <mmu...@apache.org>: >>>> >>>>> Folks, >>>>> >>>>> >>>>> I'm sorry for not being too attentive to the whole thread discussion >>>>> and maybe missing some details. >>>>> >>>>> But... who will perform the review of [1] issue? >>>>> Will we merge it to 2.8? (hope so) >>>>> >>>>> >>>>> [1] https://issues.apache.org/jira/browse/IGNITE-12553 >>>>> [IEP-35] public Java metric API >>>>> >>>>> On Sat, 25 Jan 2020 at 11:43, Николай Ижиков <nizhi...@apache.org> wrote: >>>>>> >>>>>> Andrey. >>>>>> >>>>>> With this API we are trying to fill the GAP Alexey pointed out at the >>>>> start of this discussion. >>>>>> I think it worth to be reviewed and merged. >>>>>> >>>>>> Can we, please, come back to the discussion of the changes itself? >>>>>> I think API changes should be discussed in the other thread. >>>>>> >>>>>>> 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 >>>>>> >>>>>> [1] https://github.com/apache/ignite/pull/7283 >>>>>> >>>>>>> 24 янв. 2020 г., в 18:08, Andrey Gura <ag...@apache.org> написал(а): >>>>>>> >>>>>>>> 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. >>>>>>> >>>>>>> Argument is not about time. But about API which is known will be >>>>> changed. >>>>>>> Second argument: why we should add this experimental API to the >>>>>>> already existing experimental API? Just to making API more >>>>>>> experimental? As I told already it is commit for commit and doesn't >>>>>>> bring any value but brings some inconvenience to me (e.g. merge >>>>>>> problems). >>>>>>> >>>>>>> BTW, does it exist issue about marking IEP-35 API's as experimental? >>>>>>> >>>>>>> On Thu, Jan 23, 2020 at 8:33 PM Николай Ижиков <nizhi...@apache.org> >>>>> wrote: >>>>>>>> >>>>>>>>> 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 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>> >>>>>> >>>>> >>>