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

Commit 6cc8995

Browse files
committed
chord: merge commit
2 parents f3246b3 + 499bcb1 commit 6cc8995

3 files changed

Lines changed: 23 additions & 22 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: 13 additions & 19 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

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

@@ -73,13 +71,14 @@ export class Tracer implements OnEndSpanEventListener {
7371
return this._active;
7472
}
7573

76-
public startRootSpan(name?: string, type?: string, context?: TraceContext): RootSpan {
77-
let newRootSpan = new RootSpan(this, context);
78-
if (name) { newRootSpan.name = name }
79-
if (type) { newRootSpan.type = type }
80-
this.setCurrentRootSpan(newRootSpan);
81-
newRootSpan.start();
82-
return newRootSpan;
74+
public startRootSpan<T>(options: TraceOptions, fn: (root: RootSpan) => T): T {
75+
debug('starting root span: %o', options)
76+
return this.contextManager.runAndReturn((root) => {
77+
let newRoot = new RootSpan(this, options);
78+
this.setCurrentRootSpan(newRoot);
79+
newRoot.start();
80+
return fn(newRoot);
81+
});
8382
}
8483

8584

@@ -94,14 +93,9 @@ export class Tracer implements OnEndSpanEventListener {
9493
//this.clearCurrentTrace();
9594
}
9695

97-
//TODO: review
98-
public runInContex<T>(fn: Func<T>): T {
99-
return this.contextManager.runAndReturn(fn)
100-
}
101-
102-
public registerEndSpanListener(listener: OnEndSpanEventListener) {
103-
this.eventListeners.push(listener);
104-
//this.buffer.registerExporter(exporter)
96+
97+
public registerEndSpanListener(listner: OnEndSpanEventListener) {
98+
this.eventListeners.push(listner);
10599
}
106100

107101
/*public registerExporter(exporter: Exporter) {

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)