@sentio/runtime 2.39.7-rc.2 → 2.39.7-rc.21
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/lib/db-context.d.ts +12 -3
- package/lib/db-context.d.ts.map +1 -1
- package/lib/db-context.js +90 -4
- package/lib/db-context.js.map +1 -1
- package/lib/full-service.d.ts +1 -0
- package/lib/full-service.d.ts.map +1 -1
- package/lib/gen/processor/protos/processor.d.ts +5 -0
- package/lib/gen/processor/protos/processor.d.ts.map +1 -1
- package/lib/gen/processor/protos/processor.js +39 -1
- package/lib/gen/processor/protos/processor.js.map +1 -1
- package/lib/processor-runner.js +14 -0
- package/lib/processor-runner.js.map +1 -1
- package/lib/service.d.ts +1 -0
- package/lib/service.d.ts.map +1 -1
- package/lib/service.js +47 -23
- package/lib/service.js.map +1 -1
- package/package.json +5 -2
- package/src/db-context.ts +115 -6
- package/src/gen/processor/protos/processor.ts +41 -1
- package/src/processor-runner.ts +17 -0
- package/src/service.ts +51 -24
package/lib/processor-runner.js
CHANGED
@@ -6,6 +6,7 @@ import commandLineArgs from 'command-line-args';
|
|
6
6
|
import { createServer } from 'nice-grpc';
|
7
7
|
import { errorDetailsServerMiddleware } from 'nice-grpc-error-details';
|
8
8
|
import { registry as niceGrpcRegistry, prometheusServerMiddleware } from 'nice-grpc-prometheus';
|
9
|
+
import { openTelemetryServerMiddleware } from 'nice-grpc-opentelemetry';
|
9
10
|
import { register as globalRegistry, Registry } from 'prom-client';
|
10
11
|
import http from 'http';
|
11
12
|
// @ts-ignore inspector promises is not included in @type/node
|
@@ -15,6 +16,18 @@ import { ProcessorServiceImpl } from './service.js';
|
|
15
16
|
import { Endpoints } from './endpoints.js';
|
16
17
|
import { FullProcessorServiceImpl } from './full-service.js';
|
17
18
|
import { setupLogger } from './logger.js';
|
19
|
+
import { NodeSDK } from '@opentelemetry/sdk-node';
|
20
|
+
import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-grpc';
|
21
|
+
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc';
|
22
|
+
import { PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics';
|
23
|
+
const sdk = new NodeSDK({
|
24
|
+
traceExporter: new OTLPTraceExporter(),
|
25
|
+
metricReader: new PeriodicExportingMetricReader({
|
26
|
+
exporter: new OTLPMetricExporter()
|
27
|
+
})
|
28
|
+
// instrumentations: [getNodeAutoInstrumentations()],
|
29
|
+
});
|
30
|
+
sdk.start();
|
18
31
|
const mergedRegistry = Registry.merge([globalRegistry, niceGrpcRegistry]);
|
19
32
|
const optionDefinitions = [
|
20
33
|
{ name: 'target', type: String, defaultOption: true },
|
@@ -65,6 +78,7 @@ const server = createServer({
|
|
65
78
|
'grpc.default_compression_algorithm': compressionAlgorithms.gzip
|
66
79
|
})
|
67
80
|
.use(prometheusServerMiddleware())
|
81
|
+
.use(openTelemetryServerMiddleware())
|
68
82
|
.use(errorDetailsServerMiddleware);
|
69
83
|
const baseService = new ProcessorServiceImpl(async () => {
|
70
84
|
const m = await import(options.target);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"processor-runner.js","sourceRoot":"","sources":["../src/processor-runner.ts"],"names":[],"mappings":";AAEA,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,MAAM,UAAU,CAAA;AAEzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAA;AACtE,OAAO,EAAE,QAAQ,IAAI,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AAC/F,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAClE,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,8DAA8D;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAEjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC,CAAA;AAEzE,MAAM,iBAAiB,GAAG;IACxB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE;IACrD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE;IAChE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE;IACtD,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE;IACtD,mEAAmE;IACnE;QACE,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,oBAAoB;KACnC;IACD,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE;IAC7D,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE;IAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE;IAC7D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE;CACtD,CAAA;AAED,MAAM,OAAO,GAAG,eAAe,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;AAErE,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;AAC5D,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;AAE9C,KAAK,CAAC,eAAe,GAAG,EAAE,CAAA;AAE1B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAA;AACvD,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;AAE9C,SAAS,CAAC,QAAQ,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;AACpD,SAAS,CAAC,QAAQ,CAAC,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AACtD,SAAS,CAAC,QAAQ,CAAC,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAC/D,SAAS,CAAC,QAAQ,CAAC,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;AAE7D,KAAK,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;IACxD,MAAM,WAAW,GAAG,MAAqB,CAAA;IACzC,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;QAC5B,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,WAAW,CAAC,CAAA;IACjE,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;QACnC,IAAI,IAAI,EAAE,CAAC;YACT,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;QAC9C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAA;QACjD,CAAC;IACH,CAAC;AACH,CAAC;AAED,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;AAEzC,MAAM,MAAM,GAAG,YAAY,CAAC;IAC1B,8BAA8B,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;IACjD,iCAAiC,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;IACpD,oCAAoC,EAAE,qBAAqB,CAAC,IAAI;CACjE,CAAC;KACC,GAAG,CAAC,0BAA0B,EAAE,CAAC;KACjC,GAAG,CAAC,4BAA4B,CAAC,CAAA;AACpC,MAAM,WAAW,GAAG,IAAI,oBAAoB,CAAC,KAAK,IAAI,EAAE;IACtD,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACtC,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAA;IACjC,OAAO,CAAC,CAAA;AACV,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;AACnB,MAAM,OAAO,GAAG,IAAI,wBAAwB,CAAC,WAAW,CAAC,CAAA;AAEzD,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAA;AAExC,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAExC,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;AAEzD,MAAM,WAAW,GAAG,IAAI,CAAA;AACxB,MAAM,UAAU,GAAG,IAAI;KACpB,YAAY,CAAC,KAAK,WAAW,GAAG,EAAE,GAAG;IACpC,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;QAC7D,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAA;QACnC,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;YACxB,KAAK,UAAU;gBACb,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,CAAA;gBAC9C,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gBAClB,MAAK;YACP,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC,IAAI,IAAI,CAAA;oBACpE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;oBAC7B,OAAO,CAAC,OAAO,EAAE,CAAA;oBAEjB,MAAM,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;oBACrC,MAAM,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;oBAEpC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAA;oBAChE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;oBAEvD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAA;oBAC1D,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;oBAClC,OAAO,CAAC,UAAU,EAAE,CAAA;gBACtB,CAAC;gBAAC,MAAM,CAAC;oBACP,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;gBACpB,CAAC;gBACD,MAAK;YACP,CAAC;YACD;gBACE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IACpB,CAAC;IACD,GAAG,CAAC,GAAG,EAAE,CAAA;AACX,CAAC,CAAC;KACD,MAAM,CAAC,WAAW,CAAC,CAAA;AAEtB,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,WAAW,CAAC,CAAA;AAErD,OAAO;KACJ,EAAE,CAAC,QAAQ,EAAE;IACZ,eAAe,CAAC,CAAC,CAAC,CAAA;AACpB,CAAC,CAAC;KACD,EAAE,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE;IAC/B,OAAO,CAAC,KAAK,CAAC,+DAA+D,EAAE,GAAG,CAAC,CAAA;IACnF,WAAW,CAAC,SAAS,GAAG,GAAG,CAAA;IAC3B,qBAAqB;AACvB,CAAC,CAAC;KACD,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACtC,sCAAsC;IACtC,IAAI,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,6CAA6C,CAAC,EAAE,CAAC;QAC9E,OAAM;IACR,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,2DAA2D,EAAE,MAAM,CAAC,CAAA;IAClF,WAAW,CAAC,SAAS,GAAG,MAAe,CAAA;IACvC,qBAAqB;AACvB,CAAC,CAAC,CAAA;AAEJ,SAAS,eAAe,CAAC,QAAgB;IACvC,MAAM,CAAC,aAAa,EAAE,CAAA;IACtB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;IAEnC,UAAU,CAAC,KAAK,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;QACpC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACxB,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
1
|
+
{"version":3,"file":"processor-runner.js","sourceRoot":"","sources":["../src/processor-runner.ts"],"names":[],"mappings":"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"}
|
package/lib/service.d.ts
CHANGED
package/lib/service.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAuB,MAAM,WAAW,CAAA;AAK5D,OAAO,EACL,WAAW,EAEX,KAAK,EACL,WAAW,EACX,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,8BAA8B,EAC9B,aAAa,EACb,oBAAoB,EAEpB,YAAY,EACb,MAAM,gBAAgB,CAAA;AAYvB,qBAAa,oBAAqB,YAAW,8BAA8B;IACzE,OAAO,CAAC,OAAO,CAAQ;IAEvB,SAAS,EAAE,KAAK,CAAA;IAGhB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAE3C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAY;gBAEjC,MAAM,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,EAAE,MAAM,IAAI;IAK9D,SAAS,CAAC,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAoB9F,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;IAsClE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;IAQ1D,eAAe,CAAC,OAAO,EAAE,sBAAsB,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA6BxG,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAqBlF,qBAAqB,CAAC,QAAQ,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,WAAW
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAuB,MAAM,WAAW,CAAA;AAK5D,OAAO,EACL,WAAW,EAEX,KAAK,EACL,WAAW,EACX,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,8BAA8B,EAC9B,aAAa,EACb,oBAAoB,EAEpB,YAAY,EACb,MAAM,gBAAgB,CAAA;AAYvB,qBAAa,oBAAqB,YAAW,8BAA8B;IACzE,OAAO,CAAC,OAAO,CAAQ;IAEvB,SAAS,EAAE,KAAK,CAAA;IAGhB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAE3C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAY;gBAEjC,MAAM,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,EAAE,MAAM,IAAI;IAK9D,SAAS,CAAC,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAoB9F,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;IAsClE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;IAQ1D,eAAe,CAAC,OAAO,EAAE,sBAAsB,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA6BxG,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAqBlF,qBAAqB,CAAC,QAAQ,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAiBlF,cAAc;CAwC7B"}
|
package/lib/service.js
CHANGED
@@ -137,32 +137,39 @@ export class ProcessorServiceImpl {
|
|
137
137
|
yield* from(subject).pipe(withAbort(context.signal));
|
138
138
|
}
|
139
139
|
async handleRequests(requests, subject) {
|
140
|
-
const contexts =
|
140
|
+
const contexts = new Contexts();
|
141
141
|
for await (const request of requests) {
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
.
|
149
|
-
|
150
|
-
|
151
|
-
|
142
|
+
try {
|
143
|
+
console.debug('received request:', request);
|
144
|
+
if (request.binding) {
|
145
|
+
const binding = request.binding;
|
146
|
+
const dbContext = contexts.new(request.processId, subject);
|
147
|
+
const start = Date.now();
|
148
|
+
PluginManager.INSTANCE.processBinding(binding, dbContext)
|
149
|
+
.then((result) => {
|
150
|
+
subject.next({
|
151
|
+
result,
|
152
|
+
processId: request.processId
|
153
|
+
});
|
154
|
+
recordRuntimeInfo(result, binding.handlerType);
|
155
|
+
})
|
156
|
+
.catch((e) => {
|
157
|
+
console.debug(e);
|
158
|
+
dbContext.error(request.processId, e);
|
159
|
+
})
|
160
|
+
.finally(() => {
|
161
|
+
console.info('processBinding', request.processId, ' took', Date.now() - start, 'ms');
|
162
|
+
contexts.delete(request.processId);
|
152
163
|
});
|
153
|
-
|
154
|
-
|
155
|
-
.
|
156
|
-
|
157
|
-
|
158
|
-
})
|
159
|
-
.finally(() => {
|
160
|
-
delete contexts[request.processId];
|
161
|
-
});
|
164
|
+
}
|
165
|
+
if (request.dbResult) {
|
166
|
+
const dbContext = contexts.get(request.processId);
|
167
|
+
dbContext?.result(request.dbResult);
|
168
|
+
}
|
162
169
|
}
|
163
|
-
|
164
|
-
|
165
|
-
|
170
|
+
catch (e) {
|
171
|
+
// should not happen
|
172
|
+
console.error('unexpect error during handle loop', e);
|
166
173
|
}
|
167
174
|
}
|
168
175
|
}
|
@@ -176,4 +183,21 @@ function recordRuntimeInfo(results, handlerType) {
|
|
176
183
|
});
|
177
184
|
}
|
178
185
|
}
|
186
|
+
class Contexts {
|
187
|
+
contexts = new Map();
|
188
|
+
get(processId) {
|
189
|
+
return this.contexts.get(processId);
|
190
|
+
}
|
191
|
+
new(processId, subject) {
|
192
|
+
const context = new StoreContext(subject, processId);
|
193
|
+
context.startPrintStats();
|
194
|
+
this.contexts.set(processId, context);
|
195
|
+
return context;
|
196
|
+
}
|
197
|
+
delete(processId) {
|
198
|
+
const context = this.get(processId);
|
199
|
+
context?.close();
|
200
|
+
this.contexts.delete(processId);
|
201
|
+
}
|
202
|
+
}
|
179
203
|
//# sourceMappingURL=service.js.map
|
package/lib/service.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,WAAW,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAA;AAEhE,OAAO,EAQL,qBAAqB,EAMtB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAC7B;AAAC,MAAM,CAAC,SAAiB,CAAC,MAAM,GAAG;IAClC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;AACxB,CAAC,CAAA;AAED,MAAM,OAAO,oBAAoB;IACvB,OAAO,GAAG,KAAK,CAAA;IACvB,2EAA2E;IAC3E,SAAS,CAAO;IAChB,iDAAiD;IAEhC,MAAM,CAAoB;IAE1B,eAAe,CAAa;IAE7C,YAAY,MAA0B,EAAE,eAA4B;QAClE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAA6B,EAAE,OAAoB;QACjE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAA;QACnE,CAAC;QACD,+BAA+B;QAC/B,oEAAoE;QACpE,IAAI;QAEJ,yCAAyC;QACzC,MAAM,SAAS,GAAG,qBAAqB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QACvD,MAAM,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QACjD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,EAAE;IACF,sBAAsB;IACtB,iEAAiE;IACjE,iEAAiE;IACjE,IAAI;IAEJ,KAAK,CAAC,KAAK,CAAC,OAAqB,EAAE,OAAoB;QACrD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,EAAE,CAAA;QACX,CAAC;QAED,kBAAkB,EAAE,CAAA;QAEpB,IAAI,CAAC;YACH,6DAA6D;YAC7D,UAAU;YACV,2BAA2B;YAC3B,kBAAkB;YAClB,uDAAuD;YACvD,MAAM;YACN,IAAI;YACJ,EAAE;YACF,sEAAsE;YACtE,UAAU;YACV,2BAA2B;YAC3B,mBAAmB;YACnB,IAAI;YAEJ,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;QACrB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,gBAAgB,EAAE,4BAA4B,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/F,CAAC;QAED,MAAM,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAE3C,QAAQ;QACR,2BAA2B;QAC3B,gBAAgB;QAChB,4FAA4F;QAC5F,IAAI;QACJ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAc,EAAE,OAAoB;QAC7C,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAA;QAChD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,UAAU,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;QACxC,CAAC;QACD,OAAO,EAAE,CAAA;IACX,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAA+B,EAAE,OAAqB;QAC1E,MAAM,QAAQ,GAAG,EAAE,CAAA;QAEnB,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;YAC5C,IAAI,aAAa,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;gBACvC,MAAM,OAAO,CAAA;YACf,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACxB,CAAC;QACD,IAAI,OAAO,CAAA;QACX,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACvC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,CAAA;QACT,CAAC;QACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAA;QAE3C,sBAAsB;QACtB,gEAAgE;QAChE,2BAA2B;QAC3B,mBAAmB;QACnB,IAAI;QAEJ,OAAO;YACL,MAAM;SACP,CAAA;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAoB,EAAE,OAAqB;QAC9D,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAA;QACnE,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,eAAe,CACvB,MAAM,CAAC,WAAW,EAClB,qDAAqD,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EACnF;gBACE,SAAS,CAAC,WAAW,CAAC;oBACpB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO;oBAC9B,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC;iBAChD,CAAC;aACH,CACF,CAAA;QACH,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QACnE,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;QAC9C,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,CAAC,qBAAqB,CAAC,QAA6C,EAAE,OAAoB;QAC9F,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAA;QACnE,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAsC,CAAA;QACjE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC;aACnC,IAAI,CAAC,GAAG,EAAE;YACT,OAAO,CAAC,QAAQ,EAAE,CAAA;QACpB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAChB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAClB,CAAC,CAAC,CAAA;QACJ,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IACtD,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,QAA6C,EAC7C,OAAoD;QAEpD,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAA;QAE/B,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAA;gBAC3C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBACpB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;oBAC/B,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;oBAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;oBACxB,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC;yBACtD,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;wBACf,OAAO,CAAC,IAAI,CAAC;4BACX,MAAM;4BACN,SAAS,EAAE,OAAO,CAAC,SAAS;yBAC7B,CAAC,CAAA;wBACF,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;oBAChD,CAAC,CAAC;yBACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;wBACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;wBAChB,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;oBACvC,CAAC,CAAC;yBACD,OAAO,CAAC,GAAG,EAAE;wBACZ,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,IAAI,CAAC,CAAA;wBACpF,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;oBACpC,CAAC,CAAC,CAAA;gBACN,CAAC;gBACD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;oBACrB,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;oBACjD,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;gBACrC,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,oBAAoB;gBACpB,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,CAAC,CAAC,CAAA;YACvD,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,SAAS,iBAAiB,CAAC,OAAsB,EAAE,WAAwB;IACzE,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACvF,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACjB,CAAC,CAAC,WAAW,GAAG;gBACd,IAAI,EAAE,WAAW;aAClB,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED,MAAM,QAAQ;IACJ,QAAQ,GAA8B,IAAI,GAAG,EAAE,CAAA;IAEvD,GAAG,CAAC,SAAiB;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACrC,CAAC;IAED,GAAG,CAAC,SAAiB,EAAE,OAAoD;QACzE,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QACpD,OAAO,CAAC,eAAe,EAAE,CAAA;QACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACrC,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,MAAM,CAAC,SAAiB;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACnC,OAAO,EAAE,KAAK,EAAE,CAAA;QAChB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACjC,CAAC;CACF"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@sentio/runtime",
|
3
|
-
"version": "2.39.7-rc.
|
3
|
+
"version": "2.39.7-rc.21",
|
4
4
|
"license": "Apache-2.0",
|
5
5
|
"type": "module",
|
6
6
|
"exports": {
|
@@ -16,6 +16,8 @@
|
|
16
16
|
],
|
17
17
|
"dependencies": {
|
18
18
|
"@grpc/grpc-js": "^1.9.14",
|
19
|
+
"@opentelemetry/exporter-metrics-otlp-grpc": "^0.52.1",
|
20
|
+
"@opentelemetry/sdk-node": "^0.52.1",
|
19
21
|
"command-line-args": "^5.2.1",
|
20
22
|
"command-line-usage": "^7.0.1",
|
21
23
|
"fs-extra": "^11.2.0",
|
@@ -26,13 +28,14 @@
|
|
26
28
|
"nice-grpc-client-middleware-retry": "^3.1.6",
|
27
29
|
"nice-grpc-common": "^2.0.2",
|
28
30
|
"nice-grpc-error-details": "^0.2.4",
|
31
|
+
"nice-grpc-opentelemetry": "^0.1.15",
|
29
32
|
"nice-grpc-prometheus": "^0.2.2",
|
30
33
|
"prom-client": "^14.2.0",
|
31
34
|
"protobufjs": "^7.2.6",
|
32
35
|
"rxjs": "^7.8.1",
|
33
36
|
"utility-types": "^3.11.0",
|
34
37
|
"winston": "^3.11.0",
|
35
|
-
"@sentio/protos": "2.39.7-rc.
|
38
|
+
"@sentio/protos": "2.39.7-rc.21"
|
36
39
|
},
|
37
40
|
"devDependencies": {
|
38
41
|
"@types/command-line-args": "^5.2.3",
|
package/src/db-context.ts
CHANGED
@@ -1,28 +1,61 @@
|
|
1
1
|
import { Subject } from 'rxjs'
|
2
|
-
import {
|
2
|
+
import {
|
3
|
+
DBRequest,
|
4
|
+
DBRequest_DBUpsert,
|
5
|
+
DBResponse,
|
6
|
+
DeepPartial,
|
7
|
+
ProcessResult,
|
8
|
+
ProcessStreamResponse
|
9
|
+
} from '@sentio/protos'
|
10
|
+
import * as process from 'node:process'
|
11
|
+
|
12
|
+
const STORE_BATCH_IDLE = process.env['STORE_BATCH_IDLE'] ? parseInt(process.env['STORE_BATCH_IDLE']) : 1
|
3
13
|
|
4
14
|
type Request = Omit<DBRequest, 'opId'>
|
15
|
+
export const timeoutError = Symbol()
|
5
16
|
|
6
17
|
export class StoreContext {
|
7
18
|
private static opCounter = 0n
|
8
19
|
|
9
|
-
private
|
20
|
+
private send_counts: Record<string, number> = {}
|
21
|
+
private recv_counts: Record<string, number> = {}
|
22
|
+
|
23
|
+
private defers = new Map<
|
24
|
+
bigint,
|
25
|
+
{ resolve: (value: any) => void; reject: (reason?: any) => void; requestType?: string }
|
26
|
+
>()
|
27
|
+
private statsInterval: NodeJS.Timeout | undefined
|
10
28
|
|
11
29
|
constructor(
|
12
30
|
readonly subject: Subject<DeepPartial<ProcessStreamResponse>>,
|
13
31
|
readonly processId: number
|
14
32
|
) {}
|
15
33
|
|
16
|
-
newPromise<T>(opId: bigint) {
|
34
|
+
newPromise<T>(opId: bigint, requestType?: string) {
|
17
35
|
return new Promise<T>((resolve, reject) => {
|
18
|
-
this.defers.set(opId, { resolve, reject })
|
36
|
+
this.defers.set(opId, { resolve, reject, requestType })
|
19
37
|
})
|
20
38
|
}
|
21
39
|
|
22
|
-
sendRequest(request: DeepPartial<Request
|
40
|
+
sendRequest(request: DeepPartial<Request>, timeoutSecs?: number): Promise<DBResponse> {
|
41
|
+
if (STORE_BATCH_IDLE > 0 && request.upsert) {
|
42
|
+
// batch upsert if possible
|
43
|
+
return this.sendUpsert(request.upsert as DBRequest_DBUpsert, STORE_BATCH_IDLE)
|
44
|
+
}
|
45
|
+
|
23
46
|
const opId = StoreContext.opCounter++
|
24
47
|
const promise = this.newPromise(opId)
|
48
|
+
|
49
|
+
const start = Date.now()
|
50
|
+
const promises = [promise]
|
25
51
|
console.debug('sending db request ', opId, request)
|
52
|
+
let timer: NodeJS.Timeout | undefined
|
53
|
+
if (timeoutSecs) {
|
54
|
+
const timeoutPromise = new Promise((_r, rej) => (timer = setTimeout(rej, timeoutSecs * 1000, timeoutError)))
|
55
|
+
promises.push(timeoutPromise)
|
56
|
+
}
|
57
|
+
|
58
|
+
const requestType = Object.keys(request)[0] as string
|
26
59
|
this.subject.next({
|
27
60
|
dbRequest: {
|
28
61
|
...request,
|
@@ -30,7 +63,25 @@ export class StoreContext {
|
|
30
63
|
},
|
31
64
|
processId: this.processId
|
32
65
|
})
|
33
|
-
|
66
|
+
|
67
|
+
this.send_counts[requestType] = (this.send_counts[requestType] || 0) + 1
|
68
|
+
|
69
|
+
return Promise.race(promises)
|
70
|
+
.then((result: DBResponse) => {
|
71
|
+
console.info('db request', requestType, 'op', opId, ' took', Date.now() - start, 'ms')
|
72
|
+
return result
|
73
|
+
})
|
74
|
+
.catch((e) => {
|
75
|
+
if (e === timeoutError) {
|
76
|
+
console.error('db request', requestType, 'op:', opId, ' timeout')
|
77
|
+
}
|
78
|
+
throw e
|
79
|
+
})
|
80
|
+
.finally(() => {
|
81
|
+
if (timer) {
|
82
|
+
clearTimeout(timer)
|
83
|
+
}
|
84
|
+
})
|
34
85
|
}
|
35
86
|
|
36
87
|
result(dbResult: DBResponse) {
|
@@ -38,6 +89,9 @@ export class StoreContext {
|
|
38
89
|
const defer = this.defers.get(opId)
|
39
90
|
console.debug('received db result ', opId, dbResult)
|
40
91
|
if (defer) {
|
92
|
+
if (defer.requestType) {
|
93
|
+
this.recv_counts[defer.requestType] = (this.recv_counts[defer.requestType] || 0) + 1
|
94
|
+
}
|
41
95
|
if (dbResult.error) {
|
42
96
|
defer.reject(new Error(dbResult.error))
|
43
97
|
} else {
|
@@ -59,4 +113,59 @@ export class StoreContext {
|
|
59
113
|
processId
|
60
114
|
})
|
61
115
|
}
|
116
|
+
|
117
|
+
close() {
|
118
|
+
for (const [opId, defer] of this.defers) {
|
119
|
+
console.warn('context closed before db response', opId)
|
120
|
+
defer.reject(new Error('context closed'))
|
121
|
+
}
|
122
|
+
this.defers.clear()
|
123
|
+
if (this.statsInterval) {
|
124
|
+
clearInterval(this.statsInterval)
|
125
|
+
}
|
126
|
+
}
|
127
|
+
|
128
|
+
queuedUpsert: DBRequest_DBUpsert | undefined
|
129
|
+
queuedUpsertPromise: Promise<DBResponse> | undefined
|
130
|
+
|
131
|
+
private async sendUpsert(req: DBRequest_DBUpsert, batchIdleMs: number): Promise<DBResponse> {
|
132
|
+
if (this.queuedUpsert && this.queuedUpsertPromise) {
|
133
|
+
// merge the upserts
|
134
|
+
req.entity = this.queuedUpsert.entity.concat(req.entity)
|
135
|
+
req.entityData = this.queuedUpsert.entityData.concat(req.entityData)
|
136
|
+
req.id = this.queuedUpsert.id.concat(req.id)
|
137
|
+
|
138
|
+
return this.queuedUpsertPromise
|
139
|
+
} else {
|
140
|
+
this.queuedUpsert = req
|
141
|
+
const opId = StoreContext.opCounter++
|
142
|
+
const promise = this.newPromise<DBResponse>(opId)
|
143
|
+
this.queuedUpsertPromise = promise
|
144
|
+
await delay(batchIdleMs)
|
145
|
+
this.queuedUpsertPromise = undefined
|
146
|
+
this.queuedUpsert = undefined
|
147
|
+
console.log('sending upsert', opId, 'batch size', req.entity.length)
|
148
|
+
this.subject.next({
|
149
|
+
dbRequest: {
|
150
|
+
upsert: req,
|
151
|
+
opId
|
152
|
+
},
|
153
|
+
processId: this.processId
|
154
|
+
})
|
155
|
+
this.send_counts['upsert'] = (this.send_counts['upsert'] || 0) + 1
|
156
|
+
|
157
|
+
return promise
|
158
|
+
}
|
159
|
+
}
|
160
|
+
|
161
|
+
startPrintStats() {
|
162
|
+
this.statsInterval = setInterval(() => {
|
163
|
+
console.log('send counts', this.send_counts)
|
164
|
+
console.log('recv counts', this.recv_counts)
|
165
|
+
}, 10000)
|
166
|
+
}
|
167
|
+
}
|
168
|
+
|
169
|
+
function delay(ms: number) {
|
170
|
+
return new Promise((resolve) => setTimeout(resolve, ms))
|
62
171
|
}
|
@@ -790,6 +790,10 @@ export enum DBRequest_DBOperator {
|
|
790
790
|
LE = 5,
|
791
791
|
IN = 6,
|
792
792
|
NOT_IN = 7,
|
793
|
+
LIKE = 8,
|
794
|
+
NOT_LIKE = 9,
|
795
|
+
HAS_ALL = 10,
|
796
|
+
HAS_ANY = 11,
|
793
797
|
UNRECOGNIZED = -1,
|
794
798
|
}
|
795
799
|
|
@@ -819,6 +823,18 @@ export function dBRequest_DBOperatorFromJSON(object: any): DBRequest_DBOperator
|
|
819
823
|
case 7:
|
820
824
|
case "NOT_IN":
|
821
825
|
return DBRequest_DBOperator.NOT_IN;
|
826
|
+
case 8:
|
827
|
+
case "LIKE":
|
828
|
+
return DBRequest_DBOperator.LIKE;
|
829
|
+
case 9:
|
830
|
+
case "NOT_LIKE":
|
831
|
+
return DBRequest_DBOperator.NOT_LIKE;
|
832
|
+
case 10:
|
833
|
+
case "HAS_ALL":
|
834
|
+
return DBRequest_DBOperator.HAS_ALL;
|
835
|
+
case 11:
|
836
|
+
case "HAS_ANY":
|
837
|
+
return DBRequest_DBOperator.HAS_ANY;
|
822
838
|
case -1:
|
823
839
|
case "UNRECOGNIZED":
|
824
840
|
default:
|
@@ -844,6 +860,14 @@ export function dBRequest_DBOperatorToJSON(object: DBRequest_DBOperator): string
|
|
844
860
|
return "IN";
|
845
861
|
case DBRequest_DBOperator.NOT_IN:
|
846
862
|
return "NOT_IN";
|
863
|
+
case DBRequest_DBOperator.LIKE:
|
864
|
+
return "LIKE";
|
865
|
+
case DBRequest_DBOperator.NOT_LIKE:
|
866
|
+
return "NOT_LIKE";
|
867
|
+
case DBRequest_DBOperator.HAS_ALL:
|
868
|
+
return "HAS_ALL";
|
869
|
+
case DBRequest_DBOperator.HAS_ANY:
|
870
|
+
return "HAS_ANY";
|
847
871
|
case DBRequest_DBOperator.UNRECOGNIZED:
|
848
872
|
default:
|
849
873
|
return "UNRECOGNIZED";
|
@@ -859,6 +883,7 @@ export interface DBRequest_DBList {
|
|
859
883
|
entity: string;
|
860
884
|
filters: DBRequest_DBFilter[];
|
861
885
|
cursor: string;
|
886
|
+
pageSize?: number | undefined;
|
862
887
|
}
|
863
888
|
|
864
889
|
export interface DBRequest_DBUpsert {
|
@@ -6442,7 +6467,7 @@ export const DBRequest_DBGet = {
|
|
6442
6467
|
};
|
6443
6468
|
|
6444
6469
|
function createBaseDBRequest_DBList(): DBRequest_DBList {
|
6445
|
-
return { entity: "", filters: [], cursor: "" };
|
6470
|
+
return { entity: "", filters: [], cursor: "", pageSize: undefined };
|
6446
6471
|
}
|
6447
6472
|
|
6448
6473
|
export const DBRequest_DBList = {
|
@@ -6456,6 +6481,9 @@ export const DBRequest_DBList = {
|
|
6456
6481
|
if (message.cursor !== "") {
|
6457
6482
|
writer.uint32(42).string(message.cursor);
|
6458
6483
|
}
|
6484
|
+
if (message.pageSize !== undefined) {
|
6485
|
+
writer.uint32(48).uint32(message.pageSize);
|
6486
|
+
}
|
6459
6487
|
return writer;
|
6460
6488
|
},
|
6461
6489
|
|
@@ -6487,6 +6515,13 @@ export const DBRequest_DBList = {
|
|
6487
6515
|
|
6488
6516
|
message.cursor = reader.string();
|
6489
6517
|
continue;
|
6518
|
+
case 6:
|
6519
|
+
if (tag !== 48) {
|
6520
|
+
break;
|
6521
|
+
}
|
6522
|
+
|
6523
|
+
message.pageSize = reader.uint32();
|
6524
|
+
continue;
|
6490
6525
|
}
|
6491
6526
|
if ((tag & 7) === 4 || tag === 0) {
|
6492
6527
|
break;
|
@@ -6503,6 +6538,7 @@ export const DBRequest_DBList = {
|
|
6503
6538
|
? object.filters.map((e: any) => DBRequest_DBFilter.fromJSON(e))
|
6504
6539
|
: [],
|
6505
6540
|
cursor: isSet(object.cursor) ? globalThis.String(object.cursor) : "",
|
6541
|
+
pageSize: isSet(object.pageSize) ? globalThis.Number(object.pageSize) : undefined,
|
6506
6542
|
};
|
6507
6543
|
},
|
6508
6544
|
|
@@ -6517,6 +6553,9 @@ export const DBRequest_DBList = {
|
|
6517
6553
|
if (message.cursor !== "") {
|
6518
6554
|
obj.cursor = message.cursor;
|
6519
6555
|
}
|
6556
|
+
if (message.pageSize !== undefined) {
|
6557
|
+
obj.pageSize = Math.round(message.pageSize);
|
6558
|
+
}
|
6520
6559
|
return obj;
|
6521
6560
|
},
|
6522
6561
|
|
@@ -6528,6 +6567,7 @@ export const DBRequest_DBList = {
|
|
6528
6567
|
message.entity = object.entity ?? "";
|
6529
6568
|
message.filters = object.filters?.map((e) => DBRequest_DBFilter.fromPartial(e)) || [];
|
6530
6569
|
message.cursor = object.cursor ?? "";
|
6570
|
+
message.pageSize = object.pageSize ?? undefined;
|
6531
6571
|
return message;
|
6532
6572
|
},
|
6533
6573
|
};
|
package/src/processor-runner.ts
CHANGED
@@ -8,6 +8,7 @@ import commandLineArgs from 'command-line-args'
|
|
8
8
|
import { createServer } from 'nice-grpc'
|
9
9
|
import { errorDetailsServerMiddleware } from 'nice-grpc-error-details'
|
10
10
|
import { registry as niceGrpcRegistry, prometheusServerMiddleware } from 'nice-grpc-prometheus'
|
11
|
+
import { openTelemetryServerMiddleware } from 'nice-grpc-opentelemetry'
|
11
12
|
import { register as globalRegistry, Registry } from 'prom-client'
|
12
13
|
import http from 'http'
|
13
14
|
// @ts-ignore inspector promises is not included in @type/node
|
@@ -20,6 +21,21 @@ import { FullProcessorServiceImpl } from './full-service.js'
|
|
20
21
|
import { ChainConfig } from './chain-config.js'
|
21
22
|
import { setupLogger } from './logger.js'
|
22
23
|
|
24
|
+
import { NodeSDK } from '@opentelemetry/sdk-node'
|
25
|
+
import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-grpc'
|
26
|
+
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc'
|
27
|
+
import { PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics'
|
28
|
+
|
29
|
+
const sdk = new NodeSDK({
|
30
|
+
traceExporter: new OTLPTraceExporter(),
|
31
|
+
metricReader: new PeriodicExportingMetricReader({
|
32
|
+
exporter: new OTLPMetricExporter()
|
33
|
+
})
|
34
|
+
// instrumentations: [getNodeAutoInstrumentations()],
|
35
|
+
})
|
36
|
+
|
37
|
+
sdk.start()
|
38
|
+
|
23
39
|
const mergedRegistry = Registry.merge([globalRegistry, niceGrpcRegistry])
|
24
40
|
|
25
41
|
const optionDefinitions = [
|
@@ -77,6 +93,7 @@ const server = createServer({
|
|
77
93
|
'grpc.default_compression_algorithm': compressionAlgorithms.gzip
|
78
94
|
})
|
79
95
|
.use(prometheusServerMiddleware())
|
96
|
+
.use(openTelemetryServerMiddleware())
|
80
97
|
.use(errorDetailsServerMiddleware)
|
81
98
|
const baseService = new ProcessorServiceImpl(async () => {
|
82
99
|
const m = await import(options.target)
|
package/src/service.ts
CHANGED
@@ -181,33 +181,39 @@ export class ProcessorServiceImpl implements ProcessorServiceImplementation {
|
|
181
181
|
requests: AsyncIterable<ProcessStreamRequest>,
|
182
182
|
subject: Subject<DeepPartial<ProcessStreamResponse>>
|
183
183
|
) {
|
184
|
-
const contexts
|
184
|
+
const contexts = new Contexts()
|
185
185
|
|
186
186
|
for await (const request of requests) {
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
.
|
194
|
-
|
195
|
-
|
196
|
-
|
187
|
+
try {
|
188
|
+
console.debug('received request:', request)
|
189
|
+
if (request.binding) {
|
190
|
+
const binding = request.binding
|
191
|
+
const dbContext = contexts.new(request.processId, subject)
|
192
|
+
const start = Date.now()
|
193
|
+
PluginManager.INSTANCE.processBinding(binding, dbContext)
|
194
|
+
.then((result) => {
|
195
|
+
subject.next({
|
196
|
+
result,
|
197
|
+
processId: request.processId
|
198
|
+
})
|
199
|
+
recordRuntimeInfo(result, binding.handlerType)
|
197
200
|
})
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
201
|
+
.catch((e) => {
|
202
|
+
console.debug(e)
|
203
|
+
dbContext.error(request.processId, e)
|
204
|
+
})
|
205
|
+
.finally(() => {
|
206
|
+
console.info('processBinding', request.processId, ' took', Date.now() - start, 'ms')
|
207
|
+
contexts.delete(request.processId)
|
208
|
+
})
|
209
|
+
}
|
210
|
+
if (request.dbResult) {
|
211
|
+
const dbContext = contexts.get(request.processId)
|
212
|
+
dbContext?.result(request.dbResult)
|
213
|
+
}
|
214
|
+
} catch (e) {
|
215
|
+
// should not happen
|
216
|
+
console.error('unexpect error during handle loop', e)
|
211
217
|
}
|
212
218
|
}
|
213
219
|
}
|
@@ -222,3 +228,24 @@ function recordRuntimeInfo(results: ProcessResult, handlerType: HandlerType) {
|
|
222
228
|
})
|
223
229
|
}
|
224
230
|
}
|
231
|
+
|
232
|
+
class Contexts {
|
233
|
+
private contexts: Map<number, StoreContext> = new Map()
|
234
|
+
|
235
|
+
get(processId: number) {
|
236
|
+
return this.contexts.get(processId)
|
237
|
+
}
|
238
|
+
|
239
|
+
new(processId: number, subject: Subject<DeepPartial<ProcessStreamResponse>>) {
|
240
|
+
const context = new StoreContext(subject, processId)
|
241
|
+
context.startPrintStats()
|
242
|
+
this.contexts.set(processId, context)
|
243
|
+
return context
|
244
|
+
}
|
245
|
+
|
246
|
+
delete(processId: number) {
|
247
|
+
const context = this.get(processId)
|
248
|
+
context?.close()
|
249
|
+
this.contexts.delete(processId)
|
250
|
+
}
|
251
|
+
}
|