@sentio/runtime 2.39.7-rc.22 → 2.39.7-rc.23

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.
@@ -1,17 +1,16 @@
1
1
  import { Subject } from 'rxjs';
2
2
  import { DBRequest, DBRequest_DBUpsert, DBResponse, DeepPartial, ProcessStreamResponse } from '@sentio/protos';
3
3
  type Request = Omit<DBRequest, 'opId'>;
4
+ type RequestType = keyof Request;
4
5
  export declare const timeoutError: unique symbol;
5
6
  export declare class StoreContext {
6
7
  readonly subject: Subject<DeepPartial<ProcessStreamResponse>>;
7
8
  readonly processId: number;
8
9
  private static opCounter;
9
- private send_counts;
10
- private recv_counts;
11
10
  private defers;
12
11
  private statsInterval;
13
12
  constructor(subject: Subject<DeepPartial<ProcessStreamResponse>>, processId: number);
14
- newPromise<T>(opId: bigint, requestType?: string): Promise<T>;
13
+ newPromise<T>(opId: bigint, requestType?: RequestType): Promise<T>;
15
14
  sendRequest(request: DeepPartial<Request>, timeoutSecs?: number): Promise<DBResponse>;
16
15
  result(dbResult: DBResponse): void;
17
16
  error(processId: number, e: any): void;
@@ -19,7 +18,6 @@ export declare class StoreContext {
19
18
  queuedUpsert: DBRequest_DBUpsert | undefined;
20
19
  queuedUpsertPromise: Promise<DBResponse> | undefined;
21
20
  private sendUpsert;
22
- startPrintStats(): void;
23
21
  }
24
22
  export {};
25
23
  //# sourceMappingURL=db-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"db-context.d.ts","sourceRoot":"","sources":["../src/db-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,UAAU,EACV,WAAW,EAEX,qBAAqB,EACtB,MAAM,gBAAgB,CAAA;AAKvB,KAAK,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;AACtC,eAAO,MAAM,YAAY,eAAW,CAAA;AAEpC,qBAAa,YAAY;IAarB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAC7D,QAAQ,CAAC,SAAS,EAAE,MAAM;IAb5B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAK;IAE7B,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,WAAW,CAA6B;IAEhD,OAAO,CAAC,MAAM,CAGX;IACH,OAAO,CAAC,aAAa,CAA4B;gBAGtC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC,EACpD,SAAS,EAAE,MAAM;IAG5B,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;IAMhD,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA+CrF,MAAM,CAAC,QAAQ,EAAE,UAAU;IAiB3B,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG;IAa/B,KAAK;IAWL,YAAY,EAAE,kBAAkB,GAAG,SAAS,CAAA;IAC5C,mBAAmB,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,SAAS,CAAA;YAEtC,UAAU;IA8BxB,eAAe;CAMhB"}
1
+ {"version":3,"file":"db-context.d.ts","sourceRoot":"","sources":["../src/db-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,UAAU,EACV,WAAW,EAEX,qBAAqB,EACtB,MAAM,gBAAgB,CAAA;AAMvB,KAAK,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;AACtC,KAAK,WAAW,GAAG,MAAM,OAAO,CAAA;AA8BhC,eAAO,MAAM,YAAY,eAAW,CAAA;AAEpC,qBAAa,YAAY;IAUrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAC7D,QAAQ,CAAC,SAAS,EAAE,MAAM;IAV5B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAK;IAE7B,OAAO,CAAC,MAAM,CAGX;IACH,OAAO,CAAC,aAAa,CAA4B;gBAGtC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC,EACpD,SAAS,EAAE,MAAM;IAG5B,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW;IAOrD,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAiDrF,MAAM,CAAC,QAAQ,EAAE,UAAU;IAkB3B,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG;IAa/B,KAAK;IAWL,YAAY,EAAE,kBAAkB,GAAG,SAAS,CAAA;IAC5C,mBAAmB,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,SAAS,CAAA;YAEtC,UAAU;CA6BzB"}
package/lib/db-context.js CHANGED
@@ -1,13 +1,38 @@
1
1
  import { ProcessResult } from '@sentio/protos';
2
2
  import * as process from 'node:process';
3
- const STORE_BATCH_IDLE = process.env['STORE_BATCH_IDLE'] ? parseInt(process.env['STORE_BATCH_IDLE']) : 10;
3
+ import { metrics } from '@opentelemetry/api';
4
+ const STORE_BATCH_IDLE = process.env['STORE_BATCH_IDLE'] ? parseInt(process.env['STORE_BATCH_IDLE']) : 0;
5
+ const meter = metrics.getMeter('store');
6
+ const send_counts = {
7
+ get: meter.createCounter('store_get_count'),
8
+ upsert: meter.createCounter('store_upsert_count'),
9
+ list: meter.createCounter('store_list_count'),
10
+ delete: meter.createCounter('store_delete_count')
11
+ };
12
+ const recv_counts = {
13
+ get: meter.createCounter('store_get_count'),
14
+ upsert: meter.createCounter('store_upsert_count'),
15
+ list: meter.createCounter('store_list_count'),
16
+ delete: meter.createCounter('store_delete_count')
17
+ };
18
+ const request_times = {
19
+ get: meter.createCounter('store_get_time'),
20
+ upsert: meter.createCounter('store_upsert_time'),
21
+ list: meter.createCounter('store_list_time'),
22
+ delete: meter.createCounter('store_delete_time')
23
+ };
24
+ const request_errors = {
25
+ get: meter.createCounter('store_get_error'),
26
+ upsert: meter.createCounter('store_upsert_error'),
27
+ list: meter.createCounter('store_list_error'),
28
+ delete: meter.createCounter('store_delete_error')
29
+ };
30
+ const unsolved_requests = meter.createGauge('store_unsolved_requests');
4
31
  export const timeoutError = Symbol();
5
32
  export class StoreContext {
6
33
  subject;
7
34
  processId;
8
35
  static opCounter = 0n;
9
- send_counts = {};
10
- recv_counts = {};
11
36
  defers = new Map();
12
37
  statsInterval;
13
38
  constructor(subject, processId) {
@@ -17,6 +42,7 @@ export class StoreContext {
17
42
  newPromise(opId, requestType) {
18
43
  return new Promise((resolve, reject) => {
19
44
  this.defers.set(opId, { resolve, reject, requestType });
45
+ unsolved_requests.record(this.defers.size, { processId: this.processId });
20
46
  });
21
47
  }
22
48
  sendRequest(request, timeoutSecs) {
@@ -42,16 +68,18 @@ export class StoreContext {
42
68
  },
43
69
  processId: this.processId
44
70
  });
45
- this.send_counts[requestType] = (this.send_counts[requestType] || 0) + 1;
71
+ send_counts[requestType]?.add(1);
46
72
  return Promise.race(promises)
47
73
  .then((result) => {
48
- console.info('db request', requestType, 'op', opId, ' took', Date.now() - start, 'ms');
74
+ console.debug('db request', requestType, 'op', opId, ' took', Date.now() - start, 'ms');
75
+ request_times[requestType]?.add(Date.now() - start);
49
76
  return result;
50
77
  })
51
78
  .catch((e) => {
52
79
  if (e === timeoutError) {
53
80
  console.error('db request', requestType, 'op:', opId, ' timeout');
54
81
  }
82
+ request_errors[requestType]?.add(1);
55
83
  throw e;
56
84
  })
57
85
  .finally(() => {
@@ -66,7 +94,7 @@ export class StoreContext {
66
94
  console.debug('received db result ', opId, dbResult);
67
95
  if (defer) {
68
96
  if (defer.requestType) {
69
- this.recv_counts[defer.requestType] = (this.recv_counts[defer.requestType] || 0) + 1;
97
+ recv_counts[defer.requestType]?.add(1);
70
98
  }
71
99
  if (dbResult.error) {
72
100
  defer.reject(new Error(dbResult.error));
@@ -76,6 +104,7 @@ export class StoreContext {
76
104
  }
77
105
  this.defers.delete(opId);
78
106
  }
107
+ unsolved_requests.record(this.defers.size, { processId: this.processId });
79
108
  }
80
109
  error(processId, e) {
81
110
  console.error('process error', processId, e);
@@ -117,7 +146,7 @@ export class StoreContext {
117
146
  await delay(batchIdleMs);
118
147
  this.queuedUpsertPromise = undefined;
119
148
  this.queuedUpsert = undefined;
120
- console.log('sending upsert', opId, 'batch size', req.entity.length);
149
+ console.debug('sending upsert', opId, 'batch size', req.entity.length);
121
150
  this.subject.next({
122
151
  dbRequest: {
123
152
  upsert: req,
@@ -125,16 +154,10 @@ export class StoreContext {
125
154
  },
126
155
  processId: this.processId
127
156
  });
128
- this.send_counts['upsert'] = (this.send_counts['upsert'] || 0) + 1;
157
+ send_counts['upsert']?.add(1);
129
158
  return promise;
130
159
  }
131
160
  }
132
- startPrintStats() {
133
- this.statsInterval = setInterval(() => {
134
- console.log('send counts', this.send_counts);
135
- console.log('recv counts', this.recv_counts);
136
- }, 10000);
137
- }
138
161
  }
139
162
  function delay(ms) {
140
163
  return new Promise((resolve) => setTimeout(resolve, ms));
@@ -1 +1 @@
1
- {"version":3,"file":"db-context.js","sourceRoot":"","sources":["../src/db-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db-context.js","sourceRoot":"","sources":["../src/db-context.ts"],"names":[],"mappings":"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"}
@@ -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;CAwC7B"}
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;AAmBvB,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;CA4C7B"}
package/lib/service.js CHANGED
@@ -8,6 +8,11 @@ import { errorString, mergeProcessResults } from './utils.js';
8
8
  import { freezeGlobalConfig, GLOBAL_CONFIG } from './global-config.js';
9
9
  import { StoreContext } from './db-context.js';
10
10
  import { Subject } from 'rxjs';
11
+ import { metrics } from '@opentelemetry/api';
12
+ const meter = metrics.getMeter('store');
13
+ const process_binding_count = meter.createCounter('process_binding_count');
14
+ const process_binding_time = meter.createCounter('process_binding_time');
15
+ const process_binding_error = meter.createCounter('process_binding_error');
11
16
  BigInt.prototype.toJSON = function () {
12
17
  return this.toString();
13
18
  };
@@ -142,6 +147,7 @@ export class ProcessorServiceImpl {
142
147
  try {
143
148
  console.debug('received request:', request);
144
149
  if (request.binding) {
150
+ process_binding_count.add(1);
145
151
  const binding = request.binding;
146
152
  const dbContext = contexts.new(request.processId, subject);
147
153
  const start = Date.now();
@@ -156,9 +162,12 @@ export class ProcessorServiceImpl {
156
162
  .catch((e) => {
157
163
  console.debug(e);
158
164
  dbContext.error(request.processId, e);
165
+ process_binding_error.add(1);
159
166
  })
160
167
  .finally(() => {
161
- console.info('processBinding', request.processId, ' took', Date.now() - start, 'ms');
168
+ const cost = Date.now() - start;
169
+ console.debug('processBinding', request.processId, ' took', cost, 'ms');
170
+ process_binding_time.add(cost);
162
171
  contexts.delete(request.processId);
163
172
  });
164
173
  }
@@ -190,7 +199,6 @@ class Contexts {
190
199
  }
191
200
  new(processId, subject) {
192
201
  const context = new StoreContext(subject, processId);
193
- context.startPrintStats();
194
202
  this.contexts.set(processId, context);
195
203
  return context;
196
204
  }
@@ -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.22",
3
+ "version": "2.39.7-rc.23",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "exports": {
@@ -35,7 +35,7 @@
35
35
  "rxjs": "^7.8.1",
36
36
  "utility-types": "^3.11.0",
37
37
  "winston": "^3.11.0",
38
- "@sentio/protos": "2.39.7-rc.22"
38
+ "@sentio/protos": "2.39.7-rc.23"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/command-line-args": "^5.2.3",
package/src/db-context.ts CHANGED
@@ -8,21 +8,49 @@ import {
8
8
  ProcessStreamResponse
9
9
  } from '@sentio/protos'
10
10
  import * as process from 'node:process'
11
+ import { Attributes, Counter, metrics } from '@opentelemetry/api'
11
12
 
12
- const STORE_BATCH_IDLE = process.env['STORE_BATCH_IDLE'] ? parseInt(process.env['STORE_BATCH_IDLE']) : 10
13
+ const STORE_BATCH_IDLE = process.env['STORE_BATCH_IDLE'] ? parseInt(process.env['STORE_BATCH_IDLE']) : 0
13
14
 
14
15
  type Request = Omit<DBRequest, 'opId'>
16
+ type RequestType = keyof Request
17
+
18
+ const meter = metrics.getMeter('store')
19
+ const send_counts: Record<RequestType, Counter<Attributes>> = {
20
+ get: meter.createCounter('store_get_count'),
21
+ upsert: meter.createCounter('store_upsert_count'),
22
+ list: meter.createCounter('store_list_count'),
23
+ delete: meter.createCounter('store_delete_count')
24
+ }
25
+ const recv_counts: Record<RequestType, Counter<Attributes>> = {
26
+ get: meter.createCounter('store_get_count'),
27
+ upsert: meter.createCounter('store_upsert_count'),
28
+ list: meter.createCounter('store_list_count'),
29
+ delete: meter.createCounter('store_delete_count')
30
+ }
31
+ const request_times: Record<RequestType, Counter<Attributes>> = {
32
+ get: meter.createCounter('store_get_time'),
33
+ upsert: meter.createCounter('store_upsert_time'),
34
+ list: meter.createCounter('store_list_time'),
35
+ delete: meter.createCounter('store_delete_time')
36
+ }
37
+ const request_errors: Record<RequestType, Counter<Attributes>> = {
38
+ get: meter.createCounter('store_get_error'),
39
+ upsert: meter.createCounter('store_upsert_error'),
40
+ list: meter.createCounter('store_list_error'),
41
+ delete: meter.createCounter('store_delete_error')
42
+ }
43
+
44
+ const unsolved_requests = meter.createGauge('store_unsolved_requests')
45
+
15
46
  export const timeoutError = Symbol()
16
47
 
17
48
  export class StoreContext {
18
49
  private static opCounter = 0n
19
50
 
20
- private send_counts: Record<string, number> = {}
21
- private recv_counts: Record<string, number> = {}
22
-
23
51
  private defers = new Map<
24
52
  bigint,
25
- { resolve: (value: any) => void; reject: (reason?: any) => void; requestType?: string }
53
+ { resolve: (value: any) => void; reject: (reason?: any) => void; requestType?: RequestType }
26
54
  >()
27
55
  private statsInterval: NodeJS.Timeout | undefined
28
56
 
@@ -31,9 +59,10 @@ export class StoreContext {
31
59
  readonly processId: number
32
60
  ) {}
33
61
 
34
- newPromise<T>(opId: bigint, requestType?: string) {
62
+ newPromise<T>(opId: bigint, requestType?: RequestType) {
35
63
  return new Promise<T>((resolve, reject) => {
36
64
  this.defers.set(opId, { resolve, reject, requestType })
65
+ unsolved_requests.record(this.defers.size, { processId: this.processId })
37
66
  })
38
67
  }
39
68
 
@@ -43,7 +72,7 @@ export class StoreContext {
43
72
  return this.sendUpsert(request.upsert as DBRequest_DBUpsert, STORE_BATCH_IDLE)
44
73
  }
45
74
 
46
- const requestType = Object.keys(request)[0] as string
75
+ const requestType = Object.keys(request)[0] as RequestType
47
76
  const opId = StoreContext.opCounter++
48
77
  const promise = this.newPromise(opId, requestType)
49
78
 
@@ -64,17 +93,19 @@ export class StoreContext {
64
93
  processId: this.processId
65
94
  })
66
95
 
67
- this.send_counts[requestType] = (this.send_counts[requestType] || 0) + 1
96
+ send_counts[requestType]?.add(1)
68
97
 
69
98
  return Promise.race(promises)
70
99
  .then((result: DBResponse) => {
71
- console.info('db request', requestType, 'op', opId, ' took', Date.now() - start, 'ms')
100
+ console.debug('db request', requestType, 'op', opId, ' took', Date.now() - start, 'ms')
101
+ request_times[requestType]?.add(Date.now() - start)
72
102
  return result
73
103
  })
74
104
  .catch((e) => {
75
105
  if (e === timeoutError) {
76
106
  console.error('db request', requestType, 'op:', opId, ' timeout')
77
107
  }
108
+ request_errors[requestType]?.add(1)
78
109
  throw e
79
110
  })
80
111
  .finally(() => {
@@ -90,7 +121,7 @@ export class StoreContext {
90
121
  console.debug('received db result ', opId, dbResult)
91
122
  if (defer) {
92
123
  if (defer.requestType) {
93
- this.recv_counts[defer.requestType] = (this.recv_counts[defer.requestType] || 0) + 1
124
+ recv_counts[defer.requestType]?.add(1)
94
125
  }
95
126
  if (dbResult.error) {
96
127
  defer.reject(new Error(dbResult.error))
@@ -99,6 +130,7 @@ export class StoreContext {
99
130
  }
100
131
  this.defers.delete(opId)
101
132
  }
133
+ unsolved_requests.record(this.defers.size, { processId: this.processId })
102
134
  }
103
135
 
104
136
  error(processId: number, e: any) {
@@ -144,7 +176,7 @@ export class StoreContext {
144
176
  await delay(batchIdleMs)
145
177
  this.queuedUpsertPromise = undefined
146
178
  this.queuedUpsert = undefined
147
- console.log('sending upsert', opId, 'batch size', req.entity.length)
179
+ console.debug('sending upsert', opId, 'batch size', req.entity.length)
148
180
  this.subject.next({
149
181
  dbRequest: {
150
182
  upsert: req,
@@ -152,18 +184,11 @@ export class StoreContext {
152
184
  },
153
185
  processId: this.processId
154
186
  })
155
- this.send_counts['upsert'] = (this.send_counts['upsert'] || 0) + 1
187
+ send_counts['upsert']?.add(1)
156
188
 
157
189
  return promise
158
190
  }
159
191
  }
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
192
  }
168
193
 
169
194
  function delay(ms: number) {
package/src/service.ts CHANGED
@@ -25,6 +25,13 @@ import { freezeGlobalConfig, GLOBAL_CONFIG } from './global-config.js'
25
25
 
26
26
  import { StoreContext } from './db-context.js'
27
27
  import { Subject } from 'rxjs'
28
+ import { metrics } from '@opentelemetry/api'
29
+
30
+ const meter = metrics.getMeter('store')
31
+ const process_binding_count = meter.createCounter('process_binding_count')
32
+ const process_binding_time = meter.createCounter('process_binding_time')
33
+ const process_binding_error = meter.createCounter('process_binding_error')
34
+
28
35
  ;(BigInt.prototype as any).toJSON = function () {
29
36
  return this.toString()
30
37
  }
@@ -187,6 +194,7 @@ export class ProcessorServiceImpl implements ProcessorServiceImplementation {
187
194
  try {
188
195
  console.debug('received request:', request)
189
196
  if (request.binding) {
197
+ process_binding_count.add(1)
190
198
  const binding = request.binding
191
199
  const dbContext = contexts.new(request.processId, subject)
192
200
  const start = Date.now()
@@ -201,9 +209,12 @@ export class ProcessorServiceImpl implements ProcessorServiceImplementation {
201
209
  .catch((e) => {
202
210
  console.debug(e)
203
211
  dbContext.error(request.processId, e)
212
+ process_binding_error.add(1)
204
213
  })
205
214
  .finally(() => {
206
- console.info('processBinding', request.processId, ' took', Date.now() - start, 'ms')
215
+ const cost = Date.now() - start
216
+ console.debug('processBinding', request.processId, ' took', cost, 'ms')
217
+ process_binding_time.add(cost)
207
218
  contexts.delete(request.processId)
208
219
  })
209
220
  }
@@ -238,7 +249,6 @@ class Contexts {
238
249
 
239
250
  new(processId: number, subject: Subject<DeepPartial<ProcessStreamResponse>>) {
240
251
  const context = new StoreContext(subject, processId)
241
- context.startPrintStats()
242
252
  this.contexts.set(processId, context)
243
253
  return context
244
254
  }