@@ -24,9 +24,9 @@ import {Exporter, ExporterConfig, StatsEventListener} from './types';
2424/** Do not send span data */
2525export class NoopExporter implements Exporter {
2626 logger ?: loggerTypes . Logger ;
27- onStartSpan ( root : modelTypes . Span ) { }
28- onEndSpan ( root : modelTypes . Span ) { }
29- publish ( rootSpans : modelTypes . Span [ ] ) {
27+ onStartSpan ( span : modelTypes . Span ) { }
28+ onEndSpan ( span : modelTypes . Span ) { }
29+ publish ( spans : modelTypes . Span [ ] ) {
3030 return Promise . resolve ( ) ;
3131 }
3232}
@@ -39,7 +39,7 @@ export class ConsoleExporter implements Exporter {
3939 private buffer : ExporterBuffer ;
4040
4141 /**
42- * Constructs a new ConsoleLogExporter instance.
42+ * Constructs a new ConsoleExporter instance.
4343 * @param config Exporter configuration object to create a console log
4444 * exporter.
4545 */
@@ -55,19 +55,22 @@ export class ConsoleExporter implements Exporter {
5555 * @param span Ended span.
5656 */
5757 onEndSpan ( span : modelTypes . Span ) {
58+ // Add spans of a trace together when root is ended, skip non root spans.
59+ // publish function will extract child spans from root.
60+ if ( ! span . isRootSpan ( ) ) return ;
5861 this . buffer . addToBuffer ( span ) ;
5962 }
6063
6164 /**
6265 * Sends the spans information to the console.
63- * @param rootSpans A list of root spans to publish.
66+ * @param spans A list of spans to publish.
6467 */
65- publish ( rootSpans : modelTypes . Span [ ] ) {
66- rootSpans . map ( ( root ) => {
67- const ROOT_STR = `RootSpan: {traceId: ${ root . traceId } , spanId: ${
68- root . id } , name: ${ root . name } }`;
69- const SPANS_STR : string [ ] = root . spans . map (
70- ( span ) => [ `\t\t{spanId: ${ span . id } , name: ${ span . name } }` ] . join (
68+ publish ( spans : modelTypes . Span [ ] ) {
69+ spans . map ( ( span ) => {
70+ const ROOT_STR = `RootSpan: {traceId: ${ span . traceId } , spanId: ${
71+ span . id } , name: ${ span . name } }`;
72+ const SPANS_STR : string [ ] = span . spans . map (
73+ ( child ) => [ `\t\t{spanId: ${ child . id } , name: ${ child . name } }` ] . join (
7174 '\n' ) ) ;
7275
7376 const result : string [ ] = [ ] ;
@@ -85,7 +88,6 @@ export class ConsoleStatsExporter implements StatsEventListener {
8588 /**
8689 * Event called when a view is registered
8790 * @param view registered view
88- * @param measure registered measure
8991 */
9092 onRegisterView ( view : View ) {
9193 console . log ( `View registered: ${ view . name } , Measure registered: ${
0 commit comments