@omnitronix/rng-client-core 1.0.9 → 1.1.1

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.
Files changed (54) hide show
  1. package/dist/index.d.ts +6 -5
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/interfaces/client-interfaces.d.ts +6 -2
  4. package/dist/interfaces/client-interfaces.d.ts.map +1 -1
  5. package/dist/interfaces/metrics.d.ts +31 -0
  6. package/dist/interfaces/metrics.d.ts.map +1 -0
  7. package/dist/interfaces/metrics.js +3 -0
  8. package/dist/interfaces/metrics.js.map +1 -0
  9. package/dist/metrics/default-metrics-handlers.d.ts +3 -0
  10. package/dist/metrics/default-metrics-handlers.d.ts.map +1 -0
  11. package/dist/metrics/default-metrics-handlers.js +23 -0
  12. package/dist/metrics/default-metrics-handlers.js.map +1 -0
  13. package/dist/ring-buffer/interfaces.d.ts +0 -7
  14. package/dist/ring-buffer/interfaces.d.ts.map +1 -1
  15. package/dist/ring-buffer/ring-buffer.d.ts +10 -6
  16. package/dist/ring-buffer/ring-buffer.d.ts.map +1 -1
  17. package/dist/ring-buffer/ring-buffer.js +91 -10
  18. package/dist/ring-buffer/ring-buffer.js.map +1 -1
  19. package/dist/ring-buffer/ring-storage-memory.d.ts +1 -2
  20. package/dist/ring-buffer/ring-storage-memory.d.ts.map +1 -1
  21. package/dist/ring-buffer/ring-storage-memory.js +0 -11
  22. package/dist/ring-buffer/ring-storage-memory.js.map +1 -1
  23. package/dist/ring-buffer/ring-storage.d.ts +1 -2
  24. package/dist/ring-buffer/ring-storage.d.ts.map +1 -1
  25. package/dist/ring-buffer/ring-storage.js +0 -6
  26. package/dist/ring-buffer/ring-storage.js.map +1 -1
  27. package/dist/rng-client.d.ts +2 -4
  28. package/dist/rng-client.d.ts.map +1 -1
  29. package/dist/rng-client.js +5 -3
  30. package/dist/rng-client.js.map +1 -1
  31. package/package.json +3 -2
  32. package/src/__tests__/grpc-rng-client.test.ts +167 -0
  33. package/src/__tests__/rng-client-core.integration.test.ts +117 -0
  34. package/src/__tests__/rng-client-core.test.ts +249 -0
  35. package/src/__tests__/rng-client-grpc.test.ts +324 -0
  36. package/src/__tests__/rng-client.test.ts +296 -0
  37. package/src/core/rng-client-core.ts +80 -0
  38. package/src/errors/rng-errors.ts +96 -0
  39. package/src/grpc/grpc-rng-client.ts +162 -0
  40. package/src/grpc/grpc-rng-interface.ts +36 -0
  41. package/src/http/http-client.types.ts +48 -0
  42. package/src/http/http-rng-client.ts +140 -0
  43. package/src/http/rest-client.ts +151 -0
  44. package/src/http/rng-client.interface.ts +22 -0
  45. package/src/index.ts +21 -0
  46. package/src/interfaces/client-interfaces.ts +15 -0
  47. package/src/interfaces/metrics.ts +38 -0
  48. package/src/metrics/default-metrics-handlers.ts +29 -0
  49. package/src/ring-buffer/interfaces.ts +9 -0
  50. package/src/ring-buffer/ring-buffer.ts +214 -0
  51. package/src/ring-buffer/ring-storage-memory.ts +48 -0
  52. package/src/ring-buffer/ring-storage.ts +59 -0
  53. package/src/rng-client.ts +190 -0
  54. package/src/rng.proto +102 -0
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- export { RngClient } from "./rng-client";
2
- export { HttpRngClient } from "./http/http-rng-client";
3
- export { GrpcRngClient } from "./grpc/grpc-rng-client";
4
- export { RngServiceError, RngConnectionError, HttpConnectionError, HttpServiceError, handleGrpcError, } from "./errors/rng-errors";
5
- export type { RngClientConfig, ClientMethod, } from "./interfaces/client-interfaces";
1
+ export { RngClient } from './rng-client';
2
+ export { HttpRngClient } from './http/http-rng-client';
3
+ export { GrpcRngClient } from './grpc/grpc-rng-client';
4
+ export { RngServiceError, RngConnectionError, HttpConnectionError, HttpServiceError, handleGrpcError, } from './errors/rng-errors';
5
+ export type { RngClientConfig, ClientMethod, } from './interfaces/client-interfaces';
6
+ export type { RngClientMetricsHandlers as MetricsHandlers } from './interfaces/metrics';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EACV,eAAe,EACf,YAAY,GACb,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EACV,eAAe,EACf,YAAY,GACb,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,wBAAwB,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,10 +1,14 @@
1
- import { StorageType } from "../ring-buffer/ring-storage";
2
- export type ClientMethod = "rest" | "grpc";
1
+ import { StorageType } from '../ring-buffer/ring-storage';
2
+ import { RngClientMetricsHandlers } from './metrics';
3
+ export type ClientMethod = 'rest' | 'grpc';
3
4
  export interface RngClientConfig {
4
5
  readonly serverUrl: string;
5
6
  readonly grpcUrl: string;
6
7
  readonly clientMethod: ClientMethod;
7
8
  readonly poolingSize?: number;
8
9
  readonly storageType?: StorageType;
10
+ readonly metrics?: {
11
+ handlers?: Partial<RngClientMetricsHandlers>;
12
+ };
9
13
  }
10
14
  //# sourceMappingURL=client-interfaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces/client-interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;CACpC"}
1
+ {"version":3,"file":"client-interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces/client-interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjB,QAAQ,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC;KAC9C,CAAC;CACH"}
@@ -0,0 +1,31 @@
1
+ export interface Counter<L = Record<string, string | number>> {
2
+ inc: (_labels?: L, _value?: number) => void;
3
+ }
4
+ export interface Histogram<L = Record<string, string | number>> {
5
+ observe: (_labels: L, _value: number) => void;
6
+ }
7
+ export interface Gauge<L = Record<string, string | number>> {
8
+ set: (_labels: L, _value: number) => void;
9
+ }
10
+ interface RngBufferBaseLabels {
11
+ rng_range: string;
12
+ engine_type: string;
13
+ }
14
+ export interface RngBufferMetricsHandlers {
15
+ rngBufferCapacity: Gauge<RngBufferBaseLabels>;
16
+ rngBufferFillLevel: Gauge<RngBufferBaseLabels>;
17
+ rngBufferFillRatio: Gauge<RngBufferBaseLabels>;
18
+ rngBufferRefillRequestsTotal: Counter<RngBufferBaseLabels & {
19
+ reason?: string;
20
+ }>;
21
+ rngBufferRefillFailuresTotal: Counter<RngBufferBaseLabels & {
22
+ reason?: string;
23
+ error?: string;
24
+ }>;
25
+ rngBufferRefillDurationMs: Histogram<RngBufferBaseLabels>;
26
+ rngBufferStarvationEventsTotal: Counter<RngBufferBaseLabels>;
27
+ rngBufferLatencyMs: Histogram<RngBufferBaseLabels>;
28
+ }
29
+ export type RngClientMetricsHandlers = RngBufferMetricsHandlers;
30
+ export {};
31
+ //# sourceMappingURL=metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/interfaces/metrics.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1D,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5D,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxD,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,iBAAiB,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC9C,kBAAkB,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC/C,kBAAkB,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC/C,4BAA4B,EAAE,OAAO,CACnC,mBAAmB,GAAG;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CACF,CAAC;IACF,4BAA4B,EAAE,OAAO,CACnC,mBAAmB,GAAG;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CACF,CAAC;IACF,yBAAyB,EAAE,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAC1D,8BAA8B,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC7D,kBAAkB,EAAE,SAAS,CAAC,mBAAmB,CAAC,CAAC;CACpD;AAED,MAAM,MAAM,wBAAwB,GAAG,wBAAwB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/interfaces/metrics.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { RngClientMetricsHandlers } from '../interfaces/metrics';
2
+ export declare const defaultMetricsHandlers: RngClientMetricsHandlers;
3
+ //# sourceMappingURL=default-metrics-handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-metrics-handlers.d.ts","sourceRoot":"","sources":["../../src/metrics/default-metrics-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAc/B,eAAO,MAAM,sBAAsB,EAAE,wBASpC,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultMetricsHandlers = void 0;
4
+ class DummyCounter {
5
+ inc(_labels, _value) { }
6
+ }
7
+ class DummyGauge {
8
+ set(_labels, _value) { }
9
+ }
10
+ class DummyHistogram {
11
+ observe(_labels, _value) { }
12
+ }
13
+ exports.defaultMetricsHandlers = {
14
+ rngBufferCapacity: new DummyGauge(),
15
+ rngBufferFillLevel: new DummyGauge(),
16
+ rngBufferFillRatio: new DummyGauge(),
17
+ rngBufferRefillRequestsTotal: new DummyCounter(),
18
+ rngBufferRefillFailuresTotal: new DummyCounter(),
19
+ rngBufferRefillDurationMs: new DummyHistogram(),
20
+ rngBufferStarvationEventsTotal: new DummyCounter(),
21
+ rngBufferLatencyMs: new DummyHistogram(),
22
+ };
23
+ //# sourceMappingURL=default-metrics-handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-metrics-handlers.js","sourceRoot":"","sources":["../../src/metrics/default-metrics-handlers.ts"],"names":[],"mappings":";;;AAOA,MAAM,YAAY;IAChB,GAAG,CAAC,OAAiB,EAAE,MAAe,IAAS,CAAC;CACjD;AAED,MAAM,UAAU;IACd,GAAG,CAAC,OAAgB,EAAE,MAAc,IAAS,CAAC;CAC/C;AAED,MAAM,cAAc;IAClB,OAAO,CAAC,OAAgB,EAAE,MAAc,IAAS,CAAC;CACnD;AAEY,QAAA,sBAAsB,GAA6B;IAC9D,iBAAiB,EAAE,IAAI,UAAU,EAAE;IACnC,kBAAkB,EAAE,IAAI,UAAU,EAAE;IACpC,kBAAkB,EAAE,IAAI,UAAU,EAAE;IACpC,4BAA4B,EAAE,IAAI,YAAY,EAAE;IAChD,4BAA4B,EAAE,IAAI,YAAY,EAAE;IAChD,yBAAyB,EAAE,IAAI,cAAc,EAAE;IAC/C,8BAA8B,EAAE,IAAI,YAAY,EAAE;IAClD,kBAAkB,EAAE,IAAI,cAAc,EAAE;CACzC,CAAC"}
@@ -9,11 +9,4 @@ export interface RingBufferValue {
9
9
  value: number;
10
10
  seed: number;
11
11
  }
12
- export interface RingBufferStats {
13
- id: string;
14
- size: number;
15
- ranges: {
16
- [key: string]: number;
17
- };
18
- }
19
12
  //# sourceMappingURL=interfaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/ring-buffer/interfaces.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACrC;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,CAAC;CACH"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/ring-buffer/interfaces.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACrC;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -1,11 +1,13 @@
1
- import { RingBufferStats, RingBufferValue, SingleRingBuffer } from "./interfaces";
2
- import { RngClientCore } from "../core/rng-client-core";
3
- import { StorageType } from "./ring-storage";
1
+ import { RingBufferValue, SingleRingBuffer } from './interfaces';
2
+ import { RngClientCore } from '../core/rng-client-core';
3
+ import { StorageType } from './ring-storage';
4
+ import { RngBufferMetricsHandlers } from '../interfaces/metrics';
4
5
  export declare const FILL_UP_BUFFER_DELAY = 5;
5
6
  export interface RingBufferConfig {
6
7
  size?: number;
7
8
  clientCore: RngClientCore;
8
9
  storageType: StorageType;
10
+ metrics: RngBufferMetricsHandlers;
9
11
  }
10
12
  export declare class RingBuffer {
11
13
  private size;
@@ -13,10 +15,12 @@ export declare class RingBuffer {
13
15
  private clientCore;
14
16
  private storageType;
15
17
  private storage;
16
- constructor({ size, clientCore, storageType }: RingBufferConfig);
17
- getStats(): Promise<RingBufferStats | undefined>;
18
+ private readonly metrics;
19
+ constructor({ size, clientCore, storageType, metrics }: RingBufferConfig);
20
+ private getRangeKey;
21
+ private getEngineType;
18
22
  getNumbersByRange(min: number, max: number, count?: number): Promise<RingBufferValue[] | undefined>;
19
- fillUpBuffer(buffer: SingleRingBuffer): Promise<void>;
23
+ fillUpBuffer(buffer: SingleRingBuffer, reason?: string): Promise<void>;
20
24
  pullNumberByBuffer(buffer: SingleRingBuffer): Promise<RingBufferValue[]>;
21
25
  createBuffer(min: number, max: number): SingleRingBuffer;
22
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ring-buffer.d.ts","sourceRoot":"","sources":["../../src/ring-buffer/ring-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EACf,gBAAgB,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAe,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE1D,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,aAAa,CAAC;IAC1B,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,OAAO,CAAc;gBAEjB,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,gBAAgB;IAQzD,QAAQ,IAAI,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAIhD,iBAAiB,CACrB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,KAAK,SAAI,GACR,OAAO,CAAC,eAAe,EAAE,GAAG,SAAS,CAAC;IAoBnC,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrD,kBAAkB,CACtB,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,eAAe,EAAE,CAAC;IAa7B,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,gBAAgB;CAMzD"}
1
+ {"version":3,"file":"ring-buffer.d.ts","sourceRoot":"","sources":["../../src/ring-buffer/ring-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAe,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,aAAa,CAAC;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,wBAAwB,CAAC;CACnC;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;gBAEvC,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,gBAAgB;IASxE,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,aAAa;IAIf,iBAAiB,CACrB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,KAAK,SAAI,GACR,OAAO,CAAC,eAAe,EAAE,GAAG,SAAS,CAAC;IAoEnC,YAAY,CAChB,MAAM,EAAE,gBAAgB,EACxB,MAAM,GAAE,MAAoB,GAC3B,OAAO,CAAC,IAAI,CAAC;IAsEV,kBAAkB,CACtB,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,eAAe,EAAE,CAAC;IAa7B,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,gBAAgB;CAczD"}
@@ -4,41 +4,118 @@ exports.RingBuffer = exports.FILL_UP_BUFFER_DELAY = void 0;
4
4
  const ring_storage_1 = require("./ring-storage");
5
5
  exports.FILL_UP_BUFFER_DELAY = 5;
6
6
  class RingBuffer {
7
- constructor({ size, clientCore, storageType }) {
7
+ constructor({ size, clientCore, storageType, metrics }) {
8
8
  this.size = size ?? 2000;
9
9
  this.maxSize = this.size * 2;
10
10
  this.clientCore = clientCore;
11
11
  this.storageType = storageType;
12
12
  this.storage = new ring_storage_1.RingStorage(storageType);
13
+ this.metrics = metrics;
13
14
  }
14
- async getStats() {
15
- return this.storage.getStats();
15
+ getRangeKey(min, max) {
16
+ return `${min}-${max}`;
17
+ }
18
+ getEngineType() {
19
+ return 'default';
16
20
  }
17
21
  async getNumbersByRange(min, max, count = 1) {
22
+ const rangeKey = this.getRangeKey(min, max);
23
+ let requestStartTime = Date.now();
18
24
  const buffer = await this.storage.getBufferByRange(min, max);
19
25
  if (!buffer) {
26
+ this.metrics.rngBufferStarvationEventsTotal.inc({
27
+ rng_range: rangeKey,
28
+ engine_type: this.getEngineType(),
29
+ });
20
30
  const newBuffer = this.createBuffer(min, max);
21
31
  await this.storage.saveBuffer(newBuffer);
22
32
  setTimeout(async () => {
23
- await this.fillUpBuffer(newBuffer);
33
+ requestStartTime = Date.now();
34
+ await this.fillUpBuffer(newBuffer, 'initial');
35
+ const latency = Date.now() - requestStartTime;
36
+ this.metrics.rngBufferLatencyMs.observe({
37
+ rng_range: rangeKey,
38
+ engine_type: this.getEngineType(),
39
+ }, latency);
24
40
  }, exports.FILL_UP_BUFFER_DELAY);
25
41
  return undefined;
26
42
  }
27
43
  const item = await this.storage.getFromBuffer(buffer, count);
28
44
  if (!item) {
45
+ this.metrics.rngBufferStarvationEventsTotal.inc({
46
+ rng_range: rangeKey,
47
+ engine_type: this.getEngineType(),
48
+ });
49
+ setTimeout(async () => {
50
+ requestStartTime = Date.now();
51
+ await this.fillUpBuffer(buffer, 'starvation');
52
+ const latency = Date.now() - requestStartTime;
53
+ this.metrics.rngBufferLatencyMs.observe({
54
+ rng_range: rangeKey,
55
+ engine_type: this.getEngineType(),
56
+ }, latency);
57
+ }, exports.FILL_UP_BUFFER_DELAY);
29
58
  return undefined;
30
59
  }
31
60
  setTimeout(async () => {
32
- await this.fillUpBuffer(buffer);
61
+ requestStartTime = Date.now();
62
+ await this.fillUpBuffer(buffer, 'refill');
63
+ const latency = Date.now() - requestStartTime;
64
+ this.metrics.rngBufferLatencyMs.observe({
65
+ rng_range: rangeKey,
66
+ engine_type: this.getEngineType(),
67
+ }, latency);
33
68
  }, exports.FILL_UP_BUFFER_DELAY);
34
69
  return item;
35
70
  }
36
- async fillUpBuffer(buffer) {
37
- const values = await this.pullNumberByBuffer(buffer);
38
- if (values.length === 0 || buffer.items.length >= this.maxSize) {
39
- return;
71
+ async fillUpBuffer(buffer, reason = 'scheduled') {
72
+ const rangeKey = this.getRangeKey(buffer.range.min, buffer.range.max);
73
+ const refillStartTime = Date.now();
74
+ this.metrics.rngBufferRefillRequestsTotal.inc({
75
+ rng_range: rangeKey,
76
+ engine_type: this.getEngineType(),
77
+ reason,
78
+ });
79
+ try {
80
+ const values = await this.pullNumberByBuffer(buffer);
81
+ if (values.length === 0 || buffer.items.length >= this.maxSize) {
82
+ const duration = Date.now() - refillStartTime;
83
+ this.metrics.rngBufferRefillDurationMs.observe({
84
+ rng_range: rangeKey,
85
+ engine_type: this.getEngineType(),
86
+ }, duration);
87
+ return;
88
+ }
89
+ await this.storage.addItemsToBuffer(buffer, values);
90
+ this.metrics.rngBufferFillLevel.set({
91
+ rng_range: rangeKey,
92
+ engine_type: this.getEngineType(),
93
+ }, buffer.items.length);
94
+ this.metrics.rngBufferFillRatio.set({
95
+ rng_range: rangeKey,
96
+ engine_type: this.getEngineType(),
97
+ }, buffer.items.length / this.size);
98
+ const duration = Date.now() - refillStartTime;
99
+ this.metrics.rngBufferRefillDurationMs.observe({
100
+ rng_range: rangeKey,
101
+ engine_type: this.getEngineType(),
102
+ }, duration);
103
+ }
104
+ catch (error) {
105
+ const errorMessage = error instanceof Error ? error.message : String(error);
106
+ this.metrics.rngBufferRefillFailuresTotal.inc({
107
+ rng_range: rangeKey,
108
+ engine_type: this.getEngineType(),
109
+ reason,
110
+ error: errorMessage,
111
+ });
112
+ const duration = Date.now() - refillStartTime;
113
+ this.metrics.rngBufferRefillDurationMs.observe({
114
+ rng_range: rangeKey,
115
+ engine_type: this.getEngineType(),
116
+ }, duration);
117
+ throw error;
40
118
  }
41
- await this.storage.addItemsToBuffer(buffer, values);
42
119
  }
43
120
  async pullNumberByBuffer(buffer) {
44
121
  const count = this.size - buffer.items.length;
@@ -53,6 +130,10 @@ class RingBuffer {
53
130
  return values.result;
54
131
  }
55
132
  createBuffer(min, max) {
133
+ this.metrics.rngBufferCapacity.set({
134
+ rng_range: this.getRangeKey(min, max),
135
+ engine_type: this.getEngineType(),
136
+ }, this.size);
56
137
  return {
57
138
  items: [],
58
139
  range: { min, max },
@@ -1 +1 @@
1
- {"version":3,"file":"ring-buffer.js","sourceRoot":"","sources":["../../src/ring-buffer/ring-buffer.ts"],"names":[],"mappings":";;;AAMA,iDAA0D;AAE7C,QAAA,oBAAoB,GAAG,CAAC,CAAC;AAQtC,MAAa,UAAU;IAOrB,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAoB;QAC7D,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,0BAAW,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,GAAW,EACX,GAAW,EACX,KAAK,GAAG,CAAC;QAET,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9C,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACzC,UAAU,CAAC,KAAK,IAAI,EAAE;gBACpB,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YACrC,CAAC,EAAE,4BAAoB,CAAC,CAAC;YACzB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC,EAAE,4BAAoB,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAwB;QACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/D,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,MAAwB;QAExB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QAC9C,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC;YAC5D,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG;YACrB,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG;YACrB,KAAK;SACN,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,MAA2B,CAAC;IAC5C,CAAC;IAED,YAAY,CAAC,GAAW,EAAE,GAAW;QACnC,OAAO;YACL,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;SACpB,CAAC;IACJ,CAAC;CACF;AAxED,gCAwEC"}
1
+ {"version":3,"file":"ring-buffer.js","sourceRoot":"","sources":["../../src/ring-buffer/ring-buffer.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
- import { RingBufferStats, RingBufferValue, SingleRingBuffer } from "./interfaces";
1
+ import { RingBufferValue, SingleRingBuffer } from './interfaces';
2
2
  export declare class RingStorageMemory {
3
3
  private storage;
4
4
  constructor();
5
- getStats(): Promise<RingBufferStats>;
6
5
  getBufferName(min: number, max: number): string;
7
6
  saveBuffer(buffer: SingleRingBuffer): Promise<void>;
8
7
  getBuffer(name: string): Promise<SingleRingBuffer>;
@@ -1 +1 @@
1
- {"version":3,"file":"ring-storage-memory.d.ts","sourceRoot":"","sources":["../../src/ring-buffer/ring-storage-memory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EACf,gBAAgB,EACjB,MAAM,cAAc,CAAC;AAEtB,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAsC;;IAM/C,QAAQ,IAAI,OAAO,CAAC,eAAe,CAAC;IAY1C,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAIzC,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIlD,aAAa,CACjB,IAAI,EAAE,MAAM,EACZ,KAAK,SAAI,GACR,OAAO,CAAC,eAAe,EAAE,GAAG,SAAS,CAAC;IAenC,gBAAgB,CACpB,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,eAAe,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC;CAIjB"}
1
+ {"version":3,"file":"ring-storage-memory.d.ts","sourceRoot":"","sources":["../../src/ring-buffer/ring-storage-memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEjE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAsC;;IAMrD,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAIzC,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIlD,aAAa,CACjB,IAAI,EAAE,MAAM,EACZ,KAAK,SAAI,GACR,OAAO,CAAC,eAAe,EAAE,GAAG,SAAS,CAAC;IAenC,gBAAgB,CACpB,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,eAAe,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC;CAIjB"}
@@ -5,17 +5,6 @@ class RingStorageMemory {
5
5
  constructor() {
6
6
  this.storage = {};
7
7
  }
8
- async getStats() {
9
- const ranges = {};
10
- for (const key in this.storage) {
11
- ranges[key] = this.storage[key].items.length;
12
- }
13
- return {
14
- id: "in_memory",
15
- size: Object.keys(this.storage).length,
16
- ranges,
17
- };
18
- }
19
8
  getBufferName(min, max) {
20
9
  return `${min}-${max}`;
21
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ring-storage-memory.js","sourceRoot":"","sources":["../../src/ring-buffer/ring-storage-memory.ts"],"names":[],"mappings":";;;AAMA,MAAa,iBAAiB;IAG5B;QACE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,MAAM,GAA8B,EAAE,CAAC;QAC7C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;QAC/C,CAAC;QACD,OAAO;YACL,EAAE,EAAE,WAAW;YACf,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM;YACtC,MAAM;SACP,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,GAAW,EAAE,GAAW;QACpC,OAAO,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAwB;QACvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClE,MAAM,CAAC;IACX,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,IAAY,EACZ,KAAK,GAAG,CAAC;QAET,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;YAChC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,MAAwB,EACxB,KAAwB;QAExB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QAC5B,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;CACF;AAzDD,8CAyDC"}
1
+ {"version":3,"file":"ring-storage-memory.js","sourceRoot":"","sources":["../../src/ring-buffer/ring-storage-memory.ts"],"names":[],"mappings":";;;AAEA,MAAa,iBAAiB;IAG5B;QACE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,aAAa,CAAC,GAAW,EAAE,GAAW;QACpC,OAAO,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAwB;QACvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClE,MAAM,CAAC;IACX,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,IAAY,EACZ,KAAK,GAAG,CAAC;QAET,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;YAChC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,MAAwB,EACxB,KAAwB;QAExB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QAC5B,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;CACF;AA7CD,8CA6CC"}
@@ -1,4 +1,4 @@
1
- import { RingBufferStats, RingBufferValue, SingleRingBuffer } from "./interfaces";
1
+ import { RingBufferValue, SingleRingBuffer } from './interfaces';
2
2
  export declare enum StorageType {
3
3
  IN_MEMORY = "in_memory",
4
4
  REDIS = "redis"
@@ -7,7 +7,6 @@ export declare class RingStorage {
7
7
  private readonly storageType;
8
8
  private storage;
9
9
  constructor(storageType: StorageType);
10
- getStats(): Promise<RingBufferStats | undefined>;
11
10
  getFromBuffer(buffer: SingleRingBuffer, count?: number): Promise<RingBufferValue[] | undefined>;
12
11
  saveBuffer(buffer: SingleRingBuffer): Promise<void>;
13
12
  getBufferByRange(min: number, max: number): Promise<SingleRingBuffer | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"ring-storage.d.ts","sourceRoot":"","sources":["../../src/ring-buffer/ring-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EACf,gBAAgB,EACjB,MAAM,cAAc,CAAC;AAGtB,oBAAY,WAAW;IACrB,SAAS,cAAc;IACvB,KAAK,UAAU;CAChB;AAED,qBAAa,WAAW;IAEV,OAAO,CAAC,QAAQ,CAAC,WAAW;IADxC,OAAO,CAAC,OAAO,CAAoB;gBACN,WAAW,EAAE,WAAW;IAI/C,QAAQ,IAAI,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAOhD,aAAa,CACjB,MAAM,EAAE,gBAAgB,EACxB,KAAK,SAAI,GACR,OAAO,CAAC,eAAe,EAAE,GAAG,SAAS,CAAC;IAUnC,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnD,gBAAgB,CACpB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAOlC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAO9D,gBAAgB,CACpB,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,eAAe,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC;CAKjB"}
1
+ {"version":3,"file":"ring-storage.d.ts","sourceRoot":"","sources":["../../src/ring-buffer/ring-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGjE,oBAAY,WAAW;IACrB,SAAS,cAAc;IACvB,KAAK,UAAU;CAChB;AAED,qBAAa,WAAW;IAEV,OAAO,CAAC,QAAQ,CAAC,WAAW;IADxC,OAAO,CAAC,OAAO,CAAoB;gBACN,WAAW,EAAE,WAAW;IAI/C,aAAa,CACjB,MAAM,EAAE,gBAAgB,EACxB,KAAK,SAAI,GACR,OAAO,CAAC,eAAe,EAAE,GAAG,SAAS,CAAC;IAUnC,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnD,gBAAgB,CACpB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAOlC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAO9D,gBAAgB,CACpB,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,eAAe,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC;CAKjB"}
@@ -12,12 +12,6 @@ class RingStorage {
12
12
  this.storageType = storageType;
13
13
  this.storage = new ring_storage_memory_1.RingStorageMemory();
14
14
  }
15
- async getStats() {
16
- if (this.storageType === StorageType.IN_MEMORY) {
17
- return this.storage.getStats();
18
- }
19
- return undefined;
20
- }
21
15
  async getFromBuffer(buffer, count = 1) {
22
16
  if (this.storageType === StorageType.IN_MEMORY) {
23
17
  return this.storage.getFromBuffer(this.storage.getBufferName(buffer.range.min, buffer.range.max), count);
@@ -1 +1 @@
1
- {"version":3,"file":"ring-storage.js","sourceRoot":"","sources":["../../src/ring-buffer/ring-storage.ts"],"names":[],"mappings":";;;AAKA,+DAA0D;AAE1D,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,sCAAuB,CAAA;IACvB,8BAAe,CAAA;AACjB,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB;AAED,MAAa,WAAW;IAEtB,YAA6B,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;QACnD,IAAI,CAAC,OAAO,GAAG,IAAI,uCAAiB,EAAE,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACjC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,MAAwB,EACxB,KAAK,GAAG,CAAC;QAET,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAC/B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAC9D,KAAK,CACN,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAwB;QACvC,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,GAAW,EACX,GAAW;QAEX,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,MAAwB,EACxB,KAAwB;QAExB,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;CACF;AAzDD,kCAyDC"}
1
+ {"version":3,"file":"ring-storage.js","sourceRoot":"","sources":["../../src/ring-buffer/ring-storage.ts"],"names":[],"mappings":";;;AACA,+DAA0D;AAE1D,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,sCAAuB,CAAA;IACvB,8BAAe,CAAA;AACjB,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB;AAED,MAAa,WAAW;IAEtB,YAA6B,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;QACnD,IAAI,CAAC,OAAO,GAAG,IAAI,uCAAiB,EAAE,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,MAAwB,EACxB,KAAK,GAAG,CAAC;QAET,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAC/B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAC9D,KAAK,CACN,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAwB;QACvC,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,GAAW,EACX,GAAW;QAEX,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,MAAwB,EACxB,KAAwB;QAExB,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;CACF;AAlDD,kCAkDC"}
@@ -1,6 +1,5 @@
1
- import { RngClientConfig } from "./interfaces/client-interfaces";
2
- import { RngSingleResponse, RngBatchResponse } from "./http/http-client.types";
3
- import { RingBufferStats } from "./ring-buffer/interfaces";
1
+ import { RngClientConfig } from './interfaces/client-interfaces';
2
+ import { RngSingleResponse, RngBatchResponse } from './http/http-client.types';
4
3
  /**
5
4
  * RNG Client - High-level API for client-side random number generation
6
5
  *
@@ -23,7 +22,6 @@ export declare class RngClient {
23
22
  value: number;
24
23
  seed: number;
25
24
  }>;
26
- getRingBuffersStats(): Promise<RingBufferStats | undefined>;
27
25
  /**
28
26
  * Get a batch of random numbers
29
27
  * @param min Minimum value (inclusive)
@@ -1 +1 @@
1
- {"version":3,"file":"rng-client.d.ts","sourceRoot":"","sources":["../src/rng-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAKjB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D;;;;;;GAMG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;gBAE5B,MAAM,EAAE,eAAe;IASnC;;;;;;OAMG;IACG,eAAe,CACnB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAiBrC,mBAAmB,IAAI,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAIjE;;;;;;;OAOG;IACG,eAAe,CACnB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,EAAE,CAAC;IAcpB;;;;;;;OAOG;IACG,wBAAwB,CAC5B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAsB7C;;;;OAIG;IACG,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAQ/D;;;;;OAKG;IACG,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,gBAAgB,CAAC;IAQ5B;;;;;;OAMG;IACG,eAAe,CACnB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,iBAAiB,CAAC;IAQ7B;;;;OAIG;IACG,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAOhE"}
1
+ {"version":3,"file":"rng-client.d.ts","sourceRoot":"","sources":["../src/rng-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAKjB,MAAM,0BAA0B,CAAC;AAIlC;;;;;;GAMG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;gBAE5B,MAAM,EAAE,eAAe;IAanC;;;;;;OAMG;IACG,eAAe,CACnB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAiB3C;;;;;;;OAOG;IACG,eAAe,CACnB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,EAAE,CAAC;IAcpB;;;;;;;OAOG;IACG,wBAAwB,CAC5B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAsB7C;;;;OAIG;IACG,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAQ/D;;;;;OAKG;IACG,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,gBAAgB,CAAC;IAQ5B;;;;;;OAMG;IACG,eAAe,CACnB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,iBAAiB,CAAC;IAQ7B;;;;OAIG;IACG,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAOhE"}
@@ -4,6 +4,7 @@ exports.RngClient = void 0;
4
4
  const rng_client_core_1 = require("./core/rng-client-core");
5
5
  const ring_storage_1 = require("./ring-buffer/ring-storage");
6
6
  const ring_buffer_1 = require("./ring-buffer/ring-buffer");
7
+ const default_metrics_handlers_1 = require("./metrics/default-metrics-handlers");
7
8
  /**
8
9
  * RNG Client - High-level API for client-side random number generation
9
10
  *
@@ -18,6 +19,10 @@ class RngClient {
18
19
  size: config.poolingSize || 2000,
19
20
  clientCore: this.clientCore,
20
21
  storageType: config.storageType || ring_storage_1.StorageType.IN_MEMORY,
22
+ metrics: {
23
+ ...default_metrics_handlers_1.defaultMetricsHandlers,
24
+ ...config.metrics?.handlers,
25
+ },
21
26
  });
22
27
  }
23
28
  /**
@@ -44,9 +49,6 @@ class RngClient {
44
49
  const response = await this.clientCore.getSingleNumber(data);
45
50
  return { value: response.result, seed: response.seed };
46
51
  }
47
- async getRingBuffersStats() {
48
- return this.ringBuffer.getStats();
49
- }
50
52
  /**
51
53
  * Get a batch of random numbers
52
54
  * @param min Minimum value (inclusive)
@@ -1 +1 @@
1
- {"version":3,"file":"rng-client.js","sourceRoot":"","sources":["../src/rng-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rng-client.js","sourceRoot":"","sources":["../src/rng-client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omnitronix/rng-client-core",
3
- "version": "1.0.9",
3
+ "version": "1.1.1",
4
4
  "description": "Simple HTTP client for random number generation",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -43,7 +43,8 @@
43
43
  },
44
44
  "files": [
45
45
  "dist/**/*",
46
- "README.md"
46
+ "README.md",
47
+ "src"
47
48
  ],
48
49
  "publishConfig": {
49
50
  "registry": "https://registry.npmjs.org/"