[
https://issues.apache.org/jira/browse/CASSANDRA-16378?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17460113#comment-17460113
]
Tibor Repasi commented on CASSANDRA-16378:
------------------------------------------
As I understood the
[native_protocol_v5.spec|https://github.com/apache/cassandra/blob/trunk/doc/native_protocol_v5.spec],
the list of options is already arbitrary, which is comparable to HTTP
X-Headers. StartupMessage is a codec that decodes the payload to get all the
supported options.
DataStax has extended the java-driver to send application_name and
application_version options along. Somewhere I've seen that SpringBoot
automatically fills in these properties, thus they are available, but not yet
appreciated by Apache Cassandra.
When the applications connecting to the Cassandra clusters I run started to
move from named on-prem hosts to Kubernetes, I was wondering how do I find out
which applications are connecting now, as the far side tcp endpoints moved to
some arbitrary worker nodes which may run other applications as well.
So the main objective from the operators point of view is to improve visibility
by exposing what's already provided.
> Expose application_name and application_version in virtual table
> system_views.clients
> -------------------------------------------------------------------------------------
>
> Key: CASSANDRA-16378
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16378
> Project: Cassandra
> Issue Type: Improvement
> Components: Feature/Virtual Tables
> Reporter: Tibor Repasi
> Assignee: Tibor Repasi
> Priority: Normal
> Labels: AdventCalendar2021, gsoc2021, lhf, mentor
>
> Recent java-driver's
> [com.datastax.oss.driver.api.core.session.SessionBuilder|https://docs.datastax.com/en/drivers/java/4.9/com/datastax/oss/driver/api/core/session/SessionBuilder.html]
> respects properties
> [ApplicationName|https://docs.datastax.com/en/drivers/java/4.9/com/datastax/oss/driver/api/core/session/SessionBuilder.html#withApplicationName-java.lang.String-]
> and
> [ApplicationVersion|https://docs.datastax.com/en/drivers/java/4.9/com/datastax/oss/driver/api/core/session/SessionBuilder.html#withApplicationVersion-java.lang.String-].
> It would be helpful to exposed this information via virtual table
> {{system_views.clients}} and with {{nodetool clientstats}}.
> +Additional information for newcomers:+
> The drivers can send as part of the {{STARTUP MESSAGE}} the
> {{APPLICATION_NAME}} and {{APPLICATION_VERSION}} options. To new volatile
> fields {{applicationName}} and {{applicationVersion}} need to be added to
> {{ClientState}} in a similar way to {{driverName}} and {{driverVersion}}.
> The {{APPLICATION_NAME}} and {{APPLICATION_VERSION}} optionsneed to be
> retrieved in {{StartupMessage#execute}} and passed to the {{ClientState}}.
> The new {{application_name}} and {{application_version}} columns need to be
> added to the {{system_views.clients}} represented by the {{ClientsTable}}
> class. The data then need to be retrieved from the {{ClientState}} through
> {{ConnectedClient}}.
> Some unit tests similat to {{SettingsTableTest}} should be added.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]