@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.
@@ -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":"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"}
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
@@ -67,6 +67,7 @@ export declare class ProcessorServiceImpl implements ProcessorServiceImplementat
67
67
  } | undefined;
68
68
  }[] | undefined;
69
69
  cursor?: string | undefined;
70
+ pageSize?: number | undefined;
70
71
  } | undefined;
71
72
  } | undefined;
72
73
  result?: {
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAiBlF,cAAc;CAkC7B"}
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
- console.debug('received request:', request);
143
- if (request.binding) {
144
- const binding = request.binding;
145
- const dbContext = new StoreContext(subject, request.processId);
146
- contexts[request.processId] = dbContext;
147
- PluginManager.INSTANCE.processBinding(binding, dbContext)
148
- .then((result) => {
149
- subject.next({
150
- result,
151
- processId: request.processId
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
- recordRuntimeInfo(result, binding.handlerType);
154
- })
155
- .catch((e) => {
156
- console.error(e);
157
- dbContext.error(request.processId, e);
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
- if (request.dbResult) {
164
- const dbContext = contexts[request.processId];
165
- dbContext?.result(request.dbResult);
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
@@ -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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentio/runtime",
3
- "version": "2.39.7-rc.2",
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.2"
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 { DBRequest, DBResponse, DeepPartial, ProcessResult, ProcessStreamResponse } from '@sentio/protos'
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 defers = new Map<bigint, { resolve: (value: any) => void; reject: (reason?: any) => void }>()
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
- return promise
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
  };
@@ -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: Record<number, StoreContext> = {}
184
+ const contexts = new Contexts()
185
185
 
186
186
  for await (const request of requests) {
187
- console.debug('received request:', request)
188
- if (request.binding) {
189
- const binding = request.binding
190
- const dbContext = new StoreContext(subject, request.processId)
191
- contexts[request.processId] = dbContext
192
- PluginManager.INSTANCE.processBinding(binding, dbContext)
193
- .then((result) => {
194
- subject.next({
195
- result,
196
- processId: request.processId
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
- recordRuntimeInfo(result, binding.handlerType)
199
- })
200
- .catch((e) => {
201
- console.error(e)
202
- dbContext.error(request.processId, e)
203
- })
204
- .finally(() => {
205
- delete contexts[request.processId]
206
- })
207
- }
208
- if (request.dbResult) {
209
- const dbContext = contexts[request.processId]
210
- dbContext?.result(request.dbResult)
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
+ }