> I *think* this is arguably true for a vtable / CQL-based solution as well 
> from the "you don't know how people are using your API" perspective.

Very fair point and think that justifies a different thread to talk about 
backwards compatibility for our tables (virtual and not); maybe we can lump 
together the JMX backwards compatibility conversation as well in that new 
thread.

> On Jan 28, 2023, at 4:09 PM, Josh McKenzie <jmcken...@apache.org> wrote:
> 
> First off - thanks so much for putting in this effort Maxim! This is 
> excellent work.
> 
> Some thoughts on the CEP and responses in thread:
> 
>> Considering that JMX is usually not used and disabled in production 
>> environments for various performance and security reasons, the operator may 
>> not see the same picture from various of Dropwizard's metrics exporters and 
>> integrations as Cassandra's JMX metrics provide [1][2].
> I don't think this assertion is true. Cassandra is running in a lot of places 
> in the world, and JMX has been in this ecosystem for a long time; we need 
> data that is basically impossible to get to claim "JMX is usually not used in 
> C* environments in prod".
> 
>> I also wonder about if we should care about JMX?  I know many wish to 
>> migrate (its going to be a very long time) away from JMX, so do we need a 
>> wrapper to make JMX and vtables consistent?
> If we can move away from a bespoke vtable or JMX based implementation and 
> instead have a templatized solution each of these is generated from, that to 
> me is the superior option. There's little harm in adding new JMX endpoints 
> (or hell, other metrics framework integration?) as a byproduct of adding new 
> vtable exposed metrics; we have the same maintenance obligation to them as we 
> have to the vtables and if it generates from the same base data, we shouldn't 
> have any further maintenance burden due to its presence right?
> 
>> we wish to move away from JMX
> I do, and you do, and many people do, but I don't believe all people on the 
> project do. The last time this came up in slack the conclusion was "Josh 
> should go draft a CEP to chart out a path to moving off JMX while maintaining 
> backwards-compat w/existing JMX metrics for environments that are using them" 
> (so I'm excited to see this CEP pop up before I got to it! ;)). Moving to a 
> system that gives us a 0-cost way to keep JMX and vtable in sync over time on 
> new metrics seems like a nice compromise for folks that have built out 
> JMX-based maintenance infra on top of C*. Plus removing the boilerplate toil 
> on vtables. win-win.
> 
>> If we add a column to the end of the JMX row did we just break users?  
> I *think* this is arguably true for a vtable / CQL-based solution as well 
> from the "you don't know how people are using your API" perspective. Unless 
> we have clear guidelines about discretely selecting the columns you want from 
> a vtable and trust users to follow them, if people have brittle greedy 
> parsers pulling in all data from vtables we could very well break them as 
> well by adding a new column right? Could be wrong here; I haven't written 
> anything that consumes vtable metric data and maybe the obvious idiom in the 
> face of that is robust in the presence of column addition. /shrug
> 
> It's certainly more flexible and simpler to write to w/out detonating 
> compared to JMX, but it's still an API we'd be revving.
> 
> On Sat, Jan 28, 2023, at 4:24 PM, Ekaterina Dimitrova wrote:
>> Overall I have similar thoughts and questions as David.
>> 
>> I just wanted to add a reminder about this thread from last summer[1]. We 
>> already have issues with the alignment of JMX and Settings Virtual Table. I 
>> guess this is how Maxim got inspired to suggest this framework proposal 
>> which I want to thank him for! (I noticed he assigned CASSANDRA-15254)
>> 
>> Not to open the Pandora box, but to me the most important thing here is to 
>> come into agreement about the future of JMX and what we will do or not as a 
>> community. Also, how much time people are able to invest. I guess this will 
>> influence any directions to be taken here.
>> 
>> [1] 
>> https://lists.apache.org/thread/8mjcwdyqoobpvw2262bqmskkhs76pp69 
>> <https://lists.apache.org/thread/8mjcwdyqoobpvw2262bqmskkhs76pp69>
>> 
>> 
>> On Thu, 26 Jan 2023 at 12:41, David Capwell <dcapw...@apple.com 
>> <mailto:dcapw...@apple.com>> wrote:
>> I took a look and I see the result is an interface that looks like the 
>> vtable interface, that is then used by vtables and JMX?  My first thought is 
>> why not just use the vtable logic?
>> 
>> I also wonder about if we should care about JMX?  I know many wish to 
>> migrate (its going to be a very long time) away from JMX, so do we need a 
>> wrapper to make JMX and vtables consistent?  I am cool with something like 
>> the following
>> 
>> registerWithJMX(jmxName, query(“SELECT * FROM system_views.streaming”));
>> 
>> So if we want to have a JMX view that matches the table then that’s cool by 
>> me, but one thing that has been brought up in reviews is backwards 
>> compatibility with regard to adding columns… If we add a column to the end 
>> of the JMX row did we just break users?  
>> 
>>> Considering that JMX is usually not used and disabled in production 
>>> environments for various performance and security reasons, the operator may 
>>> not see the same picture from various of Dropwizard's metrics exporters
>> 
>> If this is a real problem people are hitting, we can always add the ability 
>> to push metrics to common systems with a pluggable way to add non-standard 
>> solutions.  Dropwizard already support this so would be low hanging fruit to 
>> address this.
>> 
>>> To make the proposed changes backwards compatible with the previous version 
>>> of Cassandra, all MBeans and Virtual Tables we already have will remain 
>>> unchanged
>> 
>> 
>> If this is for new JMX endpoints moving forward, I am not sure of the 
>> benefit for the same reason listed above; we wish to move away from JMX
>> 
>>> On Jan 25, 2023, at 10:51 AM, Maxim Muzafarov <mmu...@apache.org 
>>> <mailto:mmu...@apache.org>> wrote:
>>> 
>>> Hello Cassandra Community,
>>> 
>>> 
>>> I've been faced with a number of inconsistencies in the user APIs of
>>> the internal data collections representation exposed through the
>>> Cassandra monitoring interfaces that need to be fully aligned from an
>>> operator perspective. First of all, I'm highlighting JMX, Dropwizard
>>> Metrics, and Virtual Tables user interfaces. In order to address all
>>> these inconsistencies, I have created a draft enhancement proposal
>>> that describes everything I have found and how we can fix it once and
>>> for all.
>>> 
>>> I'd like to hear your opinion and thoughts on it. Please take a look:
>>> https://docs.google.com/document/d/1j4J3bPWjQkAU9x4G-zxKObxPrKg36jLRT6xpUoNJa8Q
>>>  
>>> <https://docs.google.com/document/d/1j4J3bPWjQkAU9x4G-zxKObxPrKg36jLRT6xpUoNJa8Q>
>>> 
>>> 
>>> -- 
>>> Maxim Muzafarov

Reply via email to