Skip to content

Commit 42a0e26

Browse files
authored
fix(example): add flushInterval to report spans to Jaeger exporter (open-telemetry#383)
1 parent 5f3e398 commit 42a0e26

File tree

2 files changed

+17
-13
lines changed

2 files changed

+17
-13
lines changed

examples/grpc/client.js

+6
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,12 @@ function main() {
4242
console.log('Greeting:', response.getMessage());
4343
});
4444
});
45+
46+
// The process must live for at least the interval past any traces that
47+
// must be exported, or some risk being lost if they are recorded after the
48+
// last export.
49+
console.log('Sleeping 5 seconds before shutdown to ensure all records are flushed.')
50+
setTimeout(() => { console.log('Completed.'); }, 5000);
4551
}
4652

4753
main();

examples/grpc/setup.js

+11-13
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,6 @@ const { ZipkinExporter } = require('@opentelemetry/exporter-zipkin');
88
const EXPORTER = process.env.EXPORTER || '';
99

1010
function setupTracerAndExporters(service) {
11-
let exporter;
12-
const options = {
13-
serviceName: service
14-
};
1511
const tracer = new NodeTracer({
1612
plugins: {
1713
grpc: {
@@ -21,19 +17,21 @@ function setupTracerAndExporters(service) {
2117
}
2218
}
2319
});
20+
21+
let exporter;
2422
if (EXPORTER.toLowerCase().startsWith('z')) {
25-
// need ignoreOutgoingUrls: [/spans/] to avoid infinity loops
26-
// TODO: manage this situation
27-
const zipkinExporter = new ZipkinExporter(options);
28-
exporter = new SimpleSpanProcessor(zipkinExporter);
23+
exporter = new ZipkinExporter({
24+
serviceName: service,
25+
});
2926
} else {
30-
// need to shutdown exporter in order to flush spans
31-
// TODO: check once PR #301 is merged
32-
const jaegerExporter = new JaegerExporter(options);
33-
exporter = new SimpleSpanProcessor(jaegerExporter);
27+
exporter = new JaegerExporter({
28+
serviceName: service,
29+
// The default flush interval is 5 seconds.
30+
flushInterval: 2000
31+
});
3432
}
3533

36-
tracer.addSpanProcessor(exporter);
34+
tracer.addSpanProcessor(new SimpleSpanProcessor(exporter));
3735

3836
// Initialize the OpenTelemetry APIs to use the BasicTracer bindings
3937
opentelemetry.initGlobalTracer(tracer);

0 commit comments

Comments
 (0)