arvo-event-handler 1.1.11 → 1.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,5 +16,5 @@ export type ExecutionOpenTelemetryConfiguration = {
16
16
  * Optional OpenTelemetry tracer instance to use for creating spans.
17
17
  * If not provided, a default tracer may be used depending on the implementation.
18
18
  */
19
- tracer?: Tracer;
19
+ tracer: Tracer | null;
20
20
  };
@@ -0,0 +1,42 @@
1
+ import { SpanKind } from "@opentelemetry/api";
2
+ import { ArvoEvent, ArvoExecutionSpanKind, OpenInferenceSpanKind } from "arvo-core";
3
+ import { ExecutionOpenTelemetryConfiguration } from "./types";
4
+ /**
5
+ * Interface defining the required parameters for creating a handler execution span.
6
+ *
7
+ * @interface ICreateHandlerExecutionSpan
8
+ * @property {string} spanName - The name to be assigned to the created span
9
+ * @property {Object} spanKinds - Object containing different span kind classifications
10
+ * @property {SpanKind} spanKinds.kind - OpenTelemetry span kind
11
+ * @property {OpenInferenceSpanKind} spanKinds.openInference - OpenInference-specific span classification
12
+ * @property {ArvoExecutionSpanKind} spanKinds.arvoExecution - Arvo execution-specific span classification
13
+ * @property {ArvoEvent} event - The Arvo event associated with this span
14
+ * @property {ExecutionOpenTelemetryConfiguration} opentelemetryConfig - Configuration for OpenTelemetry behavior
15
+ */
16
+ interface ICreateHandlerExecutionSpan {
17
+ spanName: string;
18
+ spanKinds: {
19
+ kind: SpanKind;
20
+ openInference: OpenInferenceSpanKind;
21
+ arvoExecution: ArvoExecutionSpanKind;
22
+ };
23
+ event: ArvoEvent;
24
+ opentelemetryConfig?: ExecutionOpenTelemetryConfiguration;
25
+ }
26
+ /**
27
+ * Creates an OpenTelemetry span for tracking handler execution.
28
+ *
29
+ * This function creates a span either from an existing event or as a new span,
30
+ * depending on the configuration. It includes attributes for both OpenInference
31
+ * and Arvo execution span kinds.
32
+ *
33
+ * @param params - Parameters for creating the handler execution span
34
+ * @param params.spanName - Name of the span to be created
35
+ * @param params.spanKinds - Object containing different span kind classifications
36
+ * @param params.event - The Arvo event associated with this span
37
+ * @param params.opentelemetryConfig - OpenTelemetry configuration
38
+ *
39
+ * @returns A new OpenTelemetry span configured according to the parameters
40
+ */
41
+ export declare const createHandlerExecutionSpan: ({ spanName, spanKinds, event, opentelemetryConfig, }: ICreateHandlerExecutionSpan) => import("@opentelemetry/api").Span;
42
+ export {};
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createHandlerExecutionSpan = void 0;
4
+ var utils_1 = require("../OpenTelemetry/utils");
5
+ var arvo_core_1 = require("arvo-core");
6
+ var OpenTelemetry_1 = require("../OpenTelemetry");
7
+ /**
8
+ * Creates an OpenTelemetry span for tracking handler execution.
9
+ *
10
+ * This function creates a span either from an existing event or as a new span,
11
+ * depending on the configuration. It includes attributes for both OpenInference
12
+ * and Arvo execution span kinds.
13
+ *
14
+ * @param params - Parameters for creating the handler execution span
15
+ * @param params.spanName - Name of the span to be created
16
+ * @param params.spanKinds - Object containing different span kind classifications
17
+ * @param params.event - The Arvo event associated with this span
18
+ * @param params.opentelemetryConfig - OpenTelemetry configuration
19
+ *
20
+ * @returns A new OpenTelemetry span configured according to the parameters
21
+ */
22
+ var createHandlerExecutionSpan = function (_a) {
23
+ var _b;
24
+ var _c;
25
+ var spanName = _a.spanName, spanKinds = _a.spanKinds, event = _a.event, _d = _a.opentelemetryConfig, opentelemetryConfig = _d === void 0 ? {
26
+ inheritFrom: 'event',
27
+ tracer: null
28
+ } : _d;
29
+ var spanOptions = {
30
+ kind: spanKinds.kind,
31
+ attributes: (_b = {},
32
+ _b[arvo_core_1.OpenInference.ATTR_SPAN_KIND] = spanKinds.openInference,
33
+ _b[arvo_core_1.ArvoExecution.ATTR_SPAN_KIND] = spanKinds.arvoExecution,
34
+ _b),
35
+ };
36
+ var tracer = (_c = opentelemetryConfig.tracer) !== null && _c !== void 0 ? _c : (0, OpenTelemetry_1.fetchOpenTelemetryTracer)();
37
+ return opentelemetryConfig.inheritFrom === "event" ?
38
+ (0, utils_1.createSpanFromEvent)(spanName, event, spanKinds, tracer) :
39
+ tracer.startSpan(spanName, spanOptions);
40
+ };
41
+ exports.createHandlerExecutionSpan = createHandlerExecutionSpan;
@@ -47,7 +47,7 @@ export default class ArvoEventHandler<TContract extends ArvoContract> extends Ab
47
47
  *
48
48
  * @param event - The event to handle.
49
49
  * @param opentelemetry - Configuration for OpenTelemetry integration, including tracing options
50
- * and context inheritance settings.
50
+ * and context inheritance settings. Default is inherit from event and internal tracer
51
51
  * @returns A promise that resolves to an array of resulting ArvoEvents.
52
52
  *
53
53
  * @remarks
@@ -58,9 +58,9 @@ var arvo_core_1 = require("arvo-core");
58
58
  var schema_1 = require("arvo-core/dist/ArvoEvent/schema");
59
59
  var api_1 = require("@opentelemetry/api");
60
60
  var utils_1 = require("../utils");
61
- var utils_2 = require("../OpenTelemetry/utils");
62
61
  var AbstractArvoEventHandler_1 = __importDefault(require("../AbstractArvoEventHandler"));
63
62
  var OpenTelemetry_1 = require("../OpenTelemetry");
63
+ var utils_2 = require("../AbstractArvoEventHandler/utils");
64
64
  /**
65
65
  * Represents an event handler for Arvo contracts.
66
66
  *
@@ -115,7 +115,7 @@ var ArvoEventHandler = /** @class */ (function (_super) {
115
115
  *
116
116
  * @param event - The event to handle.
117
117
  * @param opentelemetry - Configuration for OpenTelemetry integration, including tracing options
118
- * and context inheritance settings.
118
+ * and context inheritance settings. Default is inherit from event and internal tracer
119
119
  * @returns A promise that resolves to an array of resulting ArvoEvents.
120
120
  *
121
121
  * @remarks
@@ -159,35 +159,23 @@ var ArvoEventHandler = /** @class */ (function (_super) {
159
159
  * - Propagates trace context to output events
160
160
  * - Handles error cases and sets appropriate span status
161
161
  */
162
- ArvoEventHandler.prototype.execute = function (event_1) {
163
- return __awaiter(this, arguments, void 0, function (event, opentelemetry) {
164
- var spanName, spanKinds, spanOptions, span, eventFactory;
165
- var _a;
162
+ ArvoEventHandler.prototype.execute = function (event, opentelemetry) {
163
+ return __awaiter(this, void 0, void 0, function () {
164
+ var span, eventFactory;
166
165
  var _this = this;
167
- var _b;
168
- if (opentelemetry === void 0) { opentelemetry = {
169
- inheritFrom: 'event',
170
- tracer: OpenTelemetry_1.ArvoEventHandlerTracer,
171
- }; }
172
- return __generator(this, function (_c) {
173
- switch (_c.label) {
166
+ return __generator(this, function (_a) {
167
+ switch (_a.label) {
174
168
  case 0:
175
- spanName = "ArvoEventHandler<".concat(this.contract.uri, ">.execute<").concat(event.type, ">");
176
- spanKinds = {
177
- kind: this.openTelemetrySpanKind,
178
- openInference: this.openInferenceSpanKind,
179
- arvoExecution: this.arvoExecutionSpanKind,
180
- };
181
- spanOptions = {
182
- kind: spanKinds.kind,
183
- attributes: (_a = {},
184
- _a[arvo_core_1.OpenInference.ATTR_SPAN_KIND] = spanKinds.openInference,
185
- _a[arvo_core_1.ArvoExecution.ATTR_SPAN_KIND] = spanKinds.arvoExecution,
186
- _a),
187
- };
188
- span = opentelemetry.inheritFrom === 'event'
189
- ? (0, utils_2.createSpanFromEvent)(spanName, event, spanKinds, opentelemetry.tracer)
190
- : ((_b = opentelemetry.tracer) !== null && _b !== void 0 ? _b : OpenTelemetry_1.ArvoEventHandlerTracer).startSpan(spanName, spanOptions);
169
+ span = (0, utils_2.createHandlerExecutionSpan)({
170
+ spanName: "ArvoEventHandler<".concat(this.contract.uri, ">.execute<").concat(event.type, ">"),
171
+ spanKinds: {
172
+ kind: this.openTelemetrySpanKind,
173
+ openInference: this.openInferenceSpanKind,
174
+ arvoExecution: this.arvoExecutionSpanKind,
175
+ },
176
+ event: event,
177
+ opentelemetryConfig: opentelemetry
178
+ });
191
179
  eventFactory = (0, arvo_core_1.createArvoEventFactory)(this.contract);
192
180
  return [4 /*yield*/, api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), function () { return __awaiter(_this, void 0, void 0, function () {
193
181
  var otelSpanHeaders, inputEventValidation, _handleOutput, outputs, error_1, result;
@@ -226,7 +214,7 @@ var ArvoEventHandler = /** @class */ (function (_super) {
226
214
  return [2 /*return*/, (0, utils_1.eventHandlerOutputEventCreator)(outputs, otelSpanHeaders, this.source, event, this.executionunits, function (param, extension) {
227
215
  var _a;
228
216
  return eventFactory.emits(param, extension, {
229
- tracer: (_a = opentelemetry.tracer) !== null && _a !== void 0 ? _a : OpenTelemetry_1.ArvoEventHandlerTracer,
217
+ tracer: (_a = opentelemetry === null || opentelemetry === void 0 ? void 0 : opentelemetry.tracer) !== null && _a !== void 0 ? _a : (0, OpenTelemetry_1.fetchOpenTelemetryTracer)(),
230
218
  });
231
219
  })];
232
220
  case 3:
@@ -247,7 +235,7 @@ var ArvoEventHandler = /** @class */ (function (_super) {
247
235
  traceparent: (_a = otelSpanHeaders.traceparent) !== null && _a !== void 0 ? _a : undefined,
248
236
  tracestate: (_b = otelSpanHeaders.tracestate) !== null && _b !== void 0 ? _b : undefined,
249
237
  accesscontrol: (_c = event.accesscontrol) !== null && _c !== void 0 ? _c : undefined,
250
- }, {}, { tracer: (_d = opentelemetry.tracer) !== null && _d !== void 0 ? _d : OpenTelemetry_1.ArvoEventHandlerTracer });
238
+ }, {}, { tracer: (_d = opentelemetry === null || opentelemetry === void 0 ? void 0 : opentelemetry.tracer) !== null && _d !== void 0 ? _d : (0, OpenTelemetry_1.fetchOpenTelemetryTracer)() });
251
239
  Object.entries(result.otelAttributes).forEach(function (_a) {
252
240
  var key = _a[0], value = _a[1];
253
241
  return span.setAttribute("to_emit.0.".concat(key), value);
@@ -260,7 +248,7 @@ var ArvoEventHandler = /** @class */ (function (_super) {
260
248
  }
261
249
  });
262
250
  }); })];
263
- case 1: return [2 /*return*/, _c.sent()];
251
+ case 1: return [2 /*return*/, _a.sent()];
264
252
  }
265
253
  });
266
254
  });
@@ -8,7 +8,7 @@ import { ExecutionOpenTelemetryConfiguration } from '../AbstractArvoEventHandler
8
8
  * ArvoEventRouter class handles routing of ArvoEvents to appropriate event handlers.
9
9
  */
10
10
  export declare class ArvoEventRouter extends AbstractArvoEventHandler {
11
- private _handlerDefaultSource;
11
+ private readonly _handlerDefaultSource;
12
12
  private readonly _source;
13
13
  /**
14
14
  * The source name of the router.
@@ -50,7 +50,7 @@ export declare class ArvoEventRouter extends AbstractArvoEventHandler {
50
50
  *
51
51
  * @param event - The ArvoEvent to be processed and routed.
52
52
  * @param opentelemetry - Configuration for OpenTelemetry integration, including tracing options
53
- * and context inheritance settings.
53
+ * and context inheritance settings. Default is inherit from event and internal tracer
54
54
  * @returns A Promise that resolves to an array of ArvoEvents.
55
55
  *
56
56
  * @remarks
@@ -59,9 +59,9 @@ var arvo_core_1 = require("arvo-core");
59
59
  var utils_1 = require("../utils");
60
60
  var api_1 = require("@opentelemetry/api");
61
61
  var utils_2 = require("./utils");
62
- var utils_3 = require("../OpenTelemetry/utils");
63
62
  var AbstractArvoEventHandler_1 = __importDefault(require("../AbstractArvoEventHandler"));
64
63
  var OpenTelemetry_1 = require("../OpenTelemetry");
64
+ var utils_3 = require("../AbstractArvoEventHandler/utils");
65
65
  /**
66
66
  * ArvoEventRouter class handles routing of ArvoEvents to appropriate event handlers.
67
67
  */
@@ -124,7 +124,7 @@ var ArvoEventRouter = /** @class */ (function (_super) {
124
124
  *
125
125
  * @param event - The ArvoEvent to be processed and routed.
126
126
  * @param opentelemetry - Configuration for OpenTelemetry integration, including tracing options
127
- * and context inheritance settings.
127
+ * and context inheritance settings. Default is inherit from event and internal tracer
128
128
  * @returns A Promise that resolves to an array of ArvoEvents.
129
129
  *
130
130
  * @remarks
@@ -166,46 +166,36 @@ var ArvoEventRouter = /** @class */ (function (_super) {
166
166
  * - Execution units are tracked for both successful executions and errors.
167
167
  * - The router's default execution units are used for error events.
168
168
  */
169
- ArvoEventRouter.prototype.execute = function (event_1) {
170
- return __awaiter(this, arguments, void 0, function (event, opentelemetry) {
171
- var spanName, spanKinds, spanOptions, span;
172
- var _a;
169
+ ArvoEventRouter.prototype.execute = function (event, opentelemetry) {
170
+ return __awaiter(this, void 0, void 0, function () {
171
+ var span;
173
172
  var _this = this;
174
- var _b, _c;
175
- if (opentelemetry === void 0) { opentelemetry = {
176
- inheritFrom: 'event',
177
- tracer: OpenTelemetry_1.ArvoEventHandlerTracer,
178
- }; }
179
- return __generator(this, function (_d) {
180
- switch (_d.label) {
173
+ var _a;
174
+ return __generator(this, function (_b) {
175
+ switch (_b.label) {
181
176
  case 0:
182
- spanName = "ArvoEventRouter.source<".concat((_b = this._source) !== null && _b !== void 0 ? _b : 'arvo.event.router', ">.execute<").concat(event.type, ">");
183
- spanKinds = {
184
- kind: this.openTelemetrySpanKind,
185
- openInference: this.openInferenceSpanKind,
186
- arvoExecution: this.arvoExecutionSpanKind,
187
- };
188
- spanOptions = {
189
- kind: spanKinds.kind,
190
- attributes: (_a = {},
191
- _a[arvo_core_1.OpenInference.ATTR_SPAN_KIND] = spanKinds.openInference,
192
- _a[arvo_core_1.ArvoExecution.ATTR_SPAN_KIND] = spanKinds.arvoExecution,
193
- _a),
194
- };
195
- span = opentelemetry.inheritFrom === 'event'
196
- ? (0, utils_3.createSpanFromEvent)(spanName, event, spanKinds, opentelemetry.tracer)
197
- : ((_c = opentelemetry.tracer) !== null && _c !== void 0 ? _c : OpenTelemetry_1.ArvoEventHandlerTracer).startSpan(spanName, spanOptions);
177
+ span = (0, utils_3.createHandlerExecutionSpan)({
178
+ spanName: "ArvoEventRouter.source<".concat((_a = this._source) !== null && _a !== void 0 ? _a : 'arvo.event.router', ">.execute<").concat(event.type, ">"),
179
+ spanKinds: {
180
+ kind: this.openTelemetrySpanKind,
181
+ openInference: this.openInferenceSpanKind,
182
+ arvoExecution: this.arvoExecutionSpanKind,
183
+ },
184
+ event: event,
185
+ opentelemetryConfig: opentelemetry
186
+ });
198
187
  return [4 /*yield*/, api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), function () { return __awaiter(_this, void 0, void 0, function () {
199
188
  var otelSpanHeaders, newEvent, results, error_1;
200
189
  var _this = this;
201
- return __generator(this, function (_a) {
202
- switch (_a.label) {
190
+ var _a;
191
+ return __generator(this, function (_b) {
192
+ switch (_b.label) {
203
193
  case 0:
204
194
  otelSpanHeaders = (0, arvo_core_1.currentOpenTelemetryHeaders)();
205
195
  newEvent = (0, utils_2.deleteOtelHeaders)(event);
206
- _a.label = 1;
196
+ _b.label = 1;
207
197
  case 1:
208
- _a.trys.push([1, 3, 4, 5]);
198
+ _b.trys.push([1, 3, 4, 5]);
209
199
  span.setStatus({ code: api_1.SpanStatusCode.OK });
210
200
  if (!(0, utils_1.isNullOrUndefined)(this._source) &&
211
201
  newEvent.to !== this._source) {
@@ -214,9 +204,9 @@ var ArvoEventRouter = /** @class */ (function (_super) {
214
204
  if (!this.handlersMap[newEvent.type]) {
215
205
  throw new Error((0, arvo_core_1.cleanString)("\n Invalid event (type=".concat(newEvent.type, "). No valid handler \n <handler[*].contract.accepts.type> found in the router.\n ")));
216
206
  }
217
- return [4 /*yield*/, this.handlersMap[newEvent.type].execute(newEvent, { inheritFrom: 'execution', tracer: opentelemetry.tracer })];
207
+ return [4 /*yield*/, this.handlersMap[newEvent.type].execute(newEvent, { inheritFrom: 'execution', tracer: (_a = opentelemetry === null || opentelemetry === void 0 ? void 0 : opentelemetry.tracer) !== null && _a !== void 0 ? _a : (0, OpenTelemetry_1.fetchOpenTelemetryTracer)() })];
218
208
  case 2:
219
- results = _a.sent();
209
+ results = _b.sent();
220
210
  return [2 /*return*/, results.map(function (event) {
221
211
  var _a;
222
212
  return new arvo_core_1.ArvoEvent({
@@ -237,11 +227,11 @@ var ArvoEventRouter = /** @class */ (function (_super) {
237
227
  }, event.data, event.cloudevent.extensions);
238
228
  })];
239
229
  case 3:
240
- error_1 = _a.sent();
230
+ error_1 = _b.sent();
241
231
  return [2 /*return*/, (0, utils_1.createHandlerErrorOutputEvent)(error_1, otelSpanHeaders, "sys.".concat(this.source, ".error"), this.source, event, this.executionunits, function (param, extension) {
242
232
  var _a;
243
233
  return (0, arvo_core_1.createArvoEvent)(param, extension, {
244
- tracer: (_a = opentelemetry.tracer) !== null && _a !== void 0 ? _a : OpenTelemetry_1.ArvoEventHandlerTracer,
234
+ tracer: (_a = opentelemetry === null || opentelemetry === void 0 ? void 0 : opentelemetry.tracer) !== null && _a !== void 0 ? _a : (0, OpenTelemetry_1.fetchOpenTelemetryTracer)(),
245
235
  });
246
236
  })];
247
237
  case 4:
@@ -251,7 +241,7 @@ var ArvoEventRouter = /** @class */ (function (_super) {
251
241
  }
252
242
  });
253
243
  }); })];
254
- case 1: return [2 /*return*/, _d.sent()];
244
+ case 1: return [2 /*return*/, _b.sent()];
255
245
  }
256
246
  });
257
247
  });
@@ -57,9 +57,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
57
57
  var api_1 = require("@opentelemetry/api");
58
58
  var arvo_core_1 = require("arvo-core");
59
59
  var utils_1 = require("../utils");
60
- var utils_2 = require("../OpenTelemetry/utils");
61
60
  var AbstractArvoEventHandler_1 = __importDefault(require("../AbstractArvoEventHandler"));
62
61
  var OpenTelemetry_1 = require("../OpenTelemetry");
62
+ var utils_2 = require("../AbstractArvoEventHandler/utils");
63
63
  /**
64
64
  * Represents a Multi ArvoEvent handler that can process multiple event types.
65
65
  *
@@ -152,35 +152,23 @@ var MultiArvoEventHandler = /** @class */ (function (_super) {
152
152
  * - If they don't match, an error is thrown with a descriptive message.
153
153
  * - This ensures that the handler only processes events intended for it.
154
154
  */
155
- MultiArvoEventHandler.prototype.execute = function (event_1) {
156
- return __awaiter(this, arguments, void 0, function (event, opentelemetry) {
157
- var spanName, spanKinds, spanOptions, span;
158
- var _a;
155
+ MultiArvoEventHandler.prototype.execute = function (event, opentelemetry) {
156
+ return __awaiter(this, void 0, void 0, function () {
157
+ var span;
159
158
  var _this = this;
160
- var _b;
161
- if (opentelemetry === void 0) { opentelemetry = {
162
- inheritFrom: 'event',
163
- tracer: OpenTelemetry_1.ArvoEventHandlerTracer,
164
- }; }
165
- return __generator(this, function (_c) {
166
- switch (_c.label) {
159
+ return __generator(this, function (_a) {
160
+ switch (_a.label) {
167
161
  case 0:
168
- spanName = "MutliArvoEventHandler.source<".concat(this.source, ">.execute<").concat(event.type, ">");
169
- spanKinds = {
170
- kind: this.openTelemetrySpanKind,
171
- openInference: this.openInferenceSpanKind,
172
- arvoExecution: this.arvoExecutionSpanKind,
173
- };
174
- spanOptions = {
175
- kind: spanKinds.kind,
176
- attributes: (_a = {},
177
- _a[arvo_core_1.OpenInference.ATTR_SPAN_KIND] = spanKinds.openInference,
178
- _a[arvo_core_1.ArvoExecution.ATTR_SPAN_KIND] = spanKinds.arvoExecution,
179
- _a),
180
- };
181
- span = opentelemetry.inheritFrom === 'event'
182
- ? (0, utils_2.createSpanFromEvent)(spanName, event, spanKinds, opentelemetry.tracer)
183
- : ((_b = opentelemetry.tracer) !== null && _b !== void 0 ? _b : OpenTelemetry_1.ArvoEventHandlerTracer).startSpan(spanName, spanOptions);
162
+ span = (0, utils_2.createHandlerExecutionSpan)({
163
+ spanName: "MutliArvoEventHandler.source<".concat(this.source, ">.execute<").concat(event.type, ">"),
164
+ spanKinds: {
165
+ kind: this.openTelemetrySpanKind,
166
+ openInference: this.openInferenceSpanKind,
167
+ arvoExecution: this.arvoExecutionSpanKind,
168
+ },
169
+ event: event,
170
+ opentelemetryConfig: opentelemetry
171
+ });
184
172
  return [4 /*yield*/, api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), function () { return __awaiter(_this, void 0, void 0, function () {
185
173
  var otelSpanHeaders, _handlerOutput, outputs, error_1;
186
174
  return __generator(this, function (_a) {
@@ -216,7 +204,7 @@ var MultiArvoEventHandler = /** @class */ (function (_super) {
216
204
  return [2 /*return*/, (0, utils_1.eventHandlerOutputEventCreator)(outputs, otelSpanHeaders, this.source, event, this.executionunits, function (param, extension) {
217
205
  var _a;
218
206
  return (0, arvo_core_1.createArvoEvent)(param, extension, {
219
- tracer: (_a = opentelemetry.tracer) !== null && _a !== void 0 ? _a : OpenTelemetry_1.ArvoEventHandlerTracer,
207
+ tracer: (_a = opentelemetry === null || opentelemetry === void 0 ? void 0 : opentelemetry.tracer) !== null && _a !== void 0 ? _a : (0, OpenTelemetry_1.fetchOpenTelemetryTracer)(),
220
208
  });
221
209
  })];
222
210
  case 3:
@@ -224,7 +212,7 @@ var MultiArvoEventHandler = /** @class */ (function (_super) {
224
212
  return [2 /*return*/, (0, utils_1.createHandlerErrorOutputEvent)(error_1, otelSpanHeaders, "sys.".concat(this.source, ".error"), this.source, event, this.executionunits, function (param, extension) {
225
213
  var _a;
226
214
  return (0, arvo_core_1.createArvoEvent)(param, extension, {
227
- tracer: (_a = opentelemetry.tracer) !== null && _a !== void 0 ? _a : OpenTelemetry_1.ArvoEventHandlerTracer,
215
+ tracer: (_a = opentelemetry === null || opentelemetry === void 0 ? void 0 : opentelemetry.tracer) !== null && _a !== void 0 ? _a : (0, OpenTelemetry_1.fetchOpenTelemetryTracer)(),
228
216
  });
229
217
  })];
230
218
  case 4:
@@ -234,7 +222,7 @@ var MultiArvoEventHandler = /** @class */ (function (_super) {
234
222
  }
235
223
  });
236
224
  }); })];
237
- case 1: return [2 /*return*/, _c.sent()];
225
+ case 1: return [2 /*return*/, _a.sent()];
238
226
  }
239
227
  });
240
228
  });
@@ -1,6 +1,6 @@
1
1
  import { Context } from '@opentelemetry/api';
2
2
  /**
3
- * A tracer instance for the ArvoEventHandler package.
3
+ * Returns a tracer instance for the ArvoEventHandler package.
4
4
  */
5
- export declare const ArvoEventHandlerTracer: import("@opentelemetry/api").Tracer;
5
+ export declare const fetchOpenTelemetryTracer: () => import("@opentelemetry/api").Tracer;
6
6
  export declare const extractContext: (traceparent: string, tracestate: string | null) => Context;
@@ -1,13 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extractContext = exports.ArvoEventHandlerTracer = void 0;
3
+ exports.extractContext = exports.fetchOpenTelemetryTracer = void 0;
4
4
  var api_1 = require("@opentelemetry/api");
5
5
  var utils_1 = require("./utils");
6
- var pkg = (0, utils_1.getPackageInfo)();
7
6
  /**
8
- * A tracer instance for the ArvoEventHandler package.
7
+ * Returns a tracer instance for the ArvoEventHandler package.
9
8
  */
10
- exports.ArvoEventHandlerTracer = api_1.trace.getTracer(pkg.name, pkg.version);
9
+ var fetchOpenTelemetryTracer = function () {
10
+ var pkg = (0, utils_1.getPackageInfo)("arvo-event-handler");
11
+ return api_1.trace.getTracer(pkg.name, pkg.version);
12
+ };
13
+ exports.fetchOpenTelemetryTracer = fetchOpenTelemetryTracer;
11
14
  // Helper function to extract context from traceparent and tracestate
12
15
  var extractContext = function (traceparent, tracestate) {
13
16
  var extractedContext = api_1.propagation.extract(api_1.context.active(), {
@@ -1,6 +1,6 @@
1
1
  import { Span, SpanKind, Tracer } from '@opentelemetry/api';
2
2
  import { ArvoEvent, ArvoExecutionSpanKind, OpenInferenceSpanKind } from 'arvo-core';
3
- export declare function getPackageInfo(): {
3
+ export declare function getPackageInfo(defaultName: string): {
4
4
  name: string;
5
5
  version: string;
6
6
  };
@@ -29,7 +29,7 @@ var arvo_core_1 = require("arvo-core");
29
29
  var fs = __importStar(require("fs"));
30
30
  var path = __importStar(require("path"));
31
31
  var _1 = require(".");
32
- function getPackageInfo() {
32
+ function getPackageInfo(defaultName) {
33
33
  try {
34
34
  // Read the package.json file
35
35
  var packageJsonPath = path.resolve(__dirname, '../../package.json');
@@ -109,7 +109,7 @@ function getPackageInfo() {
109
109
  */
110
110
  var createSpanFromEvent = function (spanName, event, spanKinds, tracer) {
111
111
  var _a;
112
- if (tracer === void 0) { tracer = _1.ArvoEventHandlerTracer; }
112
+ if (tracer === void 0) { tracer = (0, _1.fetchOpenTelemetryTracer)(); }
113
113
  var spanOptions = {
114
114
  kind: spanKinds.kind,
115
115
  attributes: (_a = {},
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arvo-event-handler",
3
- "version": "1.1.11",
3
+ "version": "1.1.12",
4
4
  "description": "This package contains class and function for event handlers in an Arvo Event Driven system",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {