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

Commit 994b9bc

Browse files
committed
Fix end trace
1 parent 5126f58 commit 994b9bc

2 files changed

Lines changed: 31 additions & 18 deletions

File tree

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

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import {Trace} from './trace'
1919
import {Span} from './span'
2020
import {PluginLoader} from './plugins/pluginloader'
2121
import {debug} from '../internal/util'
22+
import {Stackdriver} from '../exporters/stackdriver'
2223

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

@@ -29,6 +30,7 @@ export class TraceManager {
2930
private _active: boolean;
3031
private contextManager: cls.Namespace;
3132
private pluginLoader: PluginLoader;
33+
private exporter
3234

3335
//TODO: temp solution
3436
private endedTraces: Trace[] = [];
@@ -37,6 +39,7 @@ export class TraceManager {
3739
this._active = false;
3840
this.contextManager = cls.createNamespace();
3941
this.pluginLoader = new PluginLoader(this);
42+
this.exporter = new Stackdriver('opencensus-cesar');
4043
}
4144

4245
public get currentTrace(): Trace {
@@ -64,10 +67,13 @@ export class TraceManager {
6467
return newTrace;
6568
}
6669

67-
public endTrace():void {
70+
public endTrace(): void {
6871
if (!this.currentTrace) return debug('cannot end trace - no active trace found')
6972
this.currentTrace.end();
73+
this.exporter.emit(this.currentTrace);
7074
this.addEndedTrace(this.currentTrace);
75+
//this.clearCurrentTrace();
76+
this.startTrace();
7177
}
7278

7379
public clearCurrentTrace() {
@@ -84,6 +90,12 @@ export class TraceManager {
8490
return newSpan;
8591
}
8692

93+
/*public endSpan(span: Span) {
94+
debug('END SPAN', span);
95+
span.end();
96+
this.exporter.emit(this.currentTrace);
97+
}*/
98+
8799

88100
private addEndedTrace(trace: Trace) {
89101
if (this.active) {

src/exporters/stackdriver.ts

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import {debug} from '../internal/util'
22
import {google} from 'googleapis'
33
import { JWT } from 'google-auth-library';
4-
//import { auth } from 'google-auth-library'
5-
//import { request } from 'http';
64
const cloudTrace = google.cloudtrace('v1')
75
var uuidv4 = require('uuid/v4');
86

@@ -14,25 +12,28 @@ export class Stackdriver {
1412
this.projectId = projectId;
1513
}
1614

17-
emit() {
15+
emit(trace) {
16+
debug('CURRENT TRACE ', trace)
1817
let resource = this.generateResource("cesar-opencensus",
1918
"2018-03-21T19:36:49.074Z",
2019
"2018-03-21T19:36:49.242Z")
21-
this.authorize(function(projectId, authClient, resource) {
22-
let request = {
23-
projectId: projectId,
24-
resource: resource,
25-
auth: authClient
20+
this.authorize(this.sendTrace, resource);
21+
}
22+
23+
sendTrace(projectId, authClient, resource) {
24+
let request = {
25+
projectId: projectId,
26+
resource: resource,
27+
auth: authClient
28+
}
29+
cloudTrace.projects.patchTraces(request, function(err) {
30+
if (err) {
31+
debug(err);
32+
return;
33+
} else {
34+
debug(JSON.stringify(request.resource));
2635
}
27-
cloudTrace.projects.patchTraces(request, function(err) {
28-
if (err) {
29-
debug(err);
30-
return;
31-
} else {
32-
debug(JSON.stringify(request.resource));
33-
}
34-
})
35-
}, resource);
36+
})
3637
}
3738

3839
private generateTraceId() {

0 commit comments

Comments
 (0)