Jira task: https://scylladb.atlassian.net/browse/DRIVER-562
Jira epic: https://scylladb.atlassian.net/browse/DRIVER-47
Copied from Jira epic DRIVER-47:
In scylladb/scylladb#24993 (or alternatively scylladb/scylladb#24988) I wanted to be able to learn exactly which SDK is being used by a user connecting to Alternator - by inspecting the User-Agent headers sent by the SDK. These user-agent headers are different for different SDKs, for example
- The Python AWS SDK (boto3) sends:
Boto3/1.38.46 md/Botocore[#1|https://github.com/scylladb/alternator-load-balancing/issues/1].38.46 md/awscrt[#0|https://github.com/scylladb/alternator-load-balancing/issues/0].24.2 ua/2.1 os/linux[#6|https://github.com/scylladb/alternator-load-balancing/issues/6].15.4-100.fc41.x86_64 md/arch#x86_64 lang/python[#3|https://github.com/scylladb/alternator-load-balancing/issues/3].13.5 md/pyimpl#CPython m/N,P,b,D,Z cfg/retry-mode#legacy Botocore/1.38.46 Resource
- The Java SDK v1 sends:
aws-sdk-java/1.11.919 Linux/6.15.4-100.fc41.x86_64 OpenJDK_64-Bit_Server_VM/11.0.27+6 java/11.0.27 vendor/Red_Hat,_Inc.
- The Java SDK v2 sends:
aws-sdk-java/2.25.31 Linux/6.15.4-100.fc41.x86_64 OpenJDK_64-Bit_Server_VM/11.0.27+6 Java/11.0.27 vendor/Red_Hat__Inc. io/sync http/Apache cfg/retry-mode/legacy cfg/auth-source#stat
Currently, I believe that our own load-balancing wrappers tracked in this repository do not modify the User-Agent header, so we can't know if the original AWS SDK is being used or our own wrapper - and which version of the wrapper.
I'm asking in this issue to add the fact that Scylla's wrapper is being used, its language and version, to the User-Agent header - in addition to the information that the AWS SDK puts there (which also remains useful).
Migrated from GitHub issue: scylladb/alternator-load-balancing#135
Jira task: https://scylladb.atlassian.net/browse/DRIVER-562
Jira epic: https://scylladb.atlassian.net/browse/DRIVER-47
Copied from Jira epic
DRIVER-47:In scylladb/scylladb#24993 (or alternatively scylladb/scylladb#24988) I wanted to be able to learn exactly which SDK is being used by a user connecting to Alternator - by inspecting the
User-Agentheaders sent by the SDK. These user-agent headers are different for different SDKs, for exampleBoto3/1.38.46 md/Botocore[#1|https://github.com/scylladb/alternator-load-balancing/issues/1].38.46 md/awscrt[#0|https://github.com/scylladb/alternator-load-balancing/issues/0].24.2 ua/2.1 os/linux[#6|https://github.com/scylladb/alternator-load-balancing/issues/6].15.4-100.fc41.x86_64 md/arch#x86_64 lang/python[#3|https://github.com/scylladb/alternator-load-balancing/issues/3].13.5 md/pyimpl#CPython m/N,P,b,D,Z cfg/retry-mode#legacy Botocore/1.38.46 Resourceaws-sdk-java/1.11.919 Linux/6.15.4-100.fc41.x86_64 OpenJDK_64-Bit_Server_VM/11.0.27+6 java/11.0.27 vendor/Red_Hat,_Inc.aws-sdk-java/2.25.31 Linux/6.15.4-100.fc41.x86_64 OpenJDK_64-Bit_Server_VM/11.0.27+6 Java/11.0.27 vendor/Red_Hat__Inc. io/sync http/Apache cfg/retry-mode/legacy cfg/auth-source#statCurrently, I believe that our own load-balancing wrappers tracked in this repository do not modify the
User-Agentheader, so we can't know if the original AWS SDK is being used or our own wrapper - and which version of the wrapper.I'm asking in this issue to add the fact that Scylla's wrapper is being used, its language and version, to the
User-Agentheader - in addition to the information that the AWS SDK puts there (which also remains useful).Migrated from GitHub issue: scylladb/alternator-load-balancing#135