@chainlink/external-adapter-framework 0.17.0 → 0.19.0
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/adapter/basic.js +10 -31
- package/adapter/basic.js.map +1 -1
- package/adapter/price.d.ts +2 -2
- package/adapter/price.js.map +1 -1
- package/adapter/types.d.ts +7 -1
- package/background-executor.js +4 -26
- package/background-executor.js.map +1 -1
- package/cache/local.d.ts +1 -17
- package/cache/local.js +2 -54
- package/cache/local.js.map +1 -1
- package/cache/metrics.d.ts +1 -7
- package/cache/metrics.js +10 -102
- package/cache/metrics.js.map +1 -1
- package/cache/redis.d.ts +3 -4
- package/cache/redis.js +13 -37
- package/cache/redis.js.map +1 -1
- package/config/index.d.ts +6 -0
- package/config/index.js +6 -0
- package/config/index.js.map +1 -1
- package/index.d.ts +0 -5
- package/index.js +2 -33
- package/index.js.map +1 -1
- package/metrics/index.d.ts +43 -5
- package/metrics/index.js +194 -31
- package/metrics/index.js.map +1 -1
- package/package.json +3 -3
- package/rate-limiting/metrics.d.ts +0 -2
- package/rate-limiting/metrics.js +1 -30
- package/rate-limiting/metrics.js.map +1 -1
- package/transports/abstract/subscription.js +4 -26
- package/transports/abstract/subscription.js.map +1 -1
- package/transports/http.js +7 -33
- package/transports/http.js.map +1 -1
- package/transports/metrics.d.ts +0 -9
- package/transports/metrics.js +8 -74
- package/transports/metrics.js.map +1 -1
- package/transports/websocket.js +7 -35
- package/transports/websocket.js.map +1 -1
- package/util/index.d.ts +16 -0
- package/util/index.js +55 -1
- package/util/index.js.map +1 -1
- package/util/metrics.d.ts +7 -8
- package/util/metrics.js +22 -25
- package/util/metrics.js.map +1 -1
- package/util/requester.js +11 -32
- package/util/requester.js.map +1 -1
- package/util/subscription-set/expiring-sorted-set.d.ts +20 -3
- package/util/subscription-set/expiring-sorted-set.js +63 -10
- package/util/subscription-set/expiring-sorted-set.js.map +1 -1
- package/util/subscription-set/redis-sorted-set.d.ts +1 -0
- package/util/subscription-set/redis-sorted-set.js +3 -0
- package/util/subscription-set/redis-sorted-set.js.map +1 -1
- package/util/subscription-set/subscription-set.d.ts +3 -1
- package/util/subscription-set/subscription-set.js +2 -1
- package/util/subscription-set/subscription-set.js.map +1 -1
package/rate-limiting/metrics.js
CHANGED
|
@@ -1,30 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
27
|
-
const client = __importStar(require("prom-client"));
|
|
3
|
+
exports.retrieveCost = void 0;
|
|
28
4
|
// Retrieve cost field from response if exists
|
|
29
5
|
// If not return default cost of 1
|
|
30
6
|
const retrieveCost = (data) => {
|
|
@@ -37,9 +13,4 @@ const retrieveCost = (data) => {
|
|
|
37
13
|
}
|
|
38
14
|
};
|
|
39
15
|
exports.retrieveCost = retrieveCost;
|
|
40
|
-
exports.rateLimitCreditsSpentTotal = new client.Counter({
|
|
41
|
-
name: 'rate_limit_credits_spent_total',
|
|
42
|
-
help: 'The number of data provider credits the adapter is consuming',
|
|
43
|
-
labelNames: ['participant_id', 'feed_id'],
|
|
44
|
-
});
|
|
45
16
|
//# sourceMappingURL=metrics.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/rate-limiting/metrics.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/rate-limiting/metrics.ts"],"names":[],"mappings":";;;AAAA,8CAA8C;AAC9C,kCAAkC;AAC3B,MAAM,YAAY,GAAG,CAAuB,IAA0B,EAAU,EAAE;IACvF,MAAM,IAAI,GAAI,IAAgC,EAAE,CAAC,MAAM,CAAC,CAAA;IACxD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QACxD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;KACpB;SAAM;QACL,OAAO,CAAC,CAAA;KACT;AACH,CAAC,CAAA;AAPY,QAAA,YAAY,gBAOxB"}
|
|
@@ -1,31 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
3
|
exports.SubscriptionTransport = void 0;
|
|
27
4
|
const util_1 = require("../../util");
|
|
28
|
-
const
|
|
5
|
+
const metrics_1 = require("../../metrics");
|
|
29
6
|
const logger = (0, util_1.makeLogger)('SubscriptionTransport');
|
|
30
7
|
/**
|
|
31
8
|
* Abstract Transport that will take incoming requests and add them to a subscription set as part
|
|
@@ -42,7 +19,7 @@ class SubscriptionTransport {
|
|
|
42
19
|
async registerRequest(req, _) {
|
|
43
20
|
logger.debug(`Adding entry to subscription set (ttl ${this.subscriptionTtl}): [${req.requestContext.cacheKey}] = ${req.requestContext.data}`);
|
|
44
21
|
// This might need coalescing to avoid too frequent ttl updates
|
|
45
|
-
await this.subscriptionSet.add(req.requestContext.data, this.subscriptionTtl);
|
|
22
|
+
await this.subscriptionSet.add(req.requestContext.data, this.subscriptionTtl, req.requestContext.cacheKey);
|
|
46
23
|
}
|
|
47
24
|
async backgroundExecute(context) {
|
|
48
25
|
logger.debug('Starting background execute');
|
|
@@ -50,7 +27,8 @@ class SubscriptionTransport {
|
|
|
50
27
|
// Keep track of active subscriptions for background execute
|
|
51
28
|
// Note: for those coming from reasonable OOP languages, don't fret; this is JS:
|
|
52
29
|
// this.constructor.name will resolve to the instance name, not the class one (i.e., will use the implementing class' name)
|
|
53
|
-
|
|
30
|
+
metrics_1.metrics
|
|
31
|
+
.get('bgExecuteSubscriptionSetCount')
|
|
54
32
|
.labels({ endpoint: context.endpointName, transport_type: this.constructor.name })
|
|
55
33
|
.set(entries.length);
|
|
56
34
|
await this.backgroundHandler(context, entries);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../../../src/transports/abstract/subscription.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../../../src/transports/abstract/subscription.ts"],"names":[],"mappings":";;;AAGA,qCAAwD;AAGxD,2CAAuC;AAEvC,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,uBAAuB,CAAC,CAAA;AAElD;;;;;GAKG;AACH,MAAsB,qBAAqB;IAQzC,KAAK,CAAC,UAAU,CACd,YAAsC,EACtC,MAA0C,EAC1C,YAAoB;QAEpB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,aAAa,CAAA;QAC/C,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;QACjF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAA,CAAC,oCAAoC;IACvG,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,GAAiC,EACjC,CAAqC;QAErC,MAAM,CAAC,KAAK,CACV,yCAAyC,IAAI,CAAC,eAAe,OAAO,GAAG,CAAC,cAAc,CAAC,QAAQ,OAAO,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAChI,CAAA;QAED,+DAA+D;QAC/D,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAC5B,GAAG,CAAC,cAAc,CAAC,IAAI,EACvB,IAAI,CAAC,eAAe,EACpB,GAAG,CAAC,cAAc,CAAC,QAAQ,CAC5B,CAAA;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAA2B;QACjD,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAA;QAEnD,4DAA4D;QAC5D,gFAAgF;QAChF,2HAA2H;QAC3H,iBAAO;aACJ,GAAG,CAAC,+BAA+B,CAAC;aACpC,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;aACjF,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAEtB,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAChD,CAAC;CAmBF;AAlED,sDAkEC"}
|
package/transports/http.js
CHANGED
|
@@ -1,35 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
3
|
exports.HttpTransport = void 0;
|
|
27
4
|
const axios_1 = require("axios");
|
|
28
|
-
const cacheMetrics = __importStar(require("../cache/metrics"));
|
|
29
|
-
const rateLimitMetrics = __importStar(require("../rate-limiting/metrics"));
|
|
30
5
|
const util_1 = require("../util");
|
|
31
6
|
const error_1 = require("../validation/error");
|
|
32
7
|
const subscription_1 = require("./abstract/subscription");
|
|
8
|
+
const metrics_1 = require("../metrics");
|
|
33
9
|
const WARMUP_BATCH_REQUEST_ID = '9002';
|
|
34
10
|
const logger = (0, util_1.makeLogger)('HttpTransport');
|
|
35
11
|
/**
|
|
@@ -62,7 +38,7 @@ class HttpTransport extends subscription_1.SubscriptionTransport {
|
|
|
62
38
|
logger.debug(`No entries in subscription set, sleeping for ${context.adapterConfig.BACKGROUND_EXECUTE_MS_HTTP}ms...`);
|
|
63
39
|
if (this.WARMER_ACTIVE) {
|
|
64
40
|
// Decrement count when warmer changed from having entries to having none
|
|
65
|
-
|
|
41
|
+
metrics_1.metrics.get('cacheWarmerCount').labels({ isBatched: 'true' }).dec();
|
|
66
42
|
this.WARMER_ACTIVE = false;
|
|
67
43
|
}
|
|
68
44
|
await (0, util_1.sleep)(context.adapterConfig.BACKGROUND_EXECUTE_MS_HTTP);
|
|
@@ -70,7 +46,7 @@ class HttpTransport extends subscription_1.SubscriptionTransport {
|
|
|
70
46
|
}
|
|
71
47
|
else if (this.WARMER_ACTIVE === false) {
|
|
72
48
|
// Increment count when warmer changed from having no entries to having some
|
|
73
|
-
|
|
49
|
+
metrics_1.metrics.get('cacheWarmerCount').labels({ isBatched: 'true' }).inc();
|
|
74
50
|
this.WARMER_ACTIVE = true;
|
|
75
51
|
}
|
|
76
52
|
logger.trace(`Have ${entries.length} entries in batch, preparing requests...`);
|
|
@@ -128,12 +104,10 @@ class HttpTransport extends subscription_1.SubscriptionTransport {
|
|
|
128
104
|
return result;
|
|
129
105
|
});
|
|
130
106
|
// Record cost of data provider call
|
|
131
|
-
const cost =
|
|
132
|
-
|
|
133
|
-
.
|
|
134
|
-
feed_id: 'N/A',
|
|
135
|
-
participant_id: WARMUP_BATCH_REQUEST_ID,
|
|
136
|
-
})
|
|
107
|
+
const cost = (0, metrics_1.retrieveCost)(requesterResult.response.data);
|
|
108
|
+
metrics_1.metrics
|
|
109
|
+
.get('rateLimitCreditsSpentTotal')
|
|
110
|
+
.labels({ feed_id: 'N/A', participant_id: WARMUP_BATCH_REQUEST_ID })
|
|
137
111
|
.inc(cost);
|
|
138
112
|
return results;
|
|
139
113
|
}
|
package/transports/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/transports/http.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/transports/http.ts"],"names":[],"mappings":"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"}
|
package/transports/metrics.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import * as client from 'prom-client';
|
|
2
1
|
import { TransportGenerics } from '.';
|
|
3
2
|
import { EndpointContext } from '../adapter';
|
|
4
3
|
import { AdapterConfig } from '../config';
|
|
@@ -16,11 +15,3 @@ export declare const messageSubsLabels: <T extends TransportGenerics>(context: {
|
|
|
16
15
|
subscription_key: string;
|
|
17
16
|
};
|
|
18
17
|
export declare const recordWsMessageMetrics: <T extends TransportGenerics>(context: EndpointContext<T>, subscribes: T["Request"]["Params"][], unsubscribes: T["Request"]["Params"][]) => void;
|
|
19
|
-
export declare const wsConnectionActive: client.Gauge<"url">;
|
|
20
|
-
export declare const wsConnectionErrors: client.Counter<"message" | "url">;
|
|
21
|
-
export declare const wsSubscriptionActive: client.Gauge<"feed_id" | "subscription_key" | "connection_url">;
|
|
22
|
-
export declare const wsSubscriptionTotal: client.Counter<"feed_id" | "subscription_key" | "connection_url">;
|
|
23
|
-
export declare const wsMessageTotal: client.Counter<"direction" | "feed_id" | "subscription_key">;
|
|
24
|
-
export declare const bgExecuteSubscriptionSetCount: client.Gauge<"endpoint" | "transport_type">;
|
|
25
|
-
export declare const transportPollingFailureCount: client.Counter<"endpoint">;
|
|
26
|
-
export declare const transportPollingDurationSeconds: client.Gauge<"succeeded" | "endpoint">;
|
package/transports/metrics.js
CHANGED
|
@@ -1,31 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
27
|
-
const client = __importStar(require("prom-client"));
|
|
3
|
+
exports.recordWsMessageMetrics = exports.messageSubsLabels = exports.connectionErrorLabels = void 0;
|
|
28
4
|
const cache_1 = require("../cache");
|
|
5
|
+
const metrics_1 = require("../metrics");
|
|
29
6
|
// Websocket Metrics
|
|
30
7
|
const connectionErrorLabels = (message) => ({
|
|
31
8
|
// Key,
|
|
@@ -48,19 +25,17 @@ const recordWsMessageMetrics = (context, subscribes, unsubscribes) => {
|
|
|
48
25
|
const recordMetrics = (params, type) => {
|
|
49
26
|
const baseLabels = (0, exports.messageSubsLabels)(context, params);
|
|
50
27
|
// Record total number of ws messages sent
|
|
51
|
-
|
|
52
|
-
.
|
|
53
|
-
...baseLabels,
|
|
54
|
-
direction: 'sent',
|
|
55
|
-
})
|
|
28
|
+
metrics_1.metrics
|
|
29
|
+
.get('wsMessageTotal')
|
|
30
|
+
.labels({ ...baseLabels, direction: 'sent' })
|
|
56
31
|
.inc();
|
|
57
32
|
// Record total number of subscriptions made
|
|
58
33
|
if (type === 'sub') {
|
|
59
|
-
|
|
60
|
-
|
|
34
|
+
metrics_1.metrics.get('wsSubscriptionTotal').labels(baseLabels).inc();
|
|
35
|
+
metrics_1.metrics.get('wsSubscriptionActive').labels(baseLabels).inc();
|
|
61
36
|
}
|
|
62
37
|
else {
|
|
63
|
-
|
|
38
|
+
metrics_1.metrics.get('wsSubscriptionActive').labels(baseLabels).dec();
|
|
64
39
|
}
|
|
65
40
|
};
|
|
66
41
|
subscribes.forEach((params) => {
|
|
@@ -71,45 +46,4 @@ const recordWsMessageMetrics = (context, subscribes, unsubscribes) => {
|
|
|
71
46
|
});
|
|
72
47
|
};
|
|
73
48
|
exports.recordWsMessageMetrics = recordWsMessageMetrics;
|
|
74
|
-
exports.wsConnectionActive = new client.Gauge({
|
|
75
|
-
name: 'ws_connection_active',
|
|
76
|
-
help: 'The number of active connections',
|
|
77
|
-
labelNames: ['url'],
|
|
78
|
-
});
|
|
79
|
-
exports.wsConnectionErrors = new client.Counter({
|
|
80
|
-
name: 'ws_connection_errors',
|
|
81
|
-
help: 'The number of connection errors',
|
|
82
|
-
labelNames: ['url', 'message'],
|
|
83
|
-
});
|
|
84
|
-
exports.wsSubscriptionActive = new client.Gauge({
|
|
85
|
-
name: 'ws_subscription_active',
|
|
86
|
-
help: 'The number of currently active subscriptions',
|
|
87
|
-
labelNames: ['connection_url', 'feed_id', 'subscription_key'],
|
|
88
|
-
});
|
|
89
|
-
exports.wsSubscriptionTotal = new client.Counter({
|
|
90
|
-
name: 'ws_subscription_total',
|
|
91
|
-
help: 'The number of subscriptions opened in total',
|
|
92
|
-
labelNames: ['connection_url', 'feed_id', 'subscription_key'],
|
|
93
|
-
});
|
|
94
|
-
exports.wsMessageTotal = new client.Counter({
|
|
95
|
-
name: 'ws_message_total',
|
|
96
|
-
help: 'The number of messages sent in total',
|
|
97
|
-
labelNames: ['feed_id', 'subscription_key', 'direction'],
|
|
98
|
-
});
|
|
99
|
-
// V3 specific metrics
|
|
100
|
-
exports.bgExecuteSubscriptionSetCount = new client.Gauge({
|
|
101
|
-
name: 'bg_execute_subscription_set_count',
|
|
102
|
-
help: 'The number of active subscriptions in background execute',
|
|
103
|
-
labelNames: ['endpoint', 'transport_type'],
|
|
104
|
-
});
|
|
105
|
-
exports.transportPollingFailureCount = new client.Counter({
|
|
106
|
-
name: 'transport_polling_failure_count',
|
|
107
|
-
help: 'The number of times the polling mechanism ran out of attempts and failed to return a response',
|
|
108
|
-
labelNames: ['endpoint'],
|
|
109
|
-
});
|
|
110
|
-
exports.transportPollingDurationSeconds = new client.Gauge({
|
|
111
|
-
name: 'transport_polling_duration_seconds',
|
|
112
|
-
help: 'A histogram bucket of the distribution of transport polling idle time durations',
|
|
113
|
-
labelNames: ['endpoint', 'succeeded'],
|
|
114
|
-
});
|
|
115
49
|
//# sourceMappingURL=metrics.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/transports/metrics.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/transports/metrics.ts"],"names":[],"mappings":";;;AAEA,oCAA6D;AAE7D,wCAAoC;AAGpC,oBAAoB;AACb,MAAM,qBAAqB,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC;IACzD,OAAO;IACP,OAAO;CACR,CAAC,CAAA;AAHW,QAAA,qBAAqB,yBAGhC;AAIK,MAAM,iBAAiB,GAAG,CAC/B,OAIC,EACD,MAA8B,EAC9B,EAAE;IACF,MAAM,MAAM,GAAG,IAAA,uBAAe,EAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC/C,MAAM,QAAQ,GAAG,IAAA,yBAAiB,EAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAEnD,OAAO;QACL,OAAO,EAAE,MAAM;QACf,gBAAgB,EAAE,QAAQ;KAC3B,CAAA;AACH,CAAC,CAAA;AAfY,QAAA,iBAAiB,qBAe7B;AAED,6CAA6C;AAC7C,8CAA8C;AAC9C,2DAA2D;AACpD,MAAM,sBAAsB,GAAG,CACpC,OAA2B,EAC3B,UAAoC,EACpC,YAAsC,EAChC,EAAE;IACR,MAAM,aAAa,GAAG,CAAC,MAA8B,EAAE,IAAqB,EAAE,EAAE;QAC9E,MAAM,UAAU,GAAG,IAAA,yBAAiB,EAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAErD,0CAA0C;QAC1C,iBAAO;aACJ,GAAG,CAAC,gBAAgB,CAAC;aACrB,MAAM,CAAC,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;aAC5C,GAAG,EAAE,CAAA;QAER,4CAA4C;QAC5C,IAAI,IAAI,KAAK,KAAK,EAAE;YAClB,iBAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAA;YAC3D,iBAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAA;SAC7D;aAAM;YACL,iBAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAA;SAC7D;IACH,CAAC,CAAA;IAED,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC5B,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC9B,CAAC,CAAC,CAAA;IACF,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC9B,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AA7BY,QAAA,sBAAsB,0BA6BlC"}
|
package/transports/websocket.js
CHANGED
|
@@ -1,27 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
4
|
};
|
|
@@ -29,9 +6,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
6
|
exports.WebSocketTransport = exports.WebSocketClassProvider = exports.WebSocket = void 0;
|
|
30
7
|
const ws_1 = __importDefault(require("ws"));
|
|
31
8
|
exports.WebSocket = ws_1.default;
|
|
9
|
+
const metrics_1 = require("../metrics");
|
|
32
10
|
const util_1 = require("../util");
|
|
33
|
-
const transportMetrics = __importStar(require("./metrics"));
|
|
34
11
|
const streaming_1 = require("./abstract/streaming");
|
|
12
|
+
const metrics_2 = require("./metrics");
|
|
35
13
|
const logger = (0, util_1.makeLogger)('WebSocketTransport');
|
|
36
14
|
class WebSocketClassProvider {
|
|
37
15
|
static set(ctor) {
|
|
@@ -79,7 +57,7 @@ class WebSocketTransport extends streaming_1.StreamingTransport {
|
|
|
79
57
|
logger.debug('Successfully executed connection opened handler');
|
|
80
58
|
}
|
|
81
59
|
// Record active ws connections by incrementing count on open
|
|
82
|
-
|
|
60
|
+
metrics_1.metrics.get('wsConnectionActive').inc();
|
|
83
61
|
connectionReadyResolve(true);
|
|
84
62
|
},
|
|
85
63
|
// Called when any message is received by the open connection
|
|
@@ -106,26 +84,20 @@ class WebSocketTransport extends streaming_1.StreamingTransport {
|
|
|
106
84
|
// Do this after writing so we get the values to the cache ASAP
|
|
107
85
|
// We're not calculating feedId or subscription because this is only a single message,
|
|
108
86
|
// and it could in theory contain more than one value to set to the cache
|
|
109
|
-
|
|
110
|
-
.labels({
|
|
111
|
-
direction: 'received',
|
|
112
|
-
})
|
|
113
|
-
.inc();
|
|
87
|
+
metrics_1.metrics.get('wsMessageTotal').labels({ direction: 'received' }).inc();
|
|
114
88
|
},
|
|
115
89
|
// Called when an error is thrown by the connection
|
|
116
90
|
error: async (event) => {
|
|
117
91
|
logger.debug(`Error occurred in web socket connection. Error: ${event.error} ; Message: ${event.message}`);
|
|
118
92
|
// Record connection error count
|
|
119
|
-
|
|
120
|
-
.labels(transportMetrics.connectionErrorLabels(event.message))
|
|
121
|
-
.inc();
|
|
93
|
+
metrics_1.metrics.get('wsConnectionErrors').labels((0, metrics_2.connectionErrorLabels)(event.message)).inc();
|
|
122
94
|
},
|
|
123
95
|
// Called when the WS connection closes for any reason
|
|
124
96
|
close: (event) => {
|
|
125
97
|
logger.debug(`Closed websocket connection. Code: ${event.code} ; reason: ${event.reason?.toString()}`);
|
|
126
98
|
// Record active ws connections by decrementing count on close
|
|
127
99
|
// Using URL in label since connection_key is removed from v3
|
|
128
|
-
|
|
100
|
+
metrics_1.metrics.get('wsConnectionActive').dec();
|
|
129
101
|
},
|
|
130
102
|
};
|
|
131
103
|
}
|
|
@@ -200,7 +172,7 @@ class WebSocketTransport extends streaming_1.StreamingTransport {
|
|
|
200
172
|
await this.sendMessages(context, subscribeMessage ? subscriptions.new.map(subscribeMessage) : subscriptions.new, unsubscribeMessage ? subscriptions.stale.map(unsubscribeMessage) : subscriptions.stale);
|
|
201
173
|
}
|
|
202
174
|
// Record WS message and subscription metrics
|
|
203
|
-
|
|
175
|
+
(0, metrics_2.recordWsMessageMetrics)(context, subscriptions.new, subscriptions.stale);
|
|
204
176
|
// The background execute loop no longer sleeps between executions, so we have to do it here
|
|
205
177
|
logger.trace(`Websocket handler complete, sleeping for ${context.adapterConfig.BACKGROUND_EXECUTE_MS_WS}ms...`);
|
|
206
178
|
await (0, util_1.sleep)(context.adapterConfig.BACKGROUND_EXECUTE_MS_WS);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/transports/websocket.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/transports/websocket.ts"],"names":[],"mappings":"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"}
|
package/util/index.d.ts
CHANGED
|
@@ -11,3 +11,19 @@ export declare const isObject: (o: unknown) => boolean;
|
|
|
11
11
|
export declare const isArray: (o: unknown) => boolean;
|
|
12
12
|
export declare const isEmpty: (o: unknown) => boolean;
|
|
13
13
|
export type PromiseOrValue<T> = Promise<T> | T;
|
|
14
|
+
export declare class LinkedListNode<T = unknown> {
|
|
15
|
+
data: T;
|
|
16
|
+
next: LinkedListNode | null;
|
|
17
|
+
prev: LinkedListNode | null;
|
|
18
|
+
key: string;
|
|
19
|
+
constructor(key: string, data: T);
|
|
20
|
+
}
|
|
21
|
+
export declare class DoubleLinkedList {
|
|
22
|
+
head: LinkedListNode | null;
|
|
23
|
+
tail: LinkedListNode | null;
|
|
24
|
+
size: number;
|
|
25
|
+
constructor();
|
|
26
|
+
insertAtTail(node: LinkedListNode): LinkedListNode<unknown>;
|
|
27
|
+
remove(node: LinkedListNode | null): LinkedListNode | undefined;
|
|
28
|
+
removeHead(): LinkedListNode | undefined;
|
|
29
|
+
}
|
package/util/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.isEmpty = exports.isArray = exports.isObject = exports.sleep = void 0;
|
|
17
|
+
exports.DoubleLinkedList = exports.LinkedListNode = exports.isEmpty = exports.isArray = exports.isObject = exports.sleep = void 0;
|
|
18
18
|
__exportStar(require("./types"), exports);
|
|
19
19
|
__exportStar(require("./logger"), exports);
|
|
20
20
|
__exportStar(require("./subscription-set/subscription-set"), exports);
|
|
@@ -35,4 +35,58 @@ const isArray = (o) => o !== null && typeof o === 'object' && Array.isArray(o);
|
|
|
35
35
|
exports.isArray = isArray;
|
|
36
36
|
const isEmpty = (o) => o === undefined || o === null || o === '';
|
|
37
37
|
exports.isEmpty = isEmpty;
|
|
38
|
+
class LinkedListNode {
|
|
39
|
+
constructor(key, data) {
|
|
40
|
+
this.data = data;
|
|
41
|
+
this.next = null;
|
|
42
|
+
this.prev = null;
|
|
43
|
+
this.key = key;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.LinkedListNode = LinkedListNode;
|
|
47
|
+
class DoubleLinkedList {
|
|
48
|
+
constructor() {
|
|
49
|
+
this.head = null;
|
|
50
|
+
this.tail = null;
|
|
51
|
+
this.size = 0;
|
|
52
|
+
}
|
|
53
|
+
insertAtTail(node) {
|
|
54
|
+
if (!this.tail) {
|
|
55
|
+
this.tail = node;
|
|
56
|
+
this.head = node;
|
|
57
|
+
node.next = null;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
this.tail.next = node;
|
|
61
|
+
node.prev = this.tail;
|
|
62
|
+
this.tail = node;
|
|
63
|
+
node.next = null;
|
|
64
|
+
}
|
|
65
|
+
this.size++;
|
|
66
|
+
return node;
|
|
67
|
+
}
|
|
68
|
+
remove(node) {
|
|
69
|
+
if (!node) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (node.prev !== null) {
|
|
73
|
+
node.prev.next = node.next;
|
|
74
|
+
}
|
|
75
|
+
if (node.next !== null) {
|
|
76
|
+
node.next.prev = node.prev;
|
|
77
|
+
}
|
|
78
|
+
if (node === this.head) {
|
|
79
|
+
this.head = this.head.next;
|
|
80
|
+
}
|
|
81
|
+
if (node === this.tail) {
|
|
82
|
+
this.tail = this.tail.prev;
|
|
83
|
+
}
|
|
84
|
+
this.size--;
|
|
85
|
+
return node;
|
|
86
|
+
}
|
|
87
|
+
removeHead() {
|
|
88
|
+
return this.remove(this.head);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
exports.DoubleLinkedList = DoubleLinkedList;
|
|
38
92
|
//# sourceMappingURL=index.js.map
|
package/util/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,2CAAwB;AACxB,sEAAmD;AAEnD;;;;GAIG;AACI,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE;IACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAJY,QAAA,KAAK,SAIjB;AAEM,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAW,EAAE,CAC9C,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAA;AADtD,QAAA,QAAQ,YAC8C;AAE5D,MAAM,OAAO,GAAG,CAAC,CAAU,EAAW,EAAE,CAC7C,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAD5C,QAAA,OAAO,WACqC;AAElD,MAAM,OAAO,GAAG,CAAC,CAAU,EAAW,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAA;AAA5E,QAAA,OAAO,WAAqE"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"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"}
|
package/util/metrics.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import * as client from 'prom-client';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export declare const requesterQueueOverflow: client.Counter<string>;
|
|
2
|
+
import { Metrics } from '../metrics';
|
|
3
|
+
export declare const requestMetrics: Metrics<{
|
|
4
|
+
dataProviderRequests: client.Counter<"method" | "provider_status_code">;
|
|
5
|
+
dataProviderRequestDurationSeconds: client.Histogram<string>;
|
|
6
|
+
requesterQueueSize: client.Gauge<string>;
|
|
7
|
+
requesterQueueOverflow: client.Counter<string>;
|
|
8
|
+
}>;
|