This commit is contained in:
Nivy Kani 2026-07-31 15:15:55 -07:00 committed by GitHub
commit b3cce129e7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 7 additions and 19 deletions

View File

@ -175,7 +175,7 @@ We shall discuss some of the virtual tables in more detail next.
The `clients` virtual table lists all active connections (connected
clients) including their ip address, port, client_options, connection stage, driver
name, driver version, hostname, protocol version, request count, ssl
name, driver version, protocol version, request count, ssl
enabled, ssl protocol and user name:
[source, console]
@ -190,7 +190,6 @@ cqlsh> SELECT * FROM system_views.clients;
connection_stage | ready
driver_name | DataStax Python Driver
driver_version | 3.25.0
hostname | localhost
protocol_version | 5
request_count | 16
ssl_cipher_suite | null
@ -206,7 +205,6 @@ cqlsh> SELECT * FROM system_views.clients;
connection_stage | ready
driver_name | DataStax Python Driver
driver_version | 3.25.0
hostname | localhost
protocol_version | 5
request_count | 4
ssl_cipher_suite | null
@ -222,7 +220,6 @@ cqlsh> SELECT * FROM system_views.clients;
connection_stage | ready
driver_name | DataStax Java driver for Apache Cassandra(R)
driver_version | 4.13.0
hostname | localhost
protocol_version | 5
request_count | 18
ssl_cipher_suite | null
@ -238,7 +235,6 @@ cqlsh> SELECT * FROM system_views.clients;
connection_stage | ready
driver_name | DataStax Java driver for Apache Cassandra(R)
driver_version | 4.13.0
hostname | localhost
protocol_version | 5
request_count | 7
ssl_cipher_suite | null
@ -275,7 +271,6 @@ VIRTUAL TABLE system_views.clients (
connection_stage text,
driver_name text,
driver_version text,
hostname text,
protocol_version int,
request_count bigint,
ssl_cipher_suite text,
@ -673,10 +668,10 @@ results in:
+
[source, cql]
----
address | port | connection_stage | driver_name | driver_version | hostname | protocol_version | request_count | ssl_cipher_suite | ssl_enabled | ssl_protocol | username
-----------+-------+------------------+------------------------+----------------+-----------|||+------------------+---------------+------------------+-------------+--------------+-----------
127.0.0.1 | 37308 | ready | DataStax Python Driver | 3.21.0.post0 | localhost | 4 | 17 | null | False | null | anonymous
127.0.0.1 | 37310 | ready | DataStax Python Driver | 3.21.0.post0 | localhost | 4 | 8 | null | False | null | anonymous
address | port | connection_stage | driver_name | driver_version | protocol_version | request_count | ssl_cipher_suite | ssl_enabled | ssl_protocol | username
-----------+-------+------------------+------------------------+----------------+------------------+---------------+------------------+-------------+--------------+-----------
127.0.0.1 | 37308 | ready | DataStax Python Driver | 3.21.0.post0 | 4 | 17 | null | False | null | anonymous
127.0.0.1 | 37310 | ready | DataStax Python Driver | 3.21.0.post0 | 4 | 8 | null | False | null | anonymous
(2 rows)
----

View File

@ -38,7 +38,6 @@ final class ClientsTable extends AbstractVirtualTable
{
private static final String ADDRESS = "address";
private static final String PORT = "port";
private static final String HOSTNAME = "hostname";
private static final String USERNAME = "username";
private static final String CONNECTION_STAGE = "connection_stage";
private static final String PROTOCOL_VERSION = "protocol_version";
@ -61,7 +60,6 @@ final class ClientsTable extends AbstractVirtualTable
.partitioner(new LocalPartitioner(InetAddressType.instance))
.addPartitionKeyColumn(ADDRESS, InetAddressType.instance)
.addClusteringColumn(PORT, Int32Type.instance)
.addRegularColumn(HOSTNAME, UTF8Type.instance)
.addRegularColumn(USERNAME, UTF8Type.instance)
.addRegularColumn(CONNECTION_STAGE, UTF8Type.instance)
.addRegularColumn(PROTOCOL_VERSION, Int32Type.instance)
@ -88,7 +86,6 @@ final class ClientsTable extends AbstractVirtualTable
InetSocketAddress remoteAddress = client.remoteAddress();
result.row(remoteAddress.getAddress(), remoteAddress.getPort())
.column(HOSTNAME, remoteAddress.getHostName())
.column(USERNAME, client.username().orElse(null))
.column(CONNECTION_STAGE, toLowerCaseLocalized(client.stage().toString()))
.column(PROTOCOL_VERSION, client.protocolVersion())

View File

@ -48,7 +48,6 @@ final class GossipInfoTable extends AbstractVirtualTable
static final String ADDRESS = "address";
static final String PORT = "port";
static final String HOSTNAME = "hostname";
static final String GENERATION = "generation";
static final String HEARTBEAT = "heartbeat";
@ -98,7 +97,6 @@ final class GossipInfoTable extends AbstractVirtualTable
EndpointState localState = new EndpointState(entry.getValue());
SimpleDataSet dataSet = result.row(endpoint.getAddress(), endpoint.getPort())
.column(HOSTNAME, endpoint.getHostName())
.column(GENERATION, getGeneration(localState))
.column(HEARTBEAT, getHeartBeat(localState));
@ -175,7 +173,6 @@ final class GossipInfoTable extends AbstractVirtualTable
.partitioner(new LocalPartitioner(InetAddressType.instance))
.addPartitionKeyColumn(ADDRESS, InetAddressType.instance)
.addClusteringColumn(PORT, Int32Type.instance)
.addRegularColumn(HOSTNAME, UTF8Type.instance)
.addRegularColumn(GENERATION, Int32Type.instance)
.addRegularColumn(HEARTBEAT, Int32Type.instance);

View File

@ -70,6 +70,7 @@ public class ClientsTableTest extends CQLTester
shouldUseEncryption(true);
shouldUseClientCertificate(true);
ResultSet result = executeNet("SELECT * FROM vts.clients");
assertThat(result.getColumnDefinitions().size()).isEqualTo(15);
for (Row r : result)
{
Assert.assertEquals(InetAddress.getLoopbackAddress(), r.getInet("address"));
@ -78,7 +79,6 @@ public class ClientsTableTest extends CQLTester
Assert.assertNotNull(r.getMap("client_options", String.class, String.class));
Assert.assertTrue(r.getLong("request_count") > 0 );
// the following are questionable if they belong here
Assert.assertEquals("localhost", r.getString("hostname"));
Assertions.assertThat(r.getMap("client_options", String.class, String.class))
.hasEntrySatisfying("DRIVER_VERSION", value -> assertThat(value.contains(r.getString("driver_name"))))
.hasEntrySatisfying("DRIVER_VERSION", value -> assertThat(value.contains(r.getString("driver_version"))));

View File

@ -70,13 +70,12 @@ public class GossipInfoTableTest extends CQLTester
assertThat(resultSet.size()).isEqualTo(1);
UntypedResultSet.Row row = resultSet.one();
assertThat(row.getColumns().size()).isEqualTo(66);
assertThat(row.getColumns().size()).isEqualTo(65);
assertThat(endpoint).isNotNull();
assertThat(localState).isNotNull();
assertThat(row.getInetAddress("address")).isEqualTo(endpoint.getAddress());
assertThat(row.getInt("port")).isEqualTo(endpoint.getPort());
assertThat(row.getString("hostname")).isEqualTo(endpoint.getHostName());
assertThat(row.getInt("generation")).isEqualTo(localState.getHeartBeatState().getGeneration());
assertThat(row.getInt("heartbeat")).isNotNull();