@temporalio/interceptors-opentelemetry
Version:
Temporal.io SDK interceptors bundle for tracing with opentelemetry
60 lines • 2.36 kB
JavaScript
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SpanExporter = void 0;
const core_1 = require("@opentelemetry/core");
const wf = __importStar(require("@temporalio/workflow"));
const { exporter } = wf.proxySinks();
class SpanExporter {
export(spans, resultCallback) {
exporter.export(spans.map((span) => this.makeSerializable(span)));
resultCallback({ code: core_1.ExportResultCode.SUCCESS });
}
async shutdown() {
// Nothing to shut down
}
makeSerializable(span) {
return {
name: span.name,
kind: span.kind,
spanContext: span.spanContext(),
parentSpanId: span.parentSpanId,
startTime: span.startTime,
endTime: span.endTime,
status: span.status,
attributes: span.attributes,
links: span.links,
events: span.events,
duration: span.duration,
ended: span.ended,
droppedAttributesCount: span.droppedAttributesCount,
droppedEventsCount: span.droppedEventsCount,
droppedLinksCount: span.droppedLinksCount,
instrumentationLibrary: span.instrumentationLibrary,
};
}
}
exports.SpanExporter = SpanExporter;
//# sourceMappingURL=span-exporter.js.map
;