[ 
https://issues.apache.org/jira/browse/CASSANDRA-14572?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17849386#comment-17849386
 ] 

David Capwell commented on CASSANDRA-14572:
-------------------------------------------

For visibility there is a large conversation in slack about this feature 
https://the-asf.slack.com/archives/CK23JSY2K/p1716324924466269

Here are a few of the points

*) the "group" tables expose a "name" that doesn't reflect the "name" in our 
metrics, but instead an internal map used for unique metric detection
*) the term "group" maps to "type" for JMX, so causes confusion for users (the 
"group" is "org.apache.cassandra.metrics", every instance of group is actually 
"type")
*) implementation is O(N) where N is the number of metrics in the JVM
**) new benchmarks were created using tlp-stress and show that these tables are 
2-3x slower than other vtables for a freshly started instance with no tables.
*) UX is hard for users and for automation due to it exposing a internal key 
that must be parsed (mentally or by tools) rather than showing columns users 
would expect
*) histogram metrics return a single double value, this may not be the best UX 
for histograms

We have been talking about solutions to these problems and we should create a 
ticket to track this, should make sure to link that once its ready

> 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.1
>
>         Attachments: flight_recording_1270017199_13.jfr, 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: 8h
>  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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to