arvo-event-handler 1.1.7 → 1.1.8
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.
- package/dist/ArvoEventHandler/index.d.ts +2 -1
- package/dist/ArvoEventHandler/index.js +7 -5
- package/dist/ArvoEventRouter/index.d.ts +5 -2
- package/dist/ArvoEventRouter/index.js +27 -10
- package/dist/MultiArvoEventHandler/index.d.ts +2 -1
- package/dist/MultiArvoEventHandler/index.js +7 -5
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ArvoContract, ArvoEvent, ArvoExecutionSpanKind, OpenInferenceSpanKind, ResolveArvoContractRecord } from 'arvo-core';
|
|
2
2
|
import { IArvoEventHandler } from './types';
|
|
3
|
-
import { SpanKind } from '@opentelemetry/api';
|
|
3
|
+
import { SpanKind, Tracer } from '@opentelemetry/api';
|
|
4
4
|
import AbstractArvoEventHandler from '../AbstractArvoEventHandler';
|
|
5
5
|
/**
|
|
6
6
|
* Represents an event handler for Arvo contracts.
|
|
@@ -90,6 +90,7 @@ export default class ArvoEventHandler<TContract extends ArvoContract> extends Ab
|
|
|
90
90
|
*/
|
|
91
91
|
execute(event: ArvoEvent<ResolveArvoContractRecord<TContract['accepts']>, Record<string, any>, TContract['accepts']['type']>, opentelemetry?: {
|
|
92
92
|
inheritFrom: 'event' | 'execution';
|
|
93
|
+
tracer?: Tracer;
|
|
93
94
|
}): Promise<ArvoEvent[]>;
|
|
94
95
|
/**
|
|
95
96
|
* Provides the schema for system error events.
|
|
@@ -162,11 +162,13 @@ var ArvoEventHandler = /** @class */ (function (_super) {
|
|
|
162
162
|
var spanName, spanKinds, spanOptions, span, eventFactory;
|
|
163
163
|
var _a;
|
|
164
164
|
var _this = this;
|
|
165
|
+
var _b;
|
|
165
166
|
if (opentelemetry === void 0) { opentelemetry = {
|
|
166
167
|
inheritFrom: 'event',
|
|
168
|
+
tracer: OpenTelemetry_1.ArvoEventHandlerTracer,
|
|
167
169
|
}; }
|
|
168
|
-
return __generator(this, function (
|
|
169
|
-
switch (
|
|
170
|
+
return __generator(this, function (_c) {
|
|
171
|
+
switch (_c.label) {
|
|
170
172
|
case 0:
|
|
171
173
|
spanName = "ArvoEventHandler<".concat(this.contract.uri, ">.execute<").concat(event.type, ">");
|
|
172
174
|
spanKinds = {
|
|
@@ -182,8 +184,8 @@ var ArvoEventHandler = /** @class */ (function (_super) {
|
|
|
182
184
|
_a),
|
|
183
185
|
};
|
|
184
186
|
span = opentelemetry.inheritFrom === 'event'
|
|
185
|
-
? (0, utils_2.createSpanFromEvent)(spanName, event, spanKinds)
|
|
186
|
-
: OpenTelemetry_1.ArvoEventHandlerTracer.startSpan(spanName, spanOptions);
|
|
187
|
+
? (0, utils_2.createSpanFromEvent)(spanName, event, spanKinds, opentelemetry.tracer)
|
|
188
|
+
: ((_b = opentelemetry.tracer) !== null && _b !== void 0 ? _b : OpenTelemetry_1.ArvoEventHandlerTracer).startSpan(spanName, spanOptions);
|
|
187
189
|
eventFactory = (0, arvo_core_1.createArvoEventFactory)(this.contract);
|
|
188
190
|
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 () {
|
|
189
191
|
var otelSpanHeaders, inputEventValidation, _handleOutput, outputs, error_1, result;
|
|
@@ -257,7 +259,7 @@ var ArvoEventHandler = /** @class */ (function (_super) {
|
|
|
257
259
|
}
|
|
258
260
|
});
|
|
259
261
|
}); })];
|
|
260
|
-
case 1: return [2 /*return*/,
|
|
262
|
+
case 1: return [2 /*return*/, _c.sent()];
|
|
261
263
|
}
|
|
262
264
|
});
|
|
263
265
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ArvoContract, ArvoEvent, ArvoExecutionSpanKind, OpenInferenceSpanKind } from 'arvo-core';
|
|
2
2
|
import ArvoEventHandler from '../ArvoEventHandler';
|
|
3
3
|
import { IArvoEventRouter } from './types';
|
|
4
|
-
import { SpanKind } from '@opentelemetry/api';
|
|
4
|
+
import { SpanKind, Tracer } from '@opentelemetry/api';
|
|
5
5
|
import AbstractArvoEventHandler from '../AbstractArvoEventHandler';
|
|
6
6
|
/**
|
|
7
7
|
* ArvoEventRouter class handles routing of ArvoEvents to appropriate event handlers.
|
|
@@ -89,7 +89,10 @@ export declare class ArvoEventRouter extends AbstractArvoEventHandler {
|
|
|
89
89
|
* - Execution units are tracked for both successful executions and errors.
|
|
90
90
|
* - The router's default execution units are used for error events.
|
|
91
91
|
*/
|
|
92
|
-
execute(event: ArvoEvent
|
|
92
|
+
execute(event: ArvoEvent, opentelemetry?: {
|
|
93
|
+
inheritFrom: 'event' | 'execution';
|
|
94
|
+
tracer?: Tracer;
|
|
95
|
+
}): Promise<ArvoEvent[]>;
|
|
93
96
|
/**
|
|
94
97
|
* Provides the schema for system error events.
|
|
95
98
|
*
|
|
@@ -61,6 +61,7 @@ var api_1 = require("@opentelemetry/api");
|
|
|
61
61
|
var utils_2 = require("./utils");
|
|
62
62
|
var utils_3 = require("../OpenTelemetry/utils");
|
|
63
63
|
var AbstractArvoEventHandler_1 = __importDefault(require("../AbstractArvoEventHandler"));
|
|
64
|
+
var OpenTelemetry_1 = require("../OpenTelemetry");
|
|
64
65
|
/**
|
|
65
66
|
* ArvoEventRouter class handles routing of ArvoEvents to appropriate event handlers.
|
|
66
67
|
*/
|
|
@@ -163,19 +164,35 @@ var ArvoEventRouter = /** @class */ (function (_super) {
|
|
|
163
164
|
* - Execution units are tracked for both successful executions and errors.
|
|
164
165
|
* - The router's default execution units are used for error events.
|
|
165
166
|
*/
|
|
166
|
-
ArvoEventRouter.prototype.execute = function (
|
|
167
|
-
return __awaiter(this,
|
|
168
|
-
var span;
|
|
169
|
-
var _this = this;
|
|
167
|
+
ArvoEventRouter.prototype.execute = function (event_1) {
|
|
168
|
+
return __awaiter(this, arguments, void 0, function (event, opentelemetry) {
|
|
169
|
+
var spanName, spanKinds, spanOptions, span;
|
|
170
170
|
var _a;
|
|
171
|
-
|
|
172
|
-
|
|
171
|
+
var _this = this;
|
|
172
|
+
var _b, _c;
|
|
173
|
+
if (opentelemetry === void 0) { opentelemetry = {
|
|
174
|
+
inheritFrom: 'event',
|
|
175
|
+
tracer: OpenTelemetry_1.ArvoEventHandlerTracer,
|
|
176
|
+
}; }
|
|
177
|
+
return __generator(this, function (_d) {
|
|
178
|
+
switch (_d.label) {
|
|
173
179
|
case 0:
|
|
174
|
-
|
|
180
|
+
spanName = "ArvoEventRouter.source<".concat((_b = this._source) !== null && _b !== void 0 ? _b : 'arvo.event.router', ">.execute<").concat(event.type, ">");
|
|
181
|
+
spanKinds = {
|
|
175
182
|
kind: this.openTelemetrySpanKind,
|
|
176
183
|
openInference: this.openInferenceSpanKind,
|
|
177
184
|
arvoExecution: this.arvoExecutionSpanKind,
|
|
178
|
-
}
|
|
185
|
+
};
|
|
186
|
+
spanOptions = {
|
|
187
|
+
kind: spanKinds.kind,
|
|
188
|
+
attributes: (_a = {},
|
|
189
|
+
_a[arvo_core_1.OpenInference.ATTR_SPAN_KIND] = spanKinds.openInference,
|
|
190
|
+
_a[arvo_core_1.ArvoExecution.ATTR_SPAN_KIND] = spanKinds.arvoExecution,
|
|
191
|
+
_a),
|
|
192
|
+
};
|
|
193
|
+
span = opentelemetry.inheritFrom === 'event'
|
|
194
|
+
? (0, utils_3.createSpanFromEvent)(spanName, event, spanKinds, opentelemetry.tracer)
|
|
195
|
+
: ((_c = opentelemetry.tracer) !== null && _c !== void 0 ? _c : OpenTelemetry_1.ArvoEventHandlerTracer).startSpan(spanName, spanOptions);
|
|
179
196
|
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 () {
|
|
180
197
|
var otelSpanHeaders, newEvent, results, error_1;
|
|
181
198
|
var _this = this;
|
|
@@ -195,7 +212,7 @@ var ArvoEventRouter = /** @class */ (function (_super) {
|
|
|
195
212
|
if (!this.handlersMap[newEvent.type]) {
|
|
196
213
|
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 ")));
|
|
197
214
|
}
|
|
198
|
-
return [4 /*yield*/, this.handlersMap[newEvent.type].execute(newEvent)];
|
|
215
|
+
return [4 /*yield*/, this.handlersMap[newEvent.type].execute(newEvent, { inheritFrom: 'execution', tracer: opentelemetry.tracer })];
|
|
199
216
|
case 2:
|
|
200
217
|
results = _a.sent();
|
|
201
218
|
return [2 /*return*/, results.map(function (event) {
|
|
@@ -233,7 +250,7 @@ var ArvoEventRouter = /** @class */ (function (_super) {
|
|
|
233
250
|
}
|
|
234
251
|
});
|
|
235
252
|
}); })];
|
|
236
|
-
case 1: return [2 /*return*/,
|
|
253
|
+
case 1: return [2 /*return*/, _d.sent()];
|
|
237
254
|
}
|
|
238
255
|
});
|
|
239
256
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SpanKind } from '@opentelemetry/api';
|
|
1
|
+
import { SpanKind, Tracer } from '@opentelemetry/api';
|
|
2
2
|
import { ArvoEvent, ArvoExecutionSpanKind, OpenInferenceSpanKind } from 'arvo-core';
|
|
3
3
|
import { IMultiArvoEventHandler } from './types';
|
|
4
4
|
import AbstractArvoEventHandler from '../AbstractArvoEventHandler';
|
|
@@ -92,6 +92,7 @@ export default class MultiArvoEventHandler extends AbstractArvoEventHandler {
|
|
|
92
92
|
*/
|
|
93
93
|
execute(event: ArvoEvent, opentelemetry?: {
|
|
94
94
|
inheritFrom: 'event' | 'execution';
|
|
95
|
+
tracer?: Tracer;
|
|
95
96
|
}): Promise<ArvoEvent[]>;
|
|
96
97
|
/**
|
|
97
98
|
* Provides the schema for system error events.
|
|
@@ -155,11 +155,13 @@ var MultiArvoEventHandler = /** @class */ (function (_super) {
|
|
|
155
155
|
var spanName, spanKinds, spanOptions, span;
|
|
156
156
|
var _a;
|
|
157
157
|
var _this = this;
|
|
158
|
+
var _b;
|
|
158
159
|
if (opentelemetry === void 0) { opentelemetry = {
|
|
159
160
|
inheritFrom: 'event',
|
|
161
|
+
tracer: OpenTelemetry_1.ArvoEventHandlerTracer,
|
|
160
162
|
}; }
|
|
161
|
-
return __generator(this, function (
|
|
162
|
-
switch (
|
|
163
|
+
return __generator(this, function (_c) {
|
|
164
|
+
switch (_c.label) {
|
|
163
165
|
case 0:
|
|
164
166
|
spanName = "MutliArvoEventHandler.source<".concat(this.source, ">.execute<").concat(event.type, ">");
|
|
165
167
|
spanKinds = {
|
|
@@ -175,8 +177,8 @@ var MultiArvoEventHandler = /** @class */ (function (_super) {
|
|
|
175
177
|
_a),
|
|
176
178
|
};
|
|
177
179
|
span = opentelemetry.inheritFrom === 'event'
|
|
178
|
-
? (0, utils_2.createSpanFromEvent)(spanName, event, spanKinds)
|
|
179
|
-
: OpenTelemetry_1.ArvoEventHandlerTracer.startSpan(spanName, spanOptions);
|
|
180
|
+
? (0, utils_2.createSpanFromEvent)(spanName, event, spanKinds, opentelemetry.tracer)
|
|
181
|
+
: ((_b = opentelemetry.tracer) !== null && _b !== void 0 ? _b : OpenTelemetry_1.ArvoEventHandlerTracer).startSpan(spanName, spanOptions);
|
|
180
182
|
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 () {
|
|
181
183
|
var otelSpanHeaders, _handlerOutput, outputs, error_1;
|
|
182
184
|
return __generator(this, function (_a) {
|
|
@@ -232,7 +234,7 @@ var MultiArvoEventHandler = /** @class */ (function (_super) {
|
|
|
232
234
|
}
|
|
233
235
|
});
|
|
234
236
|
}); })];
|
|
235
|
-
case 1: return [2 /*return*/,
|
|
237
|
+
case 1: return [2 /*return*/, _c.sent()];
|
|
236
238
|
}
|
|
237
239
|
});
|
|
238
240
|
});
|