File tree Expand file tree Collapse file tree 3 files changed +17
-1
lines changed Expand file tree Collapse file tree 3 files changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -167,7 +167,7 @@ export class Span implements SpanInterface {
167167 if ( spanContext . endTimestamp ) {
168168 this . _endTime = spanContext . endTimestamp ;
169169 }
170- if ( spanContext . exclusiveTime ) {
170+ if ( spanContext . exclusiveTime !== undefined ) {
171171 this . _exclusiveTime = spanContext . exclusiveTime ;
172172 }
173173 this . _measurements = spanContext . measurements ? { ...spanContext . measurements } : { } ;
Original file line number Diff line number Diff line change @@ -56,6 +56,21 @@ describe('span', () => {
5656 expect ( span . name ) . toEqual ( 'new name' ) ;
5757 expect ( span . description ) . toEqual ( 'new name' ) ;
5858 } ) ;
59+
60+ it ( 'allows exclusiveTime to be set' , ( ) => {
61+ const span = new Span ( { name : 'span name' , exclusiveTime : 100 } ) ;
62+ expect ( spanToJSON ( span ) . exclusive_time ) . toEqual ( 100 ) ;
63+ } ) ;
64+
65+ it ( 'allows exclusiveTime to be zero' , ( ) => {
66+ const span = new Span ( { name : 'span name' , exclusiveTime : 0 } ) ;
67+ expect ( spanToJSON ( span ) . exclusive_time ) . toEqual ( 0 ) ;
68+ } ) ;
69+
70+ it ( 'drops undefined exclusiveTime' , ( ) => {
71+ const span = new Span ( { name : 'span name' , exclusiveTime : undefined } ) ;
72+ expect ( Object . keys ( spanToJSON ( span ) ) . includes ( 'exclusive_time' ) ) . toBe ( false ) ;
73+ } ) ;
5974 } ) ;
6075 /* eslint-enable deprecation/deprecation */
6176
Original file line number Diff line number Diff line change @@ -57,6 +57,7 @@ export interface SpanJSON {
5757 trace_id : string ;
5858 origin ?: SpanOrigin ;
5959 _metrics_summary ?: Record < string , Array < MetricSummary > > ;
60+ exclusive_time ?: number ;
6061}
6162
6263// These are aligned with OpenTelemetry trace flags
You can’t perform that action at this time.
0 commit comments