Skip to content

Commit 0240b49

Browse files
committed
all: suffix observabilityOptions with "_" to signal private membership
1 parent 7400a88 commit 0240b49

File tree

10 files changed

+43
-33
lines changed

10 files changed

+43
-33
lines changed

observability-test/batch-transaction.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ describe('BatchTransaction', () => {
139139
batchTransaction = new BatchTransaction(SESSION as {} as Session);
140140
batchTransaction.session = SESSION as {} as Session;
141141
batchTransaction.id = ID;
142-
batchTransaction.observabilityOptions = {tracerProvider: provider};
142+
batchTransaction.observabilityOptions_ = {tracerProvider: provider};
143143
REQUEST.callsFake((_, callback) => callback(null, RESPONSE));
144144
});
145145

observability-test/table.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ describe('Table', () => {
9292
extend(Table, TableCached);
9393
table = new Table(DATABASE, NAME);
9494
transaction = new FakeTransaction();
95-
table.observabilityOptions = {tracerProvider: provider};
95+
table.observabilityOptions_ = {tracerProvider: provider};
9696
});
9797

9898
afterEach(() => {

src/batch-transaction.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ class BatchTransaction extends Snapshot {
139139

140140
const traceConfig: traceConfig = {
141141
sql: query,
142-
opts: this.observabilityOptions,
142+
opts: this.observabilityOptions_,
143143
};
144144
return startTrace(
145145
'BatchTransaction.createQueryPartitions',
@@ -182,7 +182,7 @@ class BatchTransaction extends Snapshot {
182182
*/
183183
createPartitions_(config, callback) {
184184
const traceConfig: traceConfig = {
185-
opts: this.observabilityOptions,
185+
opts: this.observabilityOptions_,
186186
};
187187

188188
return startTrace(
@@ -259,7 +259,7 @@ class BatchTransaction extends Snapshot {
259259
*/
260260
createReadPartitions(options, callback) {
261261
const traceConfig: traceConfig = {
262-
opts: this.observabilityOptions,
262+
opts: this.observabilityOptions_,
263263
};
264264

265265
return startTrace(

src/database.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,7 @@ class Database extends common.GrpcServiceObject {
344344
databaseDialect?: EnumKey<
345345
typeof databaseAdmin.spanner.admin.database.v1.DatabaseDialect
346346
> | null;
347-
observabilityConfig: ObservabilityOptions | undefined;
347+
observabilityOptions_?: ObservabilityOptions;
348348
constructor(
349349
instance: Instance,
350350
name: string,
@@ -467,7 +467,7 @@ class Database extends common.GrpcServiceObject {
467467
Object.assign({}, queryOptions),
468468
Database.getEnvironmentQueryOptions()
469469
);
470-
this.observabilityConfig = instance.observabilityConfig;
470+
this.observabilityOptions_ = instance.observabilityOptions_;
471471
}
472472
/**
473473
* @typedef {array} SetDatabaseMetadataResponse
@@ -1085,6 +1085,7 @@ class Database extends common.GrpcServiceObject {
10851085
/CREATE TABLE `*([^\s`(]+)/
10861086
)![1];
10871087
const table = this.table(tableName!);
1088+
table.observabilityOptions_ = this.observabilityOptions_;
10881089
callback!(null, table, operation!, resp!);
10891090
});
10901091
}

src/index.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ export interface SpannerOptions extends GrpcClientOptions {
139139
sslCreds?: grpc.ChannelCredentials;
140140
routeToLeaderEnabled?: boolean;
141141
directedReadOptions?: google.spanner.v1.IDirectedReadOptions | null;
142-
observabilityConfig?: ObservabilityOptions | undefined;
142+
observabilityOptions?: ObservabilityOptions;
143143
}
144144
export interface RequestConfig {
145145
client: string;
@@ -241,7 +241,7 @@ class Spanner extends GrpcService {
241241
resourceHeader_: {[k: string]: string};
242242
routeToLeaderEnabled = true;
243243
directedReadOptions: google.spanner.v1.IDirectedReadOptions | null;
244-
observabilityConfig: ObservabilityOptions | undefined;
244+
observabilityOptions_: ObservabilityOptions | undefined;
245245

246246
/**
247247
* Placeholder used to auto populate a column with the commit timestamp.
@@ -368,7 +368,7 @@ class Spanner extends GrpcService {
368368
[CLOUD_RESOURCE_HEADER]: this.projectFormattedName_,
369369
};
370370
this.directedReadOptions = directedReadOptions;
371-
this.observabilityConfig = options.observabilityConfig;
371+
this.observabilityOptions_ = options.observabilityOptions;
372372
}
373373

374374
/**
@@ -589,7 +589,7 @@ class Spanner extends GrpcService {
589589
return;
590590
}
591591
const instance = this.instance(formattedName);
592-
instance.observabilityConfig = this.observabilityConfig;
592+
instance.observabilityOptions_ = this.observabilityOptions_;
593593
callback!(null, instance, operation, resp);
594594
}
595595
);

src/instance.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ class Instance extends common.GrpcServiceObject {
165165
databases_: Map<string, Database>;
166166
metadata?: IInstance;
167167
resourceHeader_: {[k: string]: string};
168-
observabilityConfig: ObservabilityOptions | undefined;
168+
observabilityOptions_?: ObservabilityOptions;
169169
constructor(spanner: Spanner, name: string) {
170170
const formattedName_ = Instance.formatName_(spanner.projectId, name);
171171
const methods = {
@@ -241,7 +241,7 @@ class Instance extends common.GrpcServiceObject {
241241
this.resourceHeader_ = {
242242
[CLOUD_RESOURCE_HEADER]: this.formattedName_,
243243
};
244-
this.observabilityConfig = spanner.observabilityConfig;
244+
this.observabilityOptions_ = spanner.observabilityOptions_;
245245
}
246246

247247
/**
@@ -928,7 +928,7 @@ class Instance extends common.GrpcServiceObject {
928928
return;
929929
}
930930
const database = this.database(name, poolOptions || poolCtor);
931-
database.observabilityConfig = this.observabilityConfig;
931+
database.observabilityOptions_ = this.observabilityOptions_;
932932
callback(null, database, operation, resp);
933933
}
934934
);
@@ -978,7 +978,7 @@ class Instance extends common.GrpcServiceObject {
978978
const key = name.split('/').pop() + optionsKey;
979979
if (!this.databases_.has(key!)) {
980980
const db = new Database(this, name, poolOptions, queryOptions);
981-
db.observabilityConfig = this.observabilityConfig;
981+
db.observabilityOptions_ = this.observabilityOptions_;
982982
this.databases_.set(key!, db);
983983
}
984984
return this.databases_.get(key!)!;

src/instrument.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,12 @@ interface SQLStatement {
4545
sql: string;
4646
}
4747

48-
interface observabilityOptions {
48+
interface ObservabilityOptions {
4949
tracerProvider: TracerProvider;
5050
enableExtendedTracing?: boolean;
5151
}
5252

53-
export type {observabilityOptions as ObservabilityOptions};
53+
export type {ObservabilityOptions};
5454
export type {Span};
5555

5656
const TRACER_NAME = 'cloud.google.com/nodejs/spanner';
@@ -77,7 +77,7 @@ interface traceConfig {
7777
sql?: string | SQLStatement;
7878
tableName?: string;
7979
dbName?: string;
80-
opts?: observabilityOptions;
80+
opts?: ObservabilityOptions;
8181
that?: Object;
8282
}
8383

src/table.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ const POSTGRESQL = 'POSTGRESQL';
9999
class Table {
100100
database: Database;
101101
name: string;
102-
observabilityOptions?: ObservabilityOptions;
102+
observabilityOptions_?: ObservabilityOptions;
103103
constructor(database: Database, name: string) {
104104
/**
105105
* The {@link Database} instance of this {@link Table} instance.
@@ -113,6 +113,7 @@ class Table {
113113
* @type {string}
114114
*/
115115
this.name = name;
116+
this.observabilityOptions_ = database.observabilityOptions_;
116117
}
117118
/**
118119
* Create a table.
@@ -1080,7 +1081,7 @@ class Table {
10801081
callback: CommitCallback
10811082
): void {
10821083
const traceConfig: traceConfig = {
1083-
opts: this.observabilityOptions,
1084+
opts: this.observabilityOptions_,
10841085
};
10851086

10861087
startTrace('Table.' + method, traceConfig, span => {

src/transaction.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ export class Snapshot extends EventEmitter {
286286
queryOptions?: IQueryOptions;
287287
resourceHeader_: {[k: string]: string};
288288
requestOptions?: Pick<IRequestOptions, 'transactionTag'>;
289-
observabilityOptions?: ObservabilityOptions;
289+
observabilityOptions_?: ObservabilityOptions;
290290

291291
/**
292292
* The transaction ID.

test/spanner.ts

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5055,47 +5055,47 @@ describe('Spanner with mock server', () => {
50555055
});
50565056
});
50575057

5058-
it('Plumb ObservabilityConfig into Spanner, Instance and Database', () => {
5058+
it('Should use passed ObservabilityOptions in Spanner, Instance and Database', () => {
50595059
const exporter = new InMemorySpanExporter();
50605060
const provider = new NodeTracerProvider({
50615061
sampler: new AlwaysOnSampler(),
50625062
exporter: exporter,
50635063
});
50645064
provider.addSpanProcessor(new SimpleSpanProcessor(exporter));
50655065

5066-
const observabilityConfig: typeof ObservabilityOptions = {
5066+
const observabilityOptions: typeof ObservabilityOptions = {
50675067
tracerProvider: provider,
50685068
enableExtendedTracing: true,
50695069
};
50705070
const spanner = new Spanner({
50715071
servicePath: 'localhost',
50725072
port,
50735073
sslCreds: grpc.credentials.createInsecure(),
5074-
observabilityConfig: observabilityConfig,
5074+
observabilityOptions: observabilityOptions,
50755075
});
50765076

50775077
// Ensure that the same observability configuration is set on the Spanner client.
5078-
assert.deepStrictEqual(spanner.observabilityConfig, observabilityConfig);
5078+
assert.deepStrictEqual(spanner.observabilityOptions_, observabilityOptions);
50795079

50805080
// Acquire a handle to the Instance through spanner.instance.
50815081
const instanceByHandle = spanner.instance('instance');
50825082
assert.deepStrictEqual(
5083-
instanceByHandle.observabilityConfig,
5084-
observabilityConfig
5083+
instanceByHandle.observabilityOptions_,
5084+
observabilityOptions
50855085
);
50865086

50875087
// Create the Instance by means of a constructor directly.
50885088
const instanceByConstructor = new Instance(spanner, 'myInstance');
50895089
assert.deepStrictEqual(
5090-
instanceByConstructor.observabilityConfig,
5091-
observabilityConfig
5090+
instanceByConstructor.observabilityOptions_,
5091+
observabilityOptions
50925092
);
50935093

50945094
// Acquire a handle to the Database through instance.database.
50955095
const databaseByHandle = instanceByHandle.database('database');
50965096
assert.deepStrictEqual(
5097-
databaseByHandle.observabilityConfig,
5098-
observabilityConfig
5097+
databaseByHandle.observabilityOptions_,
5098+
observabilityOptions
50995099
);
51005100

51015101
// Create the Database by means of a constructor directly.
@@ -5104,11 +5104,19 @@ describe('Spanner with mock server', () => {
51045104
'myDatabase'
51055105
);
51065106
assert.deepStrictEqual(
5107-
databaseByConstructor.observabilityConfig,
5108-
observabilityConfig
5107+
databaseByConstructor.observabilityOptions_,
5108+
observabilityOptions
51095109
);
51105110

51115111
spanner.close();
5112+
5113+
/*
5114+
* TODO: Once we've merged in end-to-end Database tests,
5115+
* we shall add another test in which we:
5116+
* Register a global exporter
5117+
* Inject a different exporter via Spanner
5118+
* Verify that injected exporter is used and not global.
5119+
*/
51125120
});
51135121
});
51145122

0 commit comments

Comments
 (0)