Skip to content

Modify the user-agent used by our modified drivers #61

Description

@dkropachev

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions