@@ -21,6 +21,20 @@ import {google} from 'googleapis';
2121google . options ( { headers : { 'x-opencensus-outgoing-request' : 0x1 } } ) ;
2222const cloudTrace = google . cloudtrace ( 'v1' ) ;
2323
24+ type TranslatedTrace = {
25+ projectId : string ,
26+ traceId : string ,
27+ spans : TranslatedSpan [ ]
28+ } ;
29+
30+ type TranslatedSpan = {
31+ name : string ,
32+ kind : string ,
33+ spanId : string ,
34+ startTime : Date ,
35+ endTime : Date
36+ } ;
37+
2438type ExporterBuffer = typeof classes . ExporterBuffer ;
2539
2640/**
@@ -79,15 +93,15 @@ export class StackdriverTraceExporter implements types.Exporter {
7993 for ( const root of rootSpans ) {
8094 this . failBuffer . push ( root . spanContext ) ;
8195 }
82- return ` ${ err } ` ;
96+ return err ;
8397 } ) ;
8498 }
8599
86100 /**
87101 * Translates root span data to Stackdriver's trace format.
88102 * @param root
89103 */
90- private translateTrace ( root : types . RootSpan ) {
104+ private translateTrace ( root : types . RootSpan ) : TranslatedTrace {
91105 const spanList = root . spans . map ( span => this . translateSpan ( span ) ) ;
92106 spanList . push ( this . translateSpan ( root ) ) ;
93107
@@ -98,7 +112,7 @@ export class StackdriverTraceExporter implements types.Exporter {
98112 * Translates span data to Stackdriver's span format.
99113 * @param span
100114 */
101- private translateSpan ( span : types . Span ) {
115+ private translateSpan ( span : types . Span ) : TranslatedSpan {
102116 return {
103117 name : span . name ,
104118 kind : 'SPAN_KIND_UNSPECIFIED' ,
@@ -114,11 +128,11 @@ export class StackdriverTraceExporter implements types.Exporter {
114128 */
115129 private sendTrace ( traces : TracesWithCredentials ) {
116130 return new Promise ( ( resolve , reject ) => {
117- cloudTrace . projects . patchTraces ( traces , err => {
131+ cloudTrace . projects . patchTraces ( traces , ( err : Error ) => {
118132 if ( err ) {
119- const errorMsg = `sendTrace error: ${ err . message } ` ;
120- this . logger . error ( errorMsg ) ;
121- reject ( errorMsg ) ;
133+ err . message = `sendTrace error: ${ err . message } ` ;
134+ this . logger . error ( err . message ) ;
135+ reject ( err ) ;
122136 } else {
123137 const successMsg = 'sendTrace sucessfully' ;
124138 this . logger . debug ( successMsg ) ;
@@ -133,7 +147,7 @@ export class StackdriverTraceExporter implements types.Exporter {
133147 * authenticates the client and calls a method to send the traces data.
134148 * @param stackdriverTraces
135149 */
136- private authorize ( stackdriverTraces ) {
150+ private authorize ( stackdriverTraces : TranslatedTrace [ ] ) {
137151 return auth . getApplicationDefault ( )
138152 . then ( ( client ) => {
139153 let authClient = client . credential as JWT ;
0 commit comments