lightstep-tracer
Version:
> ❗ **This instrumentation is no longer recommended**. Please review [documentation on setting up and configuring the OpenTelemetry Node.js Launcher](https://github.com/lightstep/otel-launcher-node) or [OpenTelemetry JS (Browser)](https://github.com/open-
68 lines (58 loc) • 2.7 kB
JavaScript
var path = require("path");
var fs = require("fs");
var child_process = require("child_process");
var FileTransport = require("../../util/file_transport");
var lightstep = require('../../..');
describe("Reporting loop", function() {
it("should flush at a regular interval", function(done) {
this.timeout(5000);
var transport = new FileTransport(path.join(__dirname, '../../results/report_flush_loop.json'));
var tracer = new lightstep.Tracer({
access_token : "{your_access_token}",
component_name : "api-javascript/unit-test/report_flush_loop",
max_reporting_interval_millis : 10,
override_transport : transport,
disable_reporting_loop : false,
delay_initial_report_millis : 0,
});
var count = 0;
var timer = setInterval(function() {
var span = tracer.startSpan("test");
span.logEvent("Count = " + count);
span.finish();
count++;
if (count === 20) {
clearInterval(timer);
var reqs = transport.readReports();
// Conservatively check below the theoretical values since this
// test inherently has timing issues.
expect(reqs.spanRecordCount()).to.be.at.least(10);
expect(reqs.reportCount()).to.be.at.least(2);
return done();
}
}, 10);
});
});
describe("Final report", function () {
it("flush on exit", function (done) {
var script = path.join(__dirname, "on_exit/child.js");
var reportFile = "on_exit_child.json";
var child = child_process.fork(script, [ reportFile ]);
child.on('close', function() {
var reqs = util.requestsFromFile(reportFile);
expect(reqs.spanRecordCount()).to.be.at.least(10);
expect(reqs.hasSpanRecord("test_span_0")).to.be.true;
expect(reqs.hasSpanRecord("test_span_1")).to.be.true;
expect(reqs.hasSpanRecord("test_span_2")).to.be.true;
expect(reqs.hasSpanRecord("test_span_3")).to.be.true;
expect(reqs.hasSpanRecord("test_span_4")).to.be.true;
expect(reqs.hasSpanRecord("test_span_5")).to.be.true;
expect(reqs.hasSpanRecord("test_span_6")).to.be.true;
expect(reqs.hasSpanRecord("test_span_7")).to.be.true;
expect(reqs.hasSpanRecord("test_span_8")).to.be.true;
expect(reqs.hasSpanRecord("test_span_9")).to.be.true;
expect(reqs.spanRecordCount()).to.be.at.least(1);
done();
});
});
});