appdynamics
Version:
Performance Profiler and Monitor
44 lines (37 loc) • 1.04 kB
JavaScript
;
const core_1 = require("@opentelemetry/core");
class AppdynamicsSpanExporter {
constructor(logger) {
this.logger = logger;
}
export(spans, resultCallback) {
return this._sendSpans(spans, resultCallback);
}
shutdown() {
this._sendSpans([]);
return Promise.resolve();
}
_exportInfo(span) {
return {
traceId: span.spanContext().traceId,
parentId: span.parentSpanId,
name: span.name,
id: span.spanContext().spanId,
kind: span.kind,
timestamp: core_1.hrTimeToMicroseconds(span.startTime),
duration: core_1.hrTimeToMicroseconds(span.duration),
attributes: span.attributes,
status: span.status,
events: span.events,
};
}
_sendSpans(spans, done) {
for (const span of spans) {
this.logger.trace("Exporting span : " + JSON.stringify(this._exportInfo(span)));
}
if (done) {
return done({ code: core_1.ExportResultCode.SUCCESS });
}
}
}
module.exports.AppdynamicsSpanExporter = AppdynamicsSpanExporter;