[ https://issues.apache.org/jira/browse/CASSANDRA-14572?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17809595#comment-17809595 ]
Chris Lohfink commented on CASSANDRA-14572: ------------------------------------------- Wouldn't this still be significantly less GC thrashing than the currently jmx polling? Just from people querying queryMBeans(null, null) alone. Currently the last couple places I've seen are making these horrible >100-500mb object and sending it over in a single message before it even starts pulling metrics (when there's a lot of tables/keyspaces). This is also something that can still be more improved upon as well much more than JMX which we don't have much control over. Maybe in your benchmarking include allocation rates? Compare it to polling everything over jmx (although different companies are doing it in different ways so hard to be perfect about). Should also test it out if there's 1000 tables or 1000 keyspaces with 1 table and make sure don't OOM somewhere. > Expose all table metrics in virtual table > ----------------------------------------- > > Key: CASSANDRA-14572 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14572 > Project: Cassandra > Issue Type: New Feature > Components: Legacy/Observability, Observability/Metrics > Reporter: Chris Lohfink > Assignee: Maxim Muzafarov > Priority: Low > Labels: virtual-tables > Fix For: 5.x > > Attachments: keyspayces_group responses times.png, keyspayces_group > summary.png, select keyspaces_group by string prefix.png, select > keyspaces_group compare with wo.png, select keyspaces_group without > value.png, systemv_views.metrics_dropped_message.png, thread_pools > benchmark.png > > Time Spent: 1.5h > Remaining Estimate: 0h > > While we want a number of virtual tables to display data in a way thats great > and intuitive like in nodetool. There is also much for being able to expose > the metrics we have for tooling via CQL instead of JMX. This is more for the > tooling and adhoc advanced users who know exactly what they are looking for. > *Schema:* > Initial idea is to expose data via {{((keyspace, table), metric)}} with a > column for each metric value. Could also use a Map or UDT instead of the > column based that can be a bit more specific to each metric type. To that end > there can be a {{metric_type}} column and then a UDT for each metric type > filled in, or a single value with more of a Map<Text, Text> style. I am > purposing the column type though as with {{ALLOW FILTERING}} it does allow > more extensive query capabilities. > *Implementations:* > * Use reflection to grab all the metrics from TableMetrics (see: > CASSANDRA-7622 impl). This is easiest and least abrasive towards new metric > implementors... but its reflection and a kinda a bad idea. > * Add a hook in TableMetrics to register with this virtual table when > registering > * Pull from the CassandraMetrics registery (either reporter or iterate > through metrics query on read of virtual table) -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org