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

Commit 24df9ce

Browse files
committed
chord: merge commit
2 parents 08a27cb + 499bcb1 commit 24df9ce

3 files changed

Lines changed: 25 additions & 23 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, TraceOptions, TraceContext, OnEndSpanEventListener } from '../types/tracetypes'
2222
import { Tracer } from './tracer'
2323
import { Sampler } from './sampler'
2424

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

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

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

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +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 { Exporter } from '../../exporters/exporter'
24-
import { TraceContext, OnEndSpanEventListener } from '../types/tracetypes';
25-
import { TracerConfig, defaultConfig } from '../tracing'
26-
import { Buffer } from '../../exporters/buffer'
23+
import { TraceContext, TraceOptions, OnEndSpanEventListener } from '../types/tracetypes';
24+
import { TracerConfig, defaultConfig } from '../tracing';
2725
import { Sampler } from './sampler'
2826

2927
export type Func<T> = (...args: any[]) => T;
@@ -74,18 +72,19 @@ export class Tracer implements OnEndSpanEventListener {
7472
return this._active;
7573
}
7674

77-
public startRootSpan(context?: TraceContext, sampler?: Sampler): RootSpan {
78-
let newTrace = new RootSpan(this, context);
79-
debug("tracer startRootSpan ")
80-
this.setCurrentRootSpan(newTrace);
81-
if(sampler == null){
82-
sampler = new Sampler(newTrace.traceId);
83-
sampler.always();
84-
}
85-
debug("tracer startRootSpan ")
86-
newTrace.sampler = sampler;
87-
newTrace.start();
88-
return newTrace;
75+
public startRootSpan<T>(options: TraceOptions, fn: (root: RootSpan) => T): T {
76+
debug('starting root span: %o', options)
77+
return this.contextManager.runAndReturn((root) => {
78+
let newRoot = new RootSpan(this, options);
79+
this.setCurrentRootSpan(newRoot);
80+
if(sampler == null){
81+
sampler = new Sampler(newTrace.traceId);
82+
sampler.always();
83+
}
84+
newRoot.sampler = sampler;
85+
newRoot.start();
86+
return fn(newRoot);
87+
});
8988
}
9089

9190

@@ -100,10 +99,6 @@ export class Tracer implements OnEndSpanEventListener {
10099
//this.clearCurrentTrace();
101100
}
102101

103-
//TODO: review
104-
public runInContex<T>(fn: Func<T>): T {
105-
return this.contextManager.runAndReturn(fn)
106-
}
107102

108103
public registerEndSpanListener(listener: OnEndSpanEventListener) {
109104
this.eventListeners.push(listener);

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

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

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

0 commit comments

Comments
 (0)