@embrace-io/web-sdk
Version:
41 lines (40 loc) • 1.47 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const require_constants_attributes = require("../../constants/attributes.cjs");
const require_utils_spanPredicates = require("../../utils/spanPredicates.cjs");
let _opentelemetry_api = require("@opentelemetry/api");
let _opentelemetry_core = require("@opentelemetry/core");
//#region src/processors/SignalCorrelationSpanProcessor/SignalCorrelationSpanProcessor.ts
/**
* Records eligible spans as they start into a shared buffer, so a
* soft-navigation span can later correlate the logs and spans that started
* within its window.
*/
var SignalCorrelationSpanProcessor = class {
_buffer;
constructor({ buffer }) {
this._buffer = buffer;
}
forceFlush() {
return Promise.resolve(void 0);
}
onStart(span) {
try {
if (require_utils_spanPredicates.isSoftNavigationSpan(span) || require_utils_spanPredicates.isSessionPartSpan(span)) return;
this._buffer.record({
kind: "span",
id: span.spanContext().spanId,
startTime: (0, _opentelemetry_core.hrTimeToMilliseconds)(span.startTime),
type: span.attributes[require_constants_attributes.KEY_EMB_TYPE]
});
} catch (e) {
_opentelemetry_api.diag.error("failed to record span for correlation", e);
}
}
onEnd() {}
shutdown() {
return Promise.resolve(void 0);
}
};
//#endregion
exports.SignalCorrelationSpanProcessor = SignalCorrelationSpanProcessor;
//# sourceMappingURL=SignalCorrelationSpanProcessor.cjs.map