Skip to content
This repository was archived by the owner on Oct 3, 2023. It is now read-only.

Commit 0d9427b

Browse files
authored
fix: allow override global trace params limits (#643)
1 parent 2ae76c3 commit 0d9427b

File tree

2 files changed

+33
-37
lines changed

2 files changed

+33
-37
lines changed

packages/opencensus-core/src/trace/sampler/sampler.ts

Lines changed: 12 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -118,45 +118,26 @@ export class TraceParamsBuilder {
118118
static getNumberOfAnnotationEventsPerSpan(
119119
traceParameters: TraceParams
120120
): number {
121-
if (
122-
!traceParameters.numberOfAnnontationEventsPerSpan ||
123-
traceParameters.numberOfAnnontationEventsPerSpan >
124-
DEFAULT_SPAN_MAX_NUM_ANNOTATIONS
125-
) {
126-
return DEFAULT_SPAN_MAX_NUM_ANNOTATIONS;
127-
}
128-
return traceParameters.numberOfAnnontationEventsPerSpan;
121+
return !traceParameters.numberOfAnnontationEventsPerSpan
122+
? DEFAULT_SPAN_MAX_NUM_ANNOTATIONS
123+
: traceParameters.numberOfAnnontationEventsPerSpan;
129124
}
130125

131126
static getNumberOfAttributesPerSpan(traceParameters: TraceParams): number {
132-
if (
133-
!traceParameters.numberOfAttributesPerSpan ||
134-
traceParameters.numberOfAttributesPerSpan >
135-
DEFAULT_SPAN_MAX_NUM_ATTRIBUTES
136-
) {
137-
return DEFAULT_SPAN_MAX_NUM_ATTRIBUTES;
138-
}
139-
return traceParameters.numberOfAttributesPerSpan;
127+
return !traceParameters.numberOfAttributesPerSpan
128+
? DEFAULT_SPAN_MAX_NUM_ATTRIBUTES
129+
: traceParameters.numberOfAttributesPerSpan;
140130
}
141131

142132
static getNumberOfMessageEventsPerSpan(traceParameters: TraceParams): number {
143-
if (
144-
!traceParameters.numberOfMessageEventsPerSpan ||
145-
traceParameters.numberOfMessageEventsPerSpan >
146-
DEFAULT_SPAN_MAX_NUM_MESSAGE_EVENTS
147-
) {
148-
return DEFAULT_SPAN_MAX_NUM_MESSAGE_EVENTS;
149-
}
150-
return traceParameters.numberOfMessageEventsPerSpan;
133+
return !traceParameters.numberOfMessageEventsPerSpan
134+
? DEFAULT_SPAN_MAX_NUM_MESSAGE_EVENTS
135+
: traceParameters.numberOfMessageEventsPerSpan;
151136
}
152137

153138
static getNumberOfLinksPerSpan(traceParameters: TraceParams): number {
154-
if (
155-
!traceParameters.numberOfLinksPerSpan ||
156-
traceParameters.numberOfLinksPerSpan > DEFAULT_SPAN_MAX_NUM_LINKS
157-
) {
158-
return DEFAULT_SPAN_MAX_NUM_LINKS;
159-
}
160-
return traceParameters.numberOfLinksPerSpan;
139+
return !traceParameters.numberOfLinksPerSpan
140+
? DEFAULT_SPAN_MAX_NUM_LINKS
141+
: traceParameters.numberOfLinksPerSpan;
161142
}
162143
}

packages/opencensus-core/test/test-tracer-base.ts

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ describe('Tracer Base', () => {
259259
);
260260
});
261261

262-
it('should create a tracer with default TraceParams when parameters with values higher than maximum limit are specified upon initialisation', () => {
262+
it('should create a tracer with default TraceParams when parameters with values higher than limit are specified upon initialisation', () => {
263263
const traceParametersWithHigherThanMaximumValues: TraceParams = {
264264
numberOfAnnontationEventsPerSpan: 50,
265265
numberOfMessageEventsPerSpan: 200,
@@ -271,16 +271,16 @@ describe('Tracer Base', () => {
271271
tracer.start(defaultConfig);
272272
assert.strictEqual(
273273
tracer.activeTraceParams.numberOfAnnontationEventsPerSpan,
274-
32
274+
50
275275
);
276276
assert.strictEqual(
277277
tracer.activeTraceParams.numberOfAttributesPerSpan,
278-
32
278+
37
279279
);
280-
assert.strictEqual(tracer.activeTraceParams.numberOfLinksPerSpan, 32);
280+
assert.strictEqual(tracer.activeTraceParams.numberOfLinksPerSpan, 45);
281281
assert.strictEqual(
282282
tracer.activeTraceParams.numberOfMessageEventsPerSpan,
283-
128
283+
200
284284
);
285285
});
286286
});
@@ -382,6 +382,21 @@ describe('Tracer Base', () => {
382382
assert.strictEqual(rootSpan.allDescendants().length, 3);
383383
});
384384
});
385+
386+
it('should add attributes more than default limit when override', () => {
387+
defaultConfig.traceParams = { numberOfAttributesPerSpan: 48 };
388+
tracer.start(defaultConfig);
389+
tracer.startRootSpan(options, rootSpan => {
390+
const span = tracer.startChildSpan({
391+
name: 'spanName',
392+
childOf: rootSpan,
393+
});
394+
for (let i = 0; i < 40; i++) {
395+
span.addAttribute(`attr ${i}`, i);
396+
}
397+
assert.strictEqual(Object.keys(span.attributes).length, 40);
398+
});
399+
});
385400
});
386401

387402
/** Should not create a Span instance */
@@ -422,7 +437,7 @@ describe('Tracer Base', () => {
422437
});
423438
});
424439
});
425-
it('should add add attributes to spans', () => {
440+
it('should add attributes to spans', () => {
426441
assert.deepStrictEqual(
427442
rootSpanLocal.attributes,
428443
tracerConfig.defaultAttributes

0 commit comments

Comments
 (0)