@substrate/api-sidecar 19.0.2 → 19.2.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/README.md +41 -15
- package/build/package.json +11 -10
- package/build/src/SidecarConfig.js +9 -1
- package/build/src/SidecarConfig.js.map +1 -1
- package/build/src/Specs.d.ts +1 -0
- package/build/src/Specs.js +34 -1
- package/build/src/Specs.js.map +1 -1
- package/build/src/chains-config/defaultControllers.js +2 -1
- package/build/src/chains-config/defaultControllers.js.map +1 -1
- package/build/src/chains-config/kusamaControllers.js +2 -1
- package/build/src/chains-config/kusamaControllers.js.map +1 -1
- package/build/src/chains-config/polkadotControllers.js +2 -1
- package/build/src/chains-config/polkadotControllers.js.map +1 -1
- package/build/src/controllers/AbstractController.js.map +1 -1
- package/build/src/controllers/blocks/BlocksController.d.ts +2 -0
- package/build/src/controllers/blocks/BlocksController.js +87 -8
- package/build/src/controllers/blocks/BlocksController.js.map +1 -1
- package/build/src/controllers/blocks/BlocksExtrinsicsController.d.ts +1 -0
- package/build/src/controllers/blocks/BlocksExtrinsicsController.js +13 -2
- package/build/src/controllers/blocks/BlocksExtrinsicsController.js.map +1 -1
- package/build/src/controllers/blocks/BlocksRawExtrinsicsController.js +12 -3
- package/build/src/controllers/blocks/BlocksRawExtrinsicsController.js.map +1 -1
- package/build/src/controllers/index.d.ts +2 -1
- package/build/src/controllers/index.js +2 -1
- package/build/src/controllers/index.js.map +1 -1
- package/build/src/controllers/pallets/PalletsOnGoingReferendaController.d.ts +14 -0
- package/build/src/controllers/pallets/PalletsOnGoingReferendaController.js +43 -0
- package/build/src/controllers/pallets/PalletsOnGoingReferendaController.js.map +1 -0
- package/build/src/controllers/pallets/index.d.ts +1 -0
- package/build/src/controllers/pallets/index.js +4 -2
- package/build/src/controllers/pallets/index.js.map +1 -1
- package/build/src/logging/Log.js +11 -0
- package/build/src/logging/Log.js.map +1 -1
- package/build/src/main.js +14 -11
- package/build/src/main.js.map +1 -1
- package/build/src/metrics/Metrics.d.ts +31 -0
- package/build/src/metrics/Metrics.js +175 -0
- package/build/src/metrics/Metrics.js.map +1 -0
- package/build/src/metrics/config.d.ts +2 -0
- package/build/src/metrics/config.js +71 -0
- package/build/src/metrics/config.js.map +1 -0
- package/build/src/metrics/index.d.ts +2 -0
- package/build/src/metrics/index.js +33 -0
- package/build/src/metrics/index.js.map +1 -0
- package/build/src/middleware/error/httpErrorMiddleware.js +0 -6
- package/build/src/middleware/error/httpErrorMiddleware.js.map +1 -1
- package/build/src/parseArgs.js +0 -9
- package/build/src/parseArgs.js.map +1 -1
- package/build/src/services/accounts/AccountsAssetsService.js +1 -2
- package/build/src/services/accounts/AccountsAssetsService.js.map +1 -1
- package/build/src/services/accounts/AccountsPoolAssetsService.js +1 -2
- package/build/src/services/accounts/AccountsPoolAssetsService.js.map +1 -1
- package/build/src/services/accounts/AccountsStakingPayoutsService.js +4 -2
- package/build/src/services/accounts/AccountsStakingPayoutsService.js.map +1 -1
- package/build/src/services/blocks/BlocksService.d.ts +1 -3
- package/build/src/services/blocks/BlocksService.js +16 -26
- package/build/src/services/blocks/BlocksService.js.map +1 -1
- package/build/src/services/blocks/BlocksService.spec.js +6 -67
- package/build/src/services/blocks/BlocksService.spec.js.map +1 -1
- package/build/src/services/pallets/PalletsOnGoingReferendaService.d.ts +12 -0
- package/build/src/services/pallets/PalletsOnGoingReferendaService.js +53 -0
- package/build/src/services/pallets/PalletsOnGoingReferendaService.js.map +1 -0
- package/build/src/services/pallets/PalletsOnGoingReferendaService.spec.d.ts +1 -0
- package/build/src/services/pallets/PalletsOnGoingReferendaService.spec.js +77 -0
- package/build/src/services/pallets/PalletsOnGoingReferendaService.spec.js.map +1 -0
- package/build/src/services/pallets/PalletsStakingProgressService.js +3 -3
- package/build/src/services/pallets/PalletsStakingProgressService.js.map +1 -1
- package/build/src/services/pallets/index.d.ts +1 -0
- package/build/src/services/pallets/index.js +2 -1
- package/build/src/services/pallets/index.js.map +1 -1
- package/build/src/types/metrics/index.d.ts +13 -0
- package/build/src/types/metrics/index.js +3 -0
- package/build/src/types/metrics/index.js.map +1 -0
- package/build/src/types/requests.d.ts +17 -0
- package/build/src/types/responses/PalletOnGoingReferenda.d.ts +14 -0
- package/build/src/types/responses/PalletOnGoingReferenda.js +18 -0
- package/build/src/types/responses/PalletOnGoingReferenda.js.map +1 -0
- package/build/src/types/responses/index.d.ts +1 -0
- package/build/src/types/responses/index.js +2 -1
- package/build/src/types/responses/index.js.map +1 -1
- package/build/src/types/sidecar-config/CONFIG.d.ts +7 -1
- package/build/src/types/sidecar-config/CONFIG.js +6 -0
- package/build/src/types/sidecar-config/CONFIG.js.map +1 -1
- package/build/src/types/sidecar-config/MODULES.d.ts +2 -1
- package/build/src/types/sidecar-config/MODULES.js +1 -0
- package/build/src/types/sidecar-config/MODULES.js.map +1 -1
- package/build/src/types/sidecar-config/SidecarConfig.d.ts +9 -0
- package/package.json +11 -10
- package/build/src/util/metrics.d.ts +0 -21
- package/build/src/util/metrics.js +0 -49
- package/build/src/util/metrics.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlocksExtrinsicsController.js","sourceRoot":"","sources":["../../../../src/controllers/blocks/BlocksExtrinsicsController.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;;;
|
|
1
|
+
{"version":3,"file":"BlocksExtrinsicsController.js","sourceRoot":"","sources":["../../../../src/controllers/blocks/BlocksExtrinsicsController.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,15 +22,24 @@ const services_1 = require("../../services");
|
|
|
22
22
|
const AbstractController_1 = __importDefault(require("../AbstractController"));
|
|
23
23
|
class BlocksRawExtrinsicsController extends AbstractController_1.default {
|
|
24
24
|
constructor(api, options) {
|
|
25
|
-
super(api, '/blocks/:blockId/extrinsics-raw', new services_1.BlocksService(api, options.minCalcFeeRuntime, options.
|
|
25
|
+
super(api, '/blocks/:blockId/extrinsics-raw', new services_1.BlocksService(api, options.minCalcFeeRuntime, options.hasQueryFeeApi));
|
|
26
26
|
/**
|
|
27
27
|
*
|
|
28
28
|
* @param _req Express Request
|
|
29
29
|
* @param res Express Response
|
|
30
30
|
*/
|
|
31
|
-
this.getBlockRawExtrinsics = async ({ params: { blockId } }, res) => {
|
|
31
|
+
this.getBlockRawExtrinsics = async ({ params: { blockId }, method, route }, res) => {
|
|
32
32
|
const hash = await this.getHashForBlock(blockId);
|
|
33
|
-
|
|
33
|
+
const rawBlock = await this.service.fetchBlockRaw(hash);
|
|
34
|
+
BlocksRawExtrinsicsController.sanitizedSend(res, rawBlock);
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
36
|
+
const path = route.path;
|
|
37
|
+
if (res.locals.metrics) {
|
|
38
|
+
const extrinsics_per_block_metrics = res.locals.metrics.registry['sas_extrinsics_per_block'];
|
|
39
|
+
extrinsics_per_block_metrics
|
|
40
|
+
.labels({ method: method, route: path, status_code: res.statusCode })
|
|
41
|
+
.observe(rawBlock.extrinsics.length);
|
|
42
|
+
}
|
|
34
43
|
};
|
|
35
44
|
this.initRoutes();
|
|
36
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlocksRawExtrinsicsController.js","sourceRoot":"","sources":["../../../../src/controllers/blocks/BlocksRawExtrinsicsController.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;;;AAKxE,6CAA+C;AAG/C,+EAAuD;AAEvD,MAAqB,6BAA8B,SAAQ,4BAAiC;IAC3F,YAAY,GAAe,EAAE,OAA0B;QACtD,KAAK,CACJ,GAAG,EACH,iCAAiC,EACjC,IAAI,wBAAa,CAAC,GAAG,EAAE,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"BlocksRawExtrinsicsController.js","sourceRoot":"","sources":["../../../../src/controllers/blocks/BlocksRawExtrinsicsController.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;;;AAKxE,6CAA+C;AAG/C,+EAAuD;AAEvD,MAAqB,6BAA8B,SAAQ,4BAAiC;IAC3F,YAAY,GAAe,EAAE,OAA0B;QACtD,KAAK,CACJ,GAAG,EACH,iCAAiC,EACjC,IAAI,wBAAa,CAAC,GAAG,EAAE,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,cAAc,CAAC,CACzE,CAAC;QAQH;;;;WAIG;QACK,0BAAqB,GAA6C,KAAK,EAC9E,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EACtC,GAAG,EACa,EAAE;YAClB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACxD,6BAA6B,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAE3D,sEAAsE;YACtE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAc,CAAC;YAElC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE;gBACvB,MAAM,4BAA4B,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAqB,CAAC;gBACjH,4BAA4B;qBAC1B,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;qBACpE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;aACtC;QACF,CAAC,CAAC;QA7BD,IAAI,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC;IAES,UAAU;QACnB,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;CAyBD;AArCD,gDAqCC"}
|
|
@@ -2,7 +2,7 @@ import { AccountsAssets, AccountsBalanceInfo, AccountsConvert, AccountsPoolAsset
|
|
|
2
2
|
import { Blocks, BlocksExtrinsics, BlocksRawExtrinsics, BlocksTrace } from './blocks';
|
|
3
3
|
import { ContractsInk } from './contracts';
|
|
4
4
|
import { NodeNetwork, NodeTransactionPool, NodeVersion } from './node';
|
|
5
|
-
import { PalletsAssetConversion, PalletsAssets, PalletsConsts, PalletsDispatchables, PalletsErrors, PalletsEvents, PalletsForeignAssets, PalletsNominationPools, PalletsPoolAssets, PalletsStakingProgress, PalletsStakingValidators, PalletsStorage } from './pallets';
|
|
5
|
+
import { PalletsAssetConversion, PalletsAssets, PalletsConsts, PalletsDispatchables, PalletsErrors, PalletsEvents, PalletsForeignAssets, PalletsNominationPools, PalletsOnGoingReferenda, PalletsPoolAssets, PalletsStakingProgress, PalletsStakingValidators, PalletsStorage } from './pallets';
|
|
6
6
|
import { Paras } from './paras';
|
|
7
7
|
import { RuntimeCode, RuntimeMetadata, RuntimeSpec } from './runtime';
|
|
8
8
|
import { TransactionDryRun, TransactionFeeEstimate, TransactionMaterial, TransactionSubmit } from './transaction';
|
|
@@ -32,6 +32,7 @@ export declare const controllers: {
|
|
|
32
32
|
PalletsEvents: typeof PalletsEvents;
|
|
33
33
|
PalletsForeignAssets: typeof PalletsForeignAssets;
|
|
34
34
|
PalletsNominationPools: typeof PalletsNominationPools;
|
|
35
|
+
PalletsOnGoingReferenda: typeof PalletsOnGoingReferenda;
|
|
35
36
|
PalletsPoolAssets: typeof PalletsPoolAssets;
|
|
36
37
|
PalletsStakingProgress: typeof PalletsStakingProgress;
|
|
37
38
|
PalletsStakingValidators: typeof PalletsStakingValidators;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2017-
|
|
2
|
+
// Copyright 2017-2024 Parity Technologies (UK) Ltd.
|
|
3
3
|
// This file is part of Substrate API Sidecar.
|
|
4
4
|
//
|
|
5
5
|
// Substrate API Sidecar is free software: you can redistribute it and/or modify
|
|
@@ -50,6 +50,7 @@ exports.controllers = {
|
|
|
50
50
|
PalletsEvents: pallets_1.PalletsEvents,
|
|
51
51
|
PalletsForeignAssets: pallets_1.PalletsForeignAssets,
|
|
52
52
|
PalletsNominationPools: pallets_1.PalletsNominationPools,
|
|
53
|
+
PalletsOnGoingReferenda: pallets_1.PalletsOnGoingReferenda,
|
|
53
54
|
PalletsPoolAssets: pallets_1.PalletsPoolAssets,
|
|
54
55
|
PalletsStakingProgress: pallets_1.PalletsStakingProgress,
|
|
55
56
|
PalletsStakingValidators: pallets_1.PalletsStakingValidators,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/controllers/index.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;AAExE,yCAUoB;AACpB,qCAAsF;AACtF,2CAA2C;AAC3C,iCAAuE;AACvE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/controllers/index.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;AAExE,yCAUoB;AACpB,qCAAsF;AACtF,2CAA2C;AAC3C,iCAAuE;AACvE,uCAcmB;AACnB,mCAAgC;AAChC,uCAAsE;AACtE,+CAAkH;AAElH;;GAEG;AACU,QAAA,WAAW,GAAG;IAC1B,MAAM,EAAN,eAAM;IACN,gBAAgB,EAAhB,yBAAgB;IAChB,WAAW,EAAX,oBAAW;IACX,mBAAmB,EAAnB,4BAAmB;IACnB,cAAc,EAAd,yBAAc;IACd,mBAAmB,EAAnB,8BAAmB;IACnB,eAAe,EAAf,0BAAe;IACf,kBAAkB,EAAlB,6BAAkB;IAClB,iBAAiB,EAAjB,4BAAiB;IACjB,mBAAmB,EAAnB,8BAAmB;IACnB,gBAAgB,EAAhB,2BAAgB;IAChB,mBAAmB,EAAnB,8BAAmB;IACnB,sBAAsB,EAAtB,iCAAsB;IACtB,YAAY,EAAZ,wBAAY;IACZ,aAAa,EAAb,uBAAa;IACb,sBAAsB,EAAtB,gCAAsB;IACtB,oBAAoB,EAApB,8BAAoB;IACpB,aAAa,EAAb,uBAAa;IACb,aAAa,EAAb,uBAAa;IACb,aAAa,EAAb,uBAAa;IACb,oBAAoB,EAApB,8BAAoB;IACpB,sBAAsB,EAAtB,gCAAsB;IACtB,uBAAuB,EAAvB,iCAAuB;IACvB,iBAAiB,EAAjB,2BAAiB;IACjB,sBAAsB,EAAtB,gCAAsB;IACtB,wBAAwB,EAAxB,kCAAwB;IACxB,cAAc,EAAd,wBAAc;IACd,WAAW,EAAX,kBAAW;IACX,mBAAmB,EAAnB,0BAAmB;IACnB,WAAW,EAAX,kBAAW;IACX,WAAW,EAAX,qBAAW;IACX,eAAe,EAAf,yBAAe;IACf,WAAW,EAAX,qBAAW;IACX,iBAAiB,EAAjB,+BAAiB;IACjB,sBAAsB,EAAtB,oCAAsB;IACtB,mBAAmB,EAAnB,iCAAmB;IACnB,iBAAiB,EAAjB,+BAAiB;IACjB,KAAK,EAAL,aAAK;CACL,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ApiPromise } from '@polkadot/api';
|
|
2
|
+
import { PalletsOnGoingReferendaService } from '../../services';
|
|
3
|
+
import AbstractController from '../AbstractController';
|
|
4
|
+
export default class PalletsOnGoingReferendaController extends AbstractController<PalletsOnGoingReferendaService> {
|
|
5
|
+
constructor(api: ApiPromise);
|
|
6
|
+
protected initRoutes(): void;
|
|
7
|
+
/**
|
|
8
|
+
* Get the on-going referenda.
|
|
9
|
+
*
|
|
10
|
+
* @param _req Express Request
|
|
11
|
+
* @param res Express Response
|
|
12
|
+
*/
|
|
13
|
+
private getPalletOnGoingReferenda;
|
|
14
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2017-2024 Parity Technologies (UK) Ltd.
|
|
3
|
+
// This file is part of Substrate API Sidecar.
|
|
4
|
+
//
|
|
5
|
+
// Substrate API Sidecar is free software: you can redistribute it and/or modify
|
|
6
|
+
// it under the terms of the GNU General Public License as published by
|
|
7
|
+
// the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
// (at your option) any later version.
|
|
9
|
+
//
|
|
10
|
+
// This program is distributed in the hope that it will be useful,
|
|
11
|
+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
// GNU General Public License for more details.
|
|
14
|
+
//
|
|
15
|
+
// You should have received a copy of the GNU General Public License
|
|
16
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
const services_1 = require("../../services");
|
|
22
|
+
const AbstractController_1 = __importDefault(require("../AbstractController"));
|
|
23
|
+
class PalletsOnGoingReferendaController extends AbstractController_1.default {
|
|
24
|
+
constructor(api) {
|
|
25
|
+
super(api, '/pallets/on-going-referenda', new services_1.PalletsOnGoingReferendaService(api));
|
|
26
|
+
/**
|
|
27
|
+
* Get the on-going referenda.
|
|
28
|
+
*
|
|
29
|
+
* @param _req Express Request
|
|
30
|
+
* @param res Express Response
|
|
31
|
+
*/
|
|
32
|
+
this.getPalletOnGoingReferenda = async ({ query: { at } }, res) => {
|
|
33
|
+
const hash = await this.getHashFromAt(at);
|
|
34
|
+
PalletsOnGoingReferendaController.sanitizedSend(res, await this.service.derivePalletOnGoingReferenda(hash));
|
|
35
|
+
};
|
|
36
|
+
this.initRoutes();
|
|
37
|
+
}
|
|
38
|
+
initRoutes() {
|
|
39
|
+
this.safeMountAsyncGetHandlers([['', this.getPalletOnGoingReferenda]]);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.default = PalletsOnGoingReferendaController;
|
|
43
|
+
//# sourceMappingURL=PalletsOnGoingReferendaController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PalletsOnGoingReferendaController.js","sourceRoot":"","sources":["../../../../src/controllers/pallets/PalletsOnGoingReferendaController.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;;;AAKxE,6CAAgE;AAChE,+EAAuD;AAEvD,MAAqB,iCAAkC,SAAQ,4BAAkD;IAChH,YAAY,GAAe;QAC1B,KAAK,CAAC,GAAG,EAAE,6BAA6B,EAAE,IAAI,yCAA8B,CAAC,GAAG,CAAC,CAAC,CAAC;QAQpF;;;;;WAKG;QACK,8BAAyB,GAAmB,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAiB,EAAE;YACnG,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAE1C,iCAAiC,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7G,CAAC,CAAC;QAjBD,IAAI,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC;IAES,UAAU;QACnB,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;CAaD;AArBD,oDAqBC"}
|
|
@@ -6,6 +6,7 @@ export { default as PalletsErrors } from './PalletsErrorsController';
|
|
|
6
6
|
export { default as PalletsEvents } from './PalletsEventsController';
|
|
7
7
|
export { default as PalletsForeignAssets } from './PalletsForeignAssetsController';
|
|
8
8
|
export { default as PalletsNominationPools } from './PalletsNominationPoolsController';
|
|
9
|
+
export { default as PalletsOnGoingReferenda } from './PalletsOnGoingReferendaController';
|
|
9
10
|
export { default as PalletsPoolAssets } from './PalletsPoolAssetsController';
|
|
10
11
|
export { default as PalletsStakingProgress } from './PalletsStakingProgressController';
|
|
11
12
|
export { default as PalletsStakingValidators } from './PalletsStakingValidatorsController';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2017-
|
|
2
|
+
// Copyright 2017-2024 Parity Technologies (UK) Ltd.
|
|
3
3
|
// This file is part of Substrate API Sidecar.
|
|
4
4
|
//
|
|
5
5
|
// Substrate API Sidecar is free software: you can redistribute it and/or modify
|
|
@@ -18,7 +18,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
18
18
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
19
|
};
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.PalletsStorage = exports.PalletsStakingValidators = exports.PalletsStakingProgress = exports.PalletsPoolAssets = exports.PalletsNominationPools = exports.PalletsForeignAssets = exports.PalletsEvents = exports.PalletsErrors = exports.PalletsDispatchables = exports.PalletsConsts = exports.PalletsAssets = exports.PalletsAssetConversion = void 0;
|
|
21
|
+
exports.PalletsStorage = exports.PalletsStakingValidators = exports.PalletsStakingProgress = exports.PalletsPoolAssets = exports.PalletsOnGoingReferenda = exports.PalletsNominationPools = exports.PalletsForeignAssets = exports.PalletsEvents = exports.PalletsErrors = exports.PalletsDispatchables = exports.PalletsConsts = exports.PalletsAssets = exports.PalletsAssetConversion = void 0;
|
|
22
22
|
var PalletsAssetConversionController_1 = require("./PalletsAssetConversionController");
|
|
23
23
|
Object.defineProperty(exports, "PalletsAssetConversion", { enumerable: true, get: function () { return __importDefault(PalletsAssetConversionController_1).default; } });
|
|
24
24
|
var PalletsAssetsController_1 = require("./PalletsAssetsController");
|
|
@@ -35,6 +35,8 @@ var PalletsForeignAssetsController_1 = require("./PalletsForeignAssetsController
|
|
|
35
35
|
Object.defineProperty(exports, "PalletsForeignAssets", { enumerable: true, get: function () { return __importDefault(PalletsForeignAssetsController_1).default; } });
|
|
36
36
|
var PalletsNominationPoolsController_1 = require("./PalletsNominationPoolsController");
|
|
37
37
|
Object.defineProperty(exports, "PalletsNominationPools", { enumerable: true, get: function () { return __importDefault(PalletsNominationPoolsController_1).default; } });
|
|
38
|
+
var PalletsOnGoingReferendaController_1 = require("./PalletsOnGoingReferendaController");
|
|
39
|
+
Object.defineProperty(exports, "PalletsOnGoingReferenda", { enumerable: true, get: function () { return __importDefault(PalletsOnGoingReferendaController_1).default; } });
|
|
38
40
|
var PalletsPoolAssetsController_1 = require("./PalletsPoolAssetsController");
|
|
39
41
|
Object.defineProperty(exports, "PalletsPoolAssets", { enumerable: true, get: function () { return __importDefault(PalletsPoolAssetsController_1).default; } });
|
|
40
42
|
var PalletsStakingProgressController_1 = require("./PalletsStakingProgressController");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/controllers/pallets/index.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;;;;AAExE,uFAAuF;AAA9E,2JAAA,OAAO,OAA0B;AAC1C,qEAAqE;AAA5D,yIAAA,OAAO,OAAiB;AACjC,qEAAqE;AAA5D,yIAAA,OAAO,OAAiB;AACjC,mFAAmF;AAA1E,uJAAA,OAAO,OAAwB;AACxC,qEAAqE;AAA5D,yIAAA,OAAO,OAAiB;AACjC,qEAAqE;AAA5D,yIAAA,OAAO,OAAiB;AACjC,mFAAmF;AAA1E,uJAAA,OAAO,OAAwB;AACxC,uFAAuF;AAA9E,2JAAA,OAAO,OAA0B;AAC1C,6EAA6E;AAApE,iJAAA,OAAO,OAAqB;AACrC,uFAAuF;AAA9E,2JAAA,OAAO,OAA0B;AAC1C,2FAA2F;AAAlF,+JAAA,OAAO,OAA4B;AAC5C,uEAAuE;AAA9D,2IAAA,OAAO,OAAkB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/controllers/pallets/index.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;;;;AAExE,uFAAuF;AAA9E,2JAAA,OAAO,OAA0B;AAC1C,qEAAqE;AAA5D,yIAAA,OAAO,OAAiB;AACjC,qEAAqE;AAA5D,yIAAA,OAAO,OAAiB;AACjC,mFAAmF;AAA1E,uJAAA,OAAO,OAAwB;AACxC,qEAAqE;AAA5D,yIAAA,OAAO,OAAiB;AACjC,qEAAqE;AAA5D,yIAAA,OAAO,OAAiB;AACjC,mFAAmF;AAA1E,uJAAA,OAAO,OAAwB;AACxC,uFAAuF;AAA9E,2JAAA,OAAO,OAA0B;AAC1C,yFAAyF;AAAhF,6JAAA,OAAO,OAA2B;AAC3C,6EAA6E;AAApE,iJAAA,OAAO,OAAqB;AACrC,uFAAuF;AAA9E,2JAAA,OAAO,OAA0B;AAC1C,2FAA2F;AAAlF,+JAAA,OAAO,OAA4B;AAC5C,uEAAuE;AAA9D,2IAAA,OAAO,OAAkB"}
|
package/build/src/logging/Log.js
CHANGED
|
@@ -14,9 +14,13 @@
|
|
|
14
14
|
//
|
|
15
15
|
// You should have received a copy of the GNU General Public License
|
|
16
16
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
+
};
|
|
17
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
21
|
exports.Log = void 0;
|
|
19
22
|
const winston_1 = require("winston");
|
|
23
|
+
const winston_loki_1 = __importDefault(require("winston-loki"));
|
|
20
24
|
const SidecarConfig_1 = require("../SidecarConfig");
|
|
21
25
|
const transports_1 = require("./transports");
|
|
22
26
|
/**
|
|
@@ -34,6 +38,13 @@ class Log {
|
|
|
34
38
|
if (SidecarConfig_1.SidecarConfig.config.LOG.WRITE) {
|
|
35
39
|
this._transports.push((0, transports_1.fileTransport)('logs.log'));
|
|
36
40
|
}
|
|
41
|
+
if (SidecarConfig_1.SidecarConfig.config.METRICS.ENABLED) {
|
|
42
|
+
this._transports.push(new winston_loki_1.default({
|
|
43
|
+
host: `http://${SidecarConfig_1.SidecarConfig.config.METRICS.LOKI_HOST}:${SidecarConfig_1.SidecarConfig.config.METRICS.LOKI_PORT}`,
|
|
44
|
+
useWinstonMetaAsLabels: true,
|
|
45
|
+
json: true,
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
37
48
|
this._logger = (0, winston_1.createLogger)({
|
|
38
49
|
transports: this._transports,
|
|
39
50
|
exitOnError: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Log.js","sourceRoot":"","sources":["../../../src/logging/Log.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE
|
|
1
|
+
{"version":3,"file":"Log.js","sourceRoot":"","sources":["../../../src/logging/Log.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;;;;AAExE,qCAA+C;AAE/C,gEAAyC;AAEzC,oDAAiD;AACjD,6CAA+D;AAE/D;;GAEG;AACH,MAAa,GAAG;IAGP,MAAM,CAAC,MAAM;QACpB,IAAI,IAAI,CAAC,OAAO,EAAE;YACjB,OAAO,IAAI,CAAC,OAAO,CAAC;SACpB;QAED,IAAI,CAAC,WAAW,GAAG,CAAC,IAAA,6BAAgB,GAAE,CAAC,CAAC;QAExC;;WAEG;QACH,IAAI,6BAAa,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE;YACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAA,0BAAa,EAAC,UAAU,CAAC,CAAC,CAAC;SACjD;QAED,IAAI,6BAAa,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE;YACzC,IAAI,CAAC,WAAW,CAAC,IAAI,CACpB,IAAI,sBAAa,CAAC;gBACjB,IAAI,EAAE,UAAU,6BAAa,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,6BAAa,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE;gBAClG,sBAAsB,EAAE,IAAI;gBAC5B,IAAI,EAAE,IAAI;aACV,CAAC,CACF,CAAC;SACF;QAED,IAAI,CAAC,OAAO,GAAG,IAAA,sBAAY,EAAC;YAC3B,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,WAAW,EAAE,KAAK;YAClB,iBAAiB,EAAE,IAAI,CAAC,WAAW;SACnC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,MAAM,KAAK,MAAM;QAChB,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;IACtC,CAAC;CACD;AA1CD,kBA0CC"}
|
package/build/src/main.js
CHANGED
|
@@ -52,11 +52,11 @@ const App_1 = __importDefault(require("./App"));
|
|
|
52
52
|
const chains_config_1 = require("./chains-config");
|
|
53
53
|
const consoleOverride_1 = require("./logging/consoleOverride");
|
|
54
54
|
const Log_1 = require("./logging/Log");
|
|
55
|
+
const index_1 = require("./metrics/index");
|
|
55
56
|
const middleware = __importStar(require("./middleware"));
|
|
56
57
|
const typesBundle_1 = __importDefault(require("./override-types/typesBundle"));
|
|
57
58
|
const parseArgs_1 = require("./parseArgs");
|
|
58
59
|
const SidecarConfig_1 = require("./SidecarConfig");
|
|
59
|
-
const metrics_1 = __importDefault(require("./util/metrics"));
|
|
60
60
|
async function main() {
|
|
61
61
|
const { config } = SidecarConfig_1.SidecarConfig;
|
|
62
62
|
const { logger } = Log_1.Log;
|
|
@@ -82,9 +82,21 @@ async function main() {
|
|
|
82
82
|
api.rpc.state.getRuntimeVersion(),
|
|
83
83
|
]);
|
|
84
84
|
startUpPrompt(config.SUBSTRATE.URL, chainName.toString(), implName.toString());
|
|
85
|
+
const preMiddlewares = [(0, express_1.json)(), middleware.httpLoggerCreate(logger)];
|
|
86
|
+
if (config.METRICS.ENABLED) {
|
|
87
|
+
// Create Metrics App
|
|
88
|
+
const metricsApp = new index_1.MetricsApp({
|
|
89
|
+
port: config.METRICS.PROM_PORT,
|
|
90
|
+
host: config.METRICS.PROM_HOST,
|
|
91
|
+
});
|
|
92
|
+
// Generate metrics middleware
|
|
93
|
+
preMiddlewares.push(metricsApp.preMiddleware());
|
|
94
|
+
// Start the Metrics server
|
|
95
|
+
metricsApp.listen();
|
|
96
|
+
}
|
|
85
97
|
// Create our App
|
|
86
98
|
const app = new App_1.default({
|
|
87
|
-
preMiddleware:
|
|
99
|
+
preMiddleware: preMiddlewares,
|
|
88
100
|
controllers: (0, chains_config_1.getControllersForSpec)(api, specName.toString()),
|
|
89
101
|
postMiddleware: [
|
|
90
102
|
middleware.txError,
|
|
@@ -100,15 +112,6 @@ async function main() {
|
|
|
100
112
|
const server = app.listen();
|
|
101
113
|
server.keepAliveTimeout = config.EXPRESS.KEEP_ALIVE_TIMEOUT;
|
|
102
114
|
server.headersTimeout = config.EXPRESS.KEEP_ALIVE_TIMEOUT + 5000;
|
|
103
|
-
if (args.prometheus) {
|
|
104
|
-
// Create Metrics App
|
|
105
|
-
const metricsApp = new metrics_1.default({
|
|
106
|
-
port: 9100,
|
|
107
|
-
host: config.EXPRESS.HOST,
|
|
108
|
-
});
|
|
109
|
-
// Start the Metrics server
|
|
110
|
-
metricsApp.listen();
|
|
111
|
-
}
|
|
112
115
|
}
|
|
113
116
|
/**
|
|
114
117
|
* Prompt the user with some basic info about the node and the network they have
|
package/build/src/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";;AAEA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAExE,yCAAyC;AACzC,iCAA+B;AAE/B,uCAA2C;AAC3C,yDAAkE;AAElE,qCAA+B;AAE/B,mEAA0C;AAC1C,gDAAwB;AACxB,mDAAwD;AACxD,+DAA4D;AAC5D,uCAAoC;AACpC,yDAA2C;AAC3C,+EAA2D;AAC3D,2CAAwC;AACxC,mDAAgD;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";;AAEA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAExE,yCAAyC;AACzC,iCAA+B;AAE/B,uCAA2C;AAC3C,yDAAkE;AAElE,qCAA+B;AAE/B,mEAA0C;AAC1C,gDAAwB;AACxB,mDAAwD;AACxD,+DAA4D;AAC5D,uCAAoC;AACpC,2CAA6C;AAC7C,yDAA2C;AAC3C,+EAA2D;AAC3D,2CAAwC;AACxC,mDAAgD;AAEhD,KAAK,UAAU,IAAI;IAClB,MAAM,EAAE,MAAM,EAAE,GAAG,6BAAa,CAAC;IACjC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAG,CAAC;IACvB,0CAA0C;IAC1C,IAAA,iCAAe,EAAC,MAAM,CAAC,CAAC;IAExB,MAAM,CAAC,IAAI,CAAC,YAAY,sBAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAE/C,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC;IAC1E,iEAAiE;IACjE,MAAM,GAAG,GAAG,MAAM,gBAAU,CAAC,MAAM,CAAC;QACnC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;YAChD,CAAC,CAAC,IAAI,2BAAY,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;YACxC,CAAC,CAAC,IAAI,yBAAU,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;QACvC,uDAAuD;QACvD,WAAW,EAAE,YAAY,CAAC,CAAC,CAAE,OAAO,CAAC,YAAY,CAAwB,CAAC,CAAC,CAAE,qBAAsC;QACnH,UAAU,EAAE,WAAW,CAAC,CAAC,CAAE,OAAO,CAAC,WAAW,CAAmC,CAAC,CAAC,CAAC,SAAS;QAC7F,SAAS,EAAE,UAAU,CAAC,CAAC,CAAE,OAAO,CAAC,UAAU,CAAmC,CAAC,CAAC,CAAC,SAAS;QAC1F,KAAK,EAAE,KAAK,CAAC,CAAC,CAAE,OAAO,CAAC,KAAK,CAAmB,CAAC,CAAC,CAAC,SAAS;QAC5D,sDAAsD;KACtD,CAAC,CAAC;IAEH,4EAA4E;IAC5E,MAAM,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC7D,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;QACtB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE;KACjC,CAAC,CAAC;IAEH,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE/E,MAAM,cAAc,GAAG,CAAC,IAAA,cAAI,GAAE,EAAE,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IAErE,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE;QAC3B,qBAAqB;QACrB,MAAM,UAAU,GAAG,IAAI,kBAAU,CAAC;YACjC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;YAC9B,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;SAC9B,CAAC,CAAC;QAEH,8BAA8B;QAC9B,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;QAChD,2BAA2B;QAC3B,UAAU,CAAC,MAAM,EAAE,CAAC;KACpB;IAED,iBAAiB;IACjB,MAAM,GAAG,GAAG,IAAI,aAAG,CAAC;QACnB,aAAa,EAAE,cAAc;QAC7B,WAAW,EAAE,IAAA,qCAAqB,EAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC5D,cAAc,EAAE;YACf,UAAU,CAAC,OAAO;YAClB,UAAU,CAAC,SAAS;YACpB,UAAU,CAAC,KAAK;YAChB,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,aAAa;SACxB;QACD,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;QACzB,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;KACzB,CAAC,CAAC;IAEH,mBAAmB;IACnB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;IAE5B,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAC5D,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAClE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,GAAW,EAAE,SAAiB,EAAE,QAAgB;IACtE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAG,CAAC;IAEvB,MAAM,CAAC,IAAI,CAAC,sBAAsB,SAAS,WAAW,QAAQ,cAAc,GAAG,EAAE,CAAC,CAAC;IAEnF,iFAAiF;IACjF,MAAM,QAAQ,GAAa,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1C,2CAA2C;IAC3C,MAAM,QAAQ,GAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;IAC3E,2BAA2B;IAC3B,MAAM,OAAO,GAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,aAAa,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC;IAExF,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE;QAC1B,MAAM,CAAC,IAAI,CACV,kDAAkD,GAAG,wDAAwD,CAC7G,CAAC;KACF;AACF,CAAC;AAED,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE;IACpB,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG,IAAA,qBAAS,GAAE,CAAC;AAEzB,IAAI,IAAI,CAAC,OAAO,EAAE;IACjB,OAAO,CAAC,GAAG,CAAC,2BAA2B,sBAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CAChB;KAAM;IACN,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;CAC1B"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Request, Response } from 'express';
|
|
2
|
+
import client from 'prom-client';
|
|
3
|
+
interface IAppConfiguration {
|
|
4
|
+
port: number;
|
|
5
|
+
host: string;
|
|
6
|
+
}
|
|
7
|
+
interface Query extends Request {
|
|
8
|
+
route: {
|
|
9
|
+
path: string;
|
|
10
|
+
[key: string]: unknown;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export default class Metrics_App {
|
|
14
|
+
private app;
|
|
15
|
+
private registry;
|
|
16
|
+
private metrics;
|
|
17
|
+
private includeQueryParams;
|
|
18
|
+
private readonly port;
|
|
19
|
+
private readonly host;
|
|
20
|
+
/**
|
|
21
|
+
* @param appConfig configuration for app.
|
|
22
|
+
*/
|
|
23
|
+
constructor({ host, port }: IAppConfiguration);
|
|
24
|
+
listen(): void;
|
|
25
|
+
getRegisteredMetrics(): Record<string, client.Metric>;
|
|
26
|
+
private createMetricByType;
|
|
27
|
+
private getRoute;
|
|
28
|
+
preMiddleware(): (req: Query, res: Response, next: () => void) => void;
|
|
29
|
+
private init;
|
|
30
|
+
}
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const express_1 = __importDefault(require("express"));
|
|
7
|
+
const prom_client_1 = __importDefault(require("prom-client"));
|
|
8
|
+
const Log_1 = require("../logging/Log");
|
|
9
|
+
const SidecarConfig_1 = require("../SidecarConfig");
|
|
10
|
+
const _1 = require(".");
|
|
11
|
+
class Metrics_App {
|
|
12
|
+
/**
|
|
13
|
+
* @param appConfig configuration for app.
|
|
14
|
+
*/
|
|
15
|
+
constructor({ host, port }) {
|
|
16
|
+
this.includeQueryParams = SidecarConfig_1.SidecarConfig.config.METRICS.INCLUDE_QUERYPARAMS;
|
|
17
|
+
this.port = port;
|
|
18
|
+
this.app = (0, express_1.default)();
|
|
19
|
+
this.host = host;
|
|
20
|
+
this.registry = new prom_client_1.default.Registry();
|
|
21
|
+
this.metrics = {};
|
|
22
|
+
this.init();
|
|
23
|
+
}
|
|
24
|
+
listen() {
|
|
25
|
+
const { logger } = Log_1.Log;
|
|
26
|
+
this.app.listen(this.port, this.host, () => {
|
|
27
|
+
logger.info(`Metrics Server started at http://${this.host}:${this.port}/metrics`);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
getRegisteredMetrics() {
|
|
31
|
+
return this.metrics;
|
|
32
|
+
}
|
|
33
|
+
createMetricByType(prefix = 'sas', metric) {
|
|
34
|
+
const prefixedName = prefix + '_' + metric.name;
|
|
35
|
+
if (prefixedName in this.metrics) {
|
|
36
|
+
return this.metrics[prefixedName];
|
|
37
|
+
}
|
|
38
|
+
switch (metric.type) {
|
|
39
|
+
case "counter" /* MetricType.Counter */: {
|
|
40
|
+
const counter = new prom_client_1.default.Counter({
|
|
41
|
+
name: prefixedName,
|
|
42
|
+
help: metric.help,
|
|
43
|
+
labelNames: metric.labels || [],
|
|
44
|
+
registers: [this.registry],
|
|
45
|
+
});
|
|
46
|
+
this.registry.registerMetric(counter);
|
|
47
|
+
this.metrics[prefixedName] = counter;
|
|
48
|
+
return counter;
|
|
49
|
+
}
|
|
50
|
+
case "histogram" /* MetricType.Histogram */: {
|
|
51
|
+
const histogram = new prom_client_1.default.Histogram({
|
|
52
|
+
name: prefixedName,
|
|
53
|
+
help: metric.help,
|
|
54
|
+
labelNames: metric.labels || [],
|
|
55
|
+
registers: [this.registry],
|
|
56
|
+
buckets: metric.buckets || [0.1, 0.5, 1, 1.5, 2, 3, 4, 5],
|
|
57
|
+
});
|
|
58
|
+
this.metrics[prefixedName] = histogram;
|
|
59
|
+
return histogram;
|
|
60
|
+
}
|
|
61
|
+
case "gauge" /* MetricType.Gauge */:
|
|
62
|
+
throw new Error('Gauge not implemented');
|
|
63
|
+
case "summary" /* MetricType.Summary */:
|
|
64
|
+
throw new Error('Summary not implemented');
|
|
65
|
+
default:
|
|
66
|
+
throw new Error('Unknown metric type');
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
getRoute(req) {
|
|
70
|
+
var _a, _b;
|
|
71
|
+
let route = req.baseUrl;
|
|
72
|
+
if (req.route) {
|
|
73
|
+
if (req.route.path !== '/') {
|
|
74
|
+
route = route ? route + ((_a = req.route) === null || _a === void 0 ? void 0 : _a.path) : (_b = req.route) === null || _b === void 0 ? void 0 : _b.path;
|
|
75
|
+
}
|
|
76
|
+
if (!route || route === '' || typeof route !== 'string') {
|
|
77
|
+
route = req.originalUrl.split('?')[0];
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
const splittedRoute = route.split('/');
|
|
81
|
+
const splittedUrl = req.originalUrl.split('?')[0].split('/');
|
|
82
|
+
const routeIndex = splittedUrl.length - splittedRoute.length + 1;
|
|
83
|
+
const baseUrl = splittedUrl.slice(0, routeIndex).join('/');
|
|
84
|
+
route = baseUrl + route;
|
|
85
|
+
}
|
|
86
|
+
if (this.includeQueryParams === true && Object.keys(req.query).length > 0) {
|
|
87
|
+
route = `${route}?${Object.keys(req.query)
|
|
88
|
+
.sort()
|
|
89
|
+
.map((queryParam) => `${queryParam}=<?>`)
|
|
90
|
+
.join('&')}`;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (typeof req.params === 'object') {
|
|
94
|
+
Object.keys(req.params).forEach((paramName) => {
|
|
95
|
+
route = route.replace(req.params[paramName], ':' + paramName);
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
if (!route || route === '') {
|
|
99
|
+
// if (!req.route && res && res.statusCode === 404) {
|
|
100
|
+
route = 'N/A';
|
|
101
|
+
}
|
|
102
|
+
return route;
|
|
103
|
+
}
|
|
104
|
+
preMiddleware() {
|
|
105
|
+
return (req, res, next) => {
|
|
106
|
+
const tot_requests = this.metrics['sas_http_requests'];
|
|
107
|
+
// request count metrics
|
|
108
|
+
if (req.originalUrl != '/favicon.ico') {
|
|
109
|
+
tot_requests.inc();
|
|
110
|
+
}
|
|
111
|
+
const request_duration_seconds = this.metrics['sas_request_duration_seconds'];
|
|
112
|
+
const end = request_duration_seconds.startTimer();
|
|
113
|
+
res.locals.metrics = {
|
|
114
|
+
timer: end,
|
|
115
|
+
registry: this.metrics,
|
|
116
|
+
};
|
|
117
|
+
const oldJson = res.json;
|
|
118
|
+
res.json = (body) => {
|
|
119
|
+
res.locals.body = body;
|
|
120
|
+
return oldJson.call(res, body);
|
|
121
|
+
};
|
|
122
|
+
res.once('finish', () => {
|
|
123
|
+
if (res.statusCode >= 400 && req.originalUrl != '/favicon.ico') {
|
|
124
|
+
const request_errors = this.metrics['sas_http_request_error'];
|
|
125
|
+
request_errors.inc();
|
|
126
|
+
}
|
|
127
|
+
else if (res.statusCode < 400) {
|
|
128
|
+
const request_success = this.metrics['sas_http_request_success'];
|
|
129
|
+
request_success.inc();
|
|
130
|
+
}
|
|
131
|
+
let resContentLength = '0';
|
|
132
|
+
if ('_contentLength' in res && res['_contentLength'] != null) {
|
|
133
|
+
resContentLength = res['_contentLength'];
|
|
134
|
+
}
|
|
135
|
+
else if (res.hasHeader('Content-Length')) {
|
|
136
|
+
resContentLength = res.getHeader('Content-Length');
|
|
137
|
+
}
|
|
138
|
+
// Generic Metrics per route (latency, response size, response size to latency ratio)
|
|
139
|
+
// response size metrics
|
|
140
|
+
const response_size_bytes = this.metrics['sas_response_size_bytes'];
|
|
141
|
+
response_size_bytes
|
|
142
|
+
.labels({ method: req.method, route: this.getRoute(req), status_code: res.statusCode })
|
|
143
|
+
.observe(parseFloat(resContentLength));
|
|
144
|
+
// latency metrics
|
|
145
|
+
const latency = end({ method: req.method, route: this.getRoute(req), status_code: res.statusCode });
|
|
146
|
+
// response size to latency ratio
|
|
147
|
+
const response_size_latency_ratio = this.metrics['sas_response_size_bytes_seconds'];
|
|
148
|
+
response_size_latency_ratio
|
|
149
|
+
.labels({ method: req.method, route: this.getRoute(req), status_code: res.statusCode })
|
|
150
|
+
.observe(parseFloat(resContentLength) / latency);
|
|
151
|
+
});
|
|
152
|
+
next();
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
init() {
|
|
156
|
+
// Set up
|
|
157
|
+
_1.config.metric_list.forEach((metric) => this.createMetricByType('sas', metric));
|
|
158
|
+
prom_client_1.default.collectDefaultMetrics({ register: this.registry, prefix: 'sas_' });
|
|
159
|
+
// Set up the metrics endpoint
|
|
160
|
+
this.app.get('/metrics', (_req, res) => {
|
|
161
|
+
void (async () => {
|
|
162
|
+
res.set('Content-Type', this.registry.contentType);
|
|
163
|
+
res.send(await this.registry.metrics());
|
|
164
|
+
})();
|
|
165
|
+
});
|
|
166
|
+
this.app.get('/metrics.json', (_req, res) => {
|
|
167
|
+
void (async () => {
|
|
168
|
+
res.set('Content-Type', this.registry.contentType);
|
|
169
|
+
res.send(await this.registry.getMetricsAsJSON());
|
|
170
|
+
})();
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
exports.default = Metrics_App;
|
|
175
|
+
//# sourceMappingURL=Metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Metrics.js","sourceRoot":"","sources":["../../../src/metrics/Metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// as new metrics are added in routes they need to be registered here to make them available across the apps
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.metric_list = void 0;
|
|
5
|
+
exports.metric_list = [
|
|
6
|
+
{
|
|
7
|
+
name: 'http_request_error',
|
|
8
|
+
help: 'Number of HTTP Errors',
|
|
9
|
+
type: "counter" /* MetricType.Counter */,
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
name: 'http_request_success',
|
|
13
|
+
help: 'Number of HTTP Success',
|
|
14
|
+
type: "counter" /* MetricType.Counter */,
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
name: 'http_requests',
|
|
18
|
+
help: 'Total number of HTTP Requests',
|
|
19
|
+
type: "counter" /* MetricType.Counter */,
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'request_duration_seconds',
|
|
23
|
+
help: 'Duration of HTTP requests in seconds',
|
|
24
|
+
labels: ['method', 'route', 'status_code'],
|
|
25
|
+
buckets: [0.1, 0.5, 1, 1.5, 2, 3, 4, 5],
|
|
26
|
+
type: "histogram" /* MetricType.Histogram */,
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: 'response_size_bytes',
|
|
30
|
+
help: 'Size of HTTP responses in bytes',
|
|
31
|
+
labels: ['method', 'route', 'status_code'],
|
|
32
|
+
buckets: [100, 500, 1000, 5000, 10000, 50000, 100000, 500000, 1000000, 5000000],
|
|
33
|
+
type: "histogram" /* MetricType.Histogram */,
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
name: 'response_size_bytes_seconds',
|
|
37
|
+
help: 'Ratio of response size to latency',
|
|
38
|
+
labels: ['method', 'route', 'status_code'],
|
|
39
|
+
buckets: [64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144],
|
|
40
|
+
type: "histogram" /* MetricType.Histogram */,
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'extrinsics_in_request',
|
|
44
|
+
help: 'Number of extrinsics in a request',
|
|
45
|
+
type: "histogram" /* MetricType.Histogram */,
|
|
46
|
+
buckets: [5, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 20480],
|
|
47
|
+
labels: ['method', 'route', 'status_code'],
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: 'extrinsics_per_second',
|
|
51
|
+
help: 'Number of extrinsics per second',
|
|
52
|
+
type: "histogram" /* MetricType.Histogram */,
|
|
53
|
+
labels: ['method', 'route', 'status_code'],
|
|
54
|
+
buckets: [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024],
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: 'extrinsics_per_block',
|
|
58
|
+
help: 'Average number of extrinsics per block',
|
|
59
|
+
type: "histogram" /* MetricType.Histogram */,
|
|
60
|
+
labels: ['method', 'route', 'status_code'],
|
|
61
|
+
buckets: [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024],
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
name: 'seconds_per_block',
|
|
65
|
+
help: 'Average seconds per block',
|
|
66
|
+
type: "histogram" /* MetricType.Histogram */,
|
|
67
|
+
labels: ['method', 'route', 'status_code'],
|
|
68
|
+
buckets: [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024],
|
|
69
|
+
},
|
|
70
|
+
];
|
|
71
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/metrics/config.ts"],"names":[],"mappings":"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"}
|