diff --git a/handwritten/spanner/src/database.ts b/handwritten/spanner/src/database.ts index 145018db064..38ddef26d14 100644 --- a/handwritten/spanner/src/database.ts +++ b/handwritten/spanner/src/database.ts @@ -92,8 +92,8 @@ import { RequestCallback, ResourceCallback, Schema, + CLOUD_RESOURCE_HEADER, addLeaderAwareRoutingHeader, - getCommonHeaders, } from './common'; import {finished, Duplex, Readable, Transform} from 'stream'; import {PreciseDate} from '@google-cloud/precise-date'; @@ -490,10 +490,10 @@ class Database extends common.GrpcServiceObject { this._clientId = instance._nthClientId; } this._observabilityOptions = instance._observabilityOptions; - this.commonHeaders_ = getCommonHeaders( - this.formattedName_, - this._observabilityOptions?.enableEndToEndTracing, - ); + this.commonHeaders_ = { + ...instance.commonHeaders_, + [CLOUD_RESOURCE_HEADER]: this.formattedName_, + }; // eslint-disable-next-line @typescript-eslint/no-explicit-any this.requestStream = instance.requestStream as any; diff --git a/handwritten/spanner/src/instance.ts b/handwritten/spanner/src/instance.ts index 25e7dc5272c..2315d781663 100644 --- a/handwritten/spanner/src/instance.ts +++ b/handwritten/spanner/src/instance.ts @@ -31,7 +31,7 @@ import { NormalCallback, ResourceCallback, PagedOptionsWithFilter, - getCommonHeaders, + CLOUD_RESOURCE_HEADER, } from './common'; import {Duplex} from 'stream'; import {SessionPoolOptions, SessionPool} from './session-pool'; @@ -239,10 +239,10 @@ class Instance extends common.GrpcServiceObject { this.requestStream = spanner.requestStream.bind(spanner); this.databases_ = new Map(); this._observabilityOptions = spanner._observabilityOptions; - this.commonHeaders_ = getCommonHeaders( - this.formattedName_, - this._observabilityOptions?.enableEndToEndTracing, - ); + this.commonHeaders_ = { + ...spanner.commonHeaders_, + [CLOUD_RESOURCE_HEADER]: this.formattedName_, + }; } /** diff --git a/handwritten/spanner/src/session.ts b/handwritten/spanner/src/session.ts index b0dfa814b47..3ebc728ed1a 100644 --- a/handwritten/spanner/src/session.ts +++ b/handwritten/spanner/src/session.ts @@ -36,11 +36,7 @@ import { CreateSessionOptions, } from './database'; import {ServiceObjectConfig} from '@google-cloud/common'; -import { - NormalCallback, - addLeaderAwareRoutingHeader, - getCommonHeaders, -} from './common'; +import {NormalCallback, addLeaderAwareRoutingHeader} from './common'; import {ObservabilityOptions} from './instrument'; import {grpc, CallOptions} from 'google-gax'; import IRequestOptions = google.spanner.v1.IRequestOptions; @@ -261,10 +257,7 @@ export class Session extends common.GrpcServiceObject { } as {} as ServiceObjectConfig); this._observabilityOptions = database._observabilityOptions; - this.commonHeaders_ = getCommonHeaders( - (this.parent as Database).formattedName_, - this._observabilityOptions?.enableEndToEndTracing, - ); + this.commonHeaders_ = {...database.commonHeaders_}; this.request = database.request; this.requestStream = database.requestStream; diff --git a/handwritten/spanner/src/transaction.ts b/handwritten/spanner/src/transaction.ts index 75d4b2d0079..e0bdfb54ebd 100644 --- a/handwritten/spanner/src/transaction.ts +++ b/handwritten/spanner/src/transaction.ts @@ -34,11 +34,7 @@ import {Session} from './session'; import {Key} from './table'; import {Span} from './instrument'; import {google as spannerClient} from '../protos/protos'; -import { - NormalCallback, - addLeaderAwareRoutingHeader, - getCommonHeaders, -} from './common'; +import {NormalCallback, addLeaderAwareRoutingHeader} from './common'; import {google} from '../protos/protos'; import IsolationLevel = google.spanner.v1.TransactionOptions.IsolationLevel; import IAny = google.protobuf.IAny; @@ -374,10 +370,7 @@ export class Snapshot extends EventEmitter { this._waitingRequests = []; this._inlineBeginStarted = false; this._observabilityOptions = session._observabilityOptions; - this.commonHeaders_ = getCommonHeaders( - this._dbName, - this._observabilityOptions?.enableEndToEndTracing, - ); + this.commonHeaders_ = {...session.commonHeaders_}; this._traceConfig = { opts: this._observabilityOptions, dbName: this._dbName, diff --git a/handwritten/spanner/test/database.ts b/handwritten/spanner/test/database.ts index 394ad7f35ff..106587cef08 100644 --- a/handwritten/spanner/test/database.ts +++ b/handwritten/spanner/test/database.ts @@ -271,6 +271,9 @@ describe('Database', () => { formattedName_: 'instance-name', databases_: new Map(), parent: SPANNER, + commonHeaders_: { + [AFE_SERVER_TIMING_HEADER]: 'true', + }, } as {} as Instance; const NAME = 'table-name'; diff --git a/handwritten/spanner/test/instance.ts b/handwritten/spanner/test/instance.ts index 7f9be090c1b..46666908d00 100644 --- a/handwritten/spanner/test/instance.ts +++ b/handwritten/spanner/test/instance.ts @@ -80,6 +80,9 @@ describe('Instance', () => { projectId: 'project-id', instances_: new Map(), projectFormattedName_: 'projects/project-id', + commonHeaders_: { + [AFE_SERVER_TIMING_HEADER]: 'true', + }, } as {} as Spanner; const NAME = 'instance-name'; diff --git a/handwritten/spanner/test/session.ts b/handwritten/spanner/test/session.ts index ef7d78c8214..f02eb34e39c 100644 --- a/handwritten/spanner/test/session.ts +++ b/handwritten/spanner/test/session.ts @@ -87,6 +87,10 @@ describe('Session', () => { request: () => {}, formattedName_: 'formatted-database-name', parent: INSTANCE, + commonHeaders_: { + [CLOUD_RESOURCE_HEADER]: 'formatted-database-name', + [AFE_SERVER_TIMING_HEADER]: 'true', + }, }; const NAME = 'session-name'; diff --git a/handwritten/spanner/test/transaction.ts b/handwritten/spanner/test/transaction.ts index 4c7f4aae217..45b1d24a840 100644 --- a/handwritten/spanner/test/transaction.ts +++ b/handwritten/spanner/test/transaction.ts @@ -74,6 +74,10 @@ describe('Transaction', () => { formattedName_: SESSION_NAME, request: REQUEST, requestStream: REQUEST_STREAM, + commonHeaders_: { + [CLOUD_RESOURCE_HEADER]: 'formatted-database-name', + [AFE_SERVER_TIMING_HEADER]: 'true', + }, }; const PARTIAL_RESULT_STREAM = sandbox.stub();