fix(example): add flushInterval to report spans to Jaeger exporter (#383)
This commit is contained in:
parent
5f3e3982c7
commit
42a0e265b3
|
@ -42,6 +42,12 @@ function main() {
|
||||||
console.log('Greeting:', response.getMessage());
|
console.log('Greeting:', response.getMessage());
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// The process must live for at least the interval past any traces that
|
||||||
|
// must be exported, or some risk being lost if they are recorded after the
|
||||||
|
// last export.
|
||||||
|
console.log('Sleeping 5 seconds before shutdown to ensure all records are flushed.')
|
||||||
|
setTimeout(() => { console.log('Completed.'); }, 5000);
|
||||||
}
|
}
|
||||||
|
|
||||||
main();
|
main();
|
||||||
|
|
|
@ -8,10 +8,6 @@ const { ZipkinExporter } = require('@opentelemetry/exporter-zipkin');
|
||||||
const EXPORTER = process.env.EXPORTER || '';
|
const EXPORTER = process.env.EXPORTER || '';
|
||||||
|
|
||||||
function setupTracerAndExporters(service) {
|
function setupTracerAndExporters(service) {
|
||||||
let exporter;
|
|
||||||
const options = {
|
|
||||||
serviceName: service
|
|
||||||
};
|
|
||||||
const tracer = new NodeTracer({
|
const tracer = new NodeTracer({
|
||||||
plugins: {
|
plugins: {
|
||||||
grpc: {
|
grpc: {
|
||||||
|
@ -21,19 +17,21 @@ function setupTracerAndExporters(service) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
let exporter;
|
||||||
if (EXPORTER.toLowerCase().startsWith('z')) {
|
if (EXPORTER.toLowerCase().startsWith('z')) {
|
||||||
// need ignoreOutgoingUrls: [/spans/] to avoid infinity loops
|
exporter = new ZipkinExporter({
|
||||||
// TODO: manage this situation
|
serviceName: service,
|
||||||
const zipkinExporter = new ZipkinExporter(options);
|
});
|
||||||
exporter = new SimpleSpanProcessor(zipkinExporter);
|
|
||||||
} else {
|
} else {
|
||||||
// need to shutdown exporter in order to flush spans
|
exporter = new JaegerExporter({
|
||||||
// TODO: check once PR #301 is merged
|
serviceName: service,
|
||||||
const jaegerExporter = new JaegerExporter(options);
|
// The default flush interval is 5 seconds.
|
||||||
exporter = new SimpleSpanProcessor(jaegerExporter);
|
flushInterval: 2000
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
tracer.addSpanProcessor(exporter);
|
tracer.addSpanProcessor(new SimpleSpanProcessor(exporter));
|
||||||
|
|
||||||
// Initialize the OpenTelemetry APIs to use the BasicTracer bindings
|
// Initialize the OpenTelemetry APIs to use the BasicTracer bindings
|
||||||
opentelemetry.initGlobalTracer(tracer);
|
opentelemetry.initGlobalTracer(tracer);
|
||||||
|
|
Loading…
Reference in New Issue