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

Commit f316a6b

Browse files
committed
Change startRootSpan to deal with context
1 parent fe5ece9 commit f316a6b

3 files changed

Lines changed: 20 additions & 14 deletions

File tree

packages/opencensus-core/src/trace/model/root-span.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { Span } from './span'
1818
import { Clock } from '../../internal/clock'
1919
import * as uuid from 'uuid';
2020
import { debug } from '../../internal/util'
21-
import { SpanBaseModel, TraceContext, OnEndSpanEventListener } from '../types/tracetypes'
21+
import { SpanBaseModel, TraceContext, OnEndSpanEventListener, TraceOptions } from '../types/tracetypes'
2222
import { Tracer } from './tracer';
2323

2424
export class RootSpan extends SpanBaseModel implements OnEndSpanEventListener {
@@ -27,10 +27,12 @@ export class RootSpan extends SpanBaseModel implements OnEndSpanEventListener {
2727
private _spans: Span[];
2828
private _traceId: string;
2929

30-
constructor(tracer: Tracer, context?: TraceContext ) {
30+
//TODO - improve root name setup
31+
constructor(tracer: Tracer, context?: TraceOptions ) {
3132
super()
3233
this.tracer = tracer;
33-
this._traceId = context&&context.traceId?context.traceId:(uuid.v4().split('-').join(''));
34+
this._traceId = context&&context.traceContext&&context.traceContext.traceId?context.traceContext.traceId:(uuid.v4().split('-').join(''));
35+
this.name = context&&context.name?context.name:'undefined';
3436
this._spans = [];
3537
}
3638

packages/opencensus-core/src/trace/model/tracer.ts

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ import { Span } from './span'
2020
import { debug } from '../../internal/util'
2121
import { Stackdriver } from '../../exporters/stackdriver/stackdriver'
2222
import { StackdriverOptions } from '../../exporters/stackdriver/options'
23-
import { TraceContext, OnEndSpanEventListener } from '../types/tracetypes';
24-
import { TracerConfig, defaultConfig } from '../tracing';
23+
import { TraceContext, TraceOptions, OnEndSpanEventListener } from '../types/tracetypes';
24+
import { TracerConfig, defaultConfig } from '../tracing';
2525

2626
export type Func<T> = (...args: any[]) => T;
2727

@@ -66,11 +66,14 @@ export class Tracer implements OnEndSpanEventListener {
6666
return this._active;
6767
}
6868

69-
public startRootSpan(context?: TraceContext): RootSpan {
70-
let newTrace = new RootSpan(this, context);
71-
this.setCurrentRootSpan(newTrace);
72-
newTrace.start();
73-
return newTrace;
69+
public startRootSpan<T>(options: TraceOptions, fn: (root: RootSpan) => T): T {
70+
debug('starting root span: %o', options)
71+
return this.contextManager.runAndReturn((root) => {
72+
let newRoot = new RootSpan(this, options);
73+
this.setCurrentRootSpan(newRoot);
74+
newRoot.start();
75+
return fn(newRoot);
76+
});
7477
}
7578

7679

@@ -85,10 +88,6 @@ export class Tracer implements OnEndSpanEventListener {
8588
//this.clearCurrentTrace();
8689
}
8790

88-
//TODO: review
89-
public runInContex<T>(fn: Func<T>): T {
90-
return this.contextManager.runAndReturn (fn)
91-
}
9291

9392
public registerEndSpanListener(listner: OnEndSpanEventListener) {
9493
this.eventListeners.push(listner);

packages/opencensus-core/src/trace/types/tracetypes.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@ export interface TraceContext {
2727
options?: number
2828
}
2929

30+
export interface TraceOptions {
31+
name:string;
32+
traceContext?:TraceContext;
33+
}
34+
3035
export interface OnEndSpanEventListener {
3136
onEndSpan(span: SpanBaseModel): void;
3237
}

0 commit comments

Comments
 (0)