Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement propagation of x-goog-spanner-request-id gRPC header on every call #2200

Open
6 tasks
odeke-em opened this issue Dec 9, 2024 · 0 comments · May be fixed by #2205
Open
6 tasks

Implement propagation of x-goog-spanner-request-id gRPC header on every call #2200

odeke-em opened this issue Dec 9, 2024 · 0 comments · May be fixed by #2205
Labels
api: spanner Issues related to the googleapis/nodejs-spanner API.

Comments

@odeke-em
Copy link
Contributor

odeke-em commented Dec 9, 2024

A screenshot that you have tested with "Try this API".

This is a debugging feature request

What would you like to see in the library?

This is a feature request to implement propagation of x-goog-spanner-request-id gRPC header on every call.

Reasoning

x-goog-spanner-request-id allows propagation of an ID that'll be correlated between client and server calls. We can't rely on trace headers because they are sampled, convoluted through a bunch of infrastructure so Google Engineering asked that we craft up a better mechanism. The value will allow tracking the operations of an RPC even through retries

Requirements

Each x-goog-spanner-request-id requires the following fields

  • Version of the specification being implemented: ordinal number: 1 for version 1
  • random Uint64 for the process' lifetime
  • ID of the SpannerClient being used
  • channelID for the gRPC channel being used
  • Nth Request Count: nthReq
  • RPC attempt number for nthReq

Specification

Please reference https://orijtech.notion.site/x-goog-spanner-request-id-always-on-gRPC-header-to-aid-in-quick-debugging-of-errors-14aba6bc91348091a58fca7a505c9827?pvs=4

Reference implementation

I built a Go reference implementation at googleapis/google-cloud-go#11048

/cc @tharoldD

Describe alternatives you've considered

No response

Additional context/notes

No response

@product-auto-label product-auto-label bot added the api: spanner Issues related to the googleapis/nodejs-spanner API. label Dec 9, 2024
odeke-em added a commit to odeke-em/nodejs-spanner that referenced this issue Dec 21, 2024
…request

Implements propagation of the x-goog-spanner-request-id that'll be
propagated for every call. Once an error has been encountered, that
error will have `.requestId` set.

Fixes googleapis#2200
odeke-em added a commit to odeke-em/nodejs-spanner that referenced this issue Dec 21, 2024
…request

Implements propagation of the x-goog-spanner-request-id that'll be
propagated for every call. Once an error has been encountered, that
error will have `.requestId` set.

Fixes googleapis#2200
odeke-em added a commit to odeke-em/nodejs-spanner that referenced this issue Dec 21, 2024
…request

Implements propagation of the x-goog-spanner-request-id that'll be
propagated for every call. Once an error has been encountered, that
error will have `.requestId` set.

Fixes googleapis#2200
odeke-em added a commit to odeke-em/nodejs-spanner that referenced this issue Dec 21, 2024
…request

Implements propagation of the x-goog-spanner-request-id that'll be
propagated for every call. Once an error has been encountered, that
error will have `.requestId` set.

Fixes googleapis#2200
odeke-em added a commit to odeke-em/nodejs-spanner that referenced this issue Dec 24, 2024
…request

Implements propagation of the x-goog-spanner-request-id that'll be
propagated for every call. Once an error has been encountered, that
error will have `.requestId` set.

Fixes googleapis#2200
odeke-em added a commit to odeke-em/nodejs-spanner that referenced this issue Dec 27, 2024
…request

Implements propagation of the x-goog-spanner-request-id that'll be
propagated for every call. Once an error has been encountered, that
error will have `.requestId` set.

Fixes googleapis#2200
odeke-em added a commit to odeke-em/nodejs-spanner that referenced this issue Jan 6, 2025
…request

Implements propagation of the x-goog-spanner-request-id that'll be
propagated for every call. Once an error has been encountered, that
error will have `.requestId` set.

Fixes googleapis#2200
odeke-em added a commit to odeke-em/nodejs-spanner that referenced this issue Jan 7, 2025
This change brings in the bases for x-goog-spanner-request-id
by commit AtomicCounter and the various utilities plus some
unit tests.

Ripped out of PR googleapis#2205
Updates  googleapis#2200
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: spanner Issues related to the googleapis/nodejs-spanner API.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant