@breautek/storm 9.6.4 → 9.7.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/CHANGELOG.md +453 -880
- package/docs/assets/hierarchy.js +1 -1
- package/docs/assets/icons.js +1 -1
- package/docs/assets/icons.svg +1 -1
- package/docs/assets/main.js +3 -3
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/Application.html +23 -18
- package/docs/classes/ConfigLoader.html +3 -3
- package/docs/classes/Database.html +2 -2
- package/docs/classes/DatabaseCastObject.html +2 -2
- package/docs/classes/DatabaseConnection.html +21 -21
- package/docs/classes/DatabaseQueryError.html +6 -6
- package/docs/classes/DeadLockError.html +6 -6
- package/docs/classes/DiskSpaceError.html +5 -5
- package/docs/classes/DropTemporaryTableQuery.html +7 -7
- package/docs/classes/DuplicateEntryError.html +5 -5
- package/docs/classes/EntityNotFoundError.html +5 -5
- package/docs/classes/ExpiredTokenError.html +5 -5
- package/docs/classes/ForbiddenError.html +5 -5
- package/docs/classes/GetMySQLVersion.html +7 -7
- package/docs/classes/Handler.html +2 -2
- package/docs/classes/IllegalStateError.html +5 -5
- package/docs/classes/InternalError.html +5 -5
- package/docs/classes/InvalidCredentialsError.html +5 -5
- package/docs/classes/InvalidValueError.html +5 -5
- package/docs/classes/LineString.html +2 -2
- package/docs/classes/LockWaitTimeoutError.html +6 -6
- package/docs/classes/ManagedDatabaseConnection.html +5 -5
- package/docs/classes/MetricStore.html +6 -6
- package/docs/classes/Middleware.html +2 -2
- package/docs/classes/MissingConfigError.html +5 -5
- package/docs/classes/MissingParameterError.html +5 -5
- package/docs/classes/MySQLConnection.html +25 -25
- package/docs/classes/MySQLDatabase.html +2 -2
- package/docs/classes/NotImplementedError.html +5 -5
- package/docs/classes/Point.html +2 -2
- package/docs/classes/Polygon.html +2 -2
- package/docs/classes/Query.html +7 -7
- package/docs/classes/RawError.html +5 -5
- package/docs/classes/RawQuery.html +7 -7
- package/docs/classes/Request.html +7 -5
- package/docs/classes/Response.html +2 -2
- package/docs/classes/ResponseData.html +3 -3
- package/docs/classes/ServiceProvider.html +2 -2
- package/docs/classes/ServiceResponse.html +2 -2
- package/docs/classes/SetSessionVariableQuery.html +7 -7
- package/docs/classes/StormError.html +5 -5
- package/docs/classes/TemporaryTableQuery.html +7 -7
- package/docs/classes/TimeoutError.html +5 -5
- package/docs/classes/Token.html +2 -2
- package/docs/classes/TokenManager.html +4 -4
- package/docs/classes/Transaction.html +2 -2
- package/docs/classes/UnauthorizedAccessError.html +5 -5
- package/docs/enums/ErrorCode.html +2 -2
- package/docs/enums/ExitCode.html +2 -2
- package/docs/enums/HTTPMethod.html +2 -2
- package/docs/enums/IsolationLevel.html +2 -2
- package/docs/enums/JWTError.html +2 -2
- package/docs/enums/StatusCode.html +2 -2
- package/docs/enums/TransactionAccessLevel.html +2 -2
- package/docs/functions/getInstance.html +1 -1
- package/docs/hierarchy.html +1 -1
- package/docs/index.html +1 -1
- package/docs/interfaces/IAdditionalErrorDetails.html +1 -1
- package/docs/interfaces/ICloudwatchConfig.html +2 -2
- package/docs/interfaces/ICloudwatchCredentials.html +2 -2
- package/docs/interfaces/ICloudwatchStreamConfig.html +2 -2
- package/docs/interfaces/IConfig.html +4 -3
- package/docs/interfaces/IDatabaseConfig.html +2 -2
- package/docs/interfaces/IDatabaseConnection.html +5 -5
- package/docs/interfaces/IDatabasePosition.html +2 -2
- package/docs/interfaces/IErrorResponse.html +2 -2
- package/docs/interfaces/IFormData.html +2 -2
- package/docs/interfaces/IGetMySQLVersionResult.html +2 -2
- package/docs/interfaces/IGetMySQLVersionRow.html +2 -2
- package/docs/interfaces/IHistogramConfig.html +5 -0
- package/docs/interfaces/IInsertQueryResult.html +2 -2
- package/docs/interfaces/IJWTVerifyOptions.html +2 -2
- package/docs/interfaces/IMetricConfig.html +4 -0
- package/docs/interfaces/IMetricCounter.html +2 -0
- package/docs/interfaces/IMetricGauge.html +4 -0
- package/docs/interfaces/IMetricHistogram.html +3 -0
- package/docs/interfaces/IOKPacket.html +2 -2
- package/docs/interfaces/IParameterMap.html +1 -1
- package/docs/interfaces/IQueryable.html +2 -2
- package/docs/interfaces/IRequestResponse.html +2 -2
- package/docs/interfaces/ISetSessionVariableQueryInput.html +2 -2
- package/docs/interfaces/IStormCLIArgs.html +3 -2
- package/docs/interfaces/ITemporaryTableQueryInput.html +2 -2
- package/docs/interfaces/IUpdateQueryResult.html +2 -2
- package/docs/interfaces/formidable.FileJSON.html +1 -1
- package/docs/interfaces/formidable.Part.html +1 -1
- package/docs/types/IDeleteQueryResult.html +1 -1
- package/docs/types/IStoredProcedureResult.html +1 -1
- package/docs/types/TCoordinate.html +1 -1
- package/docs/types/TExpiresIn.html +1 -1
- package/docs/types/TSerializableResponse.html +1 -1
- package/docs/types/TSupportedResponsePrimitives.html +1 -1
- package/docs/types/TSupportedResponseTypes.html +1 -1
- package/lib/Application.d.ts +13 -0
- package/lib/Application.js +39 -5
- package/lib/Application.js.map +1 -1
- package/lib/ConfigLoader.js +18 -0
- package/lib/ConfigLoader.js.map +1 -1
- package/lib/Database.js +2 -2
- package/lib/Database.js.map +1 -1
- package/lib/Handler.d.ts +1 -0
- package/lib/Handler.js +14 -0
- package/lib/Handler.js.map +1 -1
- package/lib/IConfig.d.ts +5 -0
- package/lib/MetricStore.d.ts +34 -7
- package/lib/MetricStore.js +96 -31
- package/lib/MetricStore.js.map +1 -1
- package/lib/MySQLConnection.d.ts +3 -1
- package/lib/MySQLConnection.js +3 -3
- package/lib/MySQLConnection.js.map +1 -1
- package/lib/MySQLDatabase.d.ts +1 -0
- package/lib/MySQLDatabase.js +6 -2
- package/lib/MySQLDatabase.js.map +1 -1
- package/lib/PrometheusServer.d.ts +13 -0
- package/lib/PrometheusServer.js +89 -0
- package/lib/PrometheusServer.js.map +1 -0
- package/lib/Request.d.ts +4 -0
- package/lib/Request.js +6 -0
- package/lib/Request.js.map +1 -1
- package/lib/api.d.ts +1 -1
- package/lib/api.js.map +1 -1
- package/package.json +11 -11
- package/src/Application.ts +51 -6
- package/src/ConfigLoader.ts +18 -0
- package/src/Database.ts +2 -2
- package/src/Handler.ts +15 -0
- package/src/IConfig.ts +7 -1
- package/src/MetricStore.ts +136 -38
- package/src/MySQLConnection.ts +5 -3
- package/src/MySQLDatabase.ts +9 -3
- package/src/PrometheusServer.ts +109 -0
- package/src/Request.ts +7 -0
- package/src/api.ts +8 -1
- package/lib/handlers/HealthHandler.d.ts +0 -13
- package/lib/handlers/HealthHandler.js +0 -22
- package/lib/handlers/HealthHandler.js.map +0 -1
- package/src/handlers/HealthHandler.ts +0 -37
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MySQLConnection.js","sourceRoot":"","sources":["../src/MySQLConnection.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;EAcE;;;;AAEF,6DAAwD;AACxD,6DAAwD;AACxD,yCAAuC;AAGvC,2EAAwE;AACxE,uDAAoD;AACpD,2DAAwD;AACxD,oEAA8C;AAE9C,mDAA4C;AAE5C,mDAAgD;AAEhD,6EAAwE;AACxE,iEAA8D;AAG9D,2EAAwE;AACxE,6EAA0E;AAE1E,qEAAkE;AAClE,6DAAiF;AACjF,uDAA4E;AAC5E,+EAA4E;AAC5E,2DAAwD;
|
|
1
|
+
{"version":3,"file":"MySQLConnection.js","sourceRoot":"","sources":["../src/MySQLConnection.ts"],"names":[],"mappings":"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"}
|
package/lib/MySQLDatabase.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import * as MySQL from 'mysql2';
|
|
|
4
4
|
import { IDatabasePosition } from './IDatabasePosition';
|
|
5
5
|
export declare class MySQLDatabase extends Database<MySQL.PoolOptions, MySQL.PoolConnection> {
|
|
6
6
|
private $cluster;
|
|
7
|
+
private $activeConnectionsGauge;
|
|
7
8
|
constructor();
|
|
8
9
|
escape(value: any): string;
|
|
9
10
|
static escape(value: any): string;
|
package/lib/MySQLDatabase.js
CHANGED
|
@@ -35,6 +35,10 @@ class MySQLDatabase extends Database_1.Database {
|
|
|
35
35
|
this.$cluster.on('enqueue', () => {
|
|
36
36
|
(0, instance_1.getInstance)().getLogger().warn(TAG, 'Waiting for available connection...');
|
|
37
37
|
});
|
|
38
|
+
this.$activeConnectionsGauge = MetricStore_1.MetricStore.getInstance().createGauge({
|
|
39
|
+
name: 'storm_mysql_active_connections',
|
|
40
|
+
help: 'Number of MySQL connections currently claimed from the pool'
|
|
41
|
+
});
|
|
38
42
|
}
|
|
39
43
|
escape(value) {
|
|
40
44
|
return MySQLDatabase.escape(value);
|
|
@@ -60,8 +64,8 @@ class MySQLDatabase extends Database_1.Database {
|
|
|
60
64
|
reject(error);
|
|
61
65
|
return;
|
|
62
66
|
}
|
|
63
|
-
|
|
64
|
-
resolve(new MySQLConnection_1.MySQLConnection(connection, instantationStack, !requireWriteAccess));
|
|
67
|
+
this.$activeConnectionsGauge.inc();
|
|
68
|
+
resolve(new MySQLConnection_1.MySQLConnection(connection, instantationStack, !requireWriteAccess, this.$activeConnectionsGauge));
|
|
65
69
|
});
|
|
66
70
|
});
|
|
67
71
|
}
|
package/lib/MySQLDatabase.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MySQLDatabase.js","sourceRoot":"","sources":["../src/MySQLDatabase.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;EAcE;;;;AAEF,yCAAoC;AACpC,uDAAkD;AAClD,sDAAgC;AAChC,yCAAuC;AAEvC,uFAAoF;AAEpF,+
|
|
1
|
+
{"version":3,"file":"MySQLDatabase.js","sourceRoot":"","sources":["../src/MySQLDatabase.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Application } from './Application';
|
|
2
|
+
export declare class PrometheusServer {
|
|
3
|
+
private $app;
|
|
4
|
+
private $socket;
|
|
5
|
+
private $bind;
|
|
6
|
+
private $port;
|
|
7
|
+
private $isClosing;
|
|
8
|
+
private $retryTimer;
|
|
9
|
+
constructor(app: Application);
|
|
10
|
+
start(): void;
|
|
11
|
+
private $createSocket;
|
|
12
|
+
close(): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
Copyright 2017-2026 Norman Breau
|
|
4
|
+
|
|
5
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
you may not use this file except in compliance with the License.
|
|
7
|
+
You may obtain a copy of the License at
|
|
8
|
+
|
|
9
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
|
|
11
|
+
Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
See the License for the specific language governing permissions and
|
|
15
|
+
limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.PrometheusServer = void 0;
|
|
19
|
+
const tslib_1 = require("tslib");
|
|
20
|
+
const http = tslib_1.__importStar(require("node:http"));
|
|
21
|
+
const MetricStore_1 = require("./MetricStore");
|
|
22
|
+
const TAG = 'PrometheusServer';
|
|
23
|
+
const RETRY_DELAY = 5000;
|
|
24
|
+
class PrometheusServer {
|
|
25
|
+
constructor(app) {
|
|
26
|
+
this.$app = app;
|
|
27
|
+
this.$socket = null;
|
|
28
|
+
this.$isClosing = false;
|
|
29
|
+
this.$retryTimer = null;
|
|
30
|
+
let config = app.getConfig();
|
|
31
|
+
this.$bind = config.prometheus?.bind || '127.0.0.1';
|
|
32
|
+
this.$port = config.prometheus?.port;
|
|
33
|
+
if (!this.$port) {
|
|
34
|
+
app.getLogger().warn(TAG, 'Using default port algorithm for Prometheus. Better to explicitly set a port via --prometheus-port.');
|
|
35
|
+
this.$port = app.getDefaultPortForPrometheus();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
start() {
|
|
39
|
+
this.$app.getLogger().info(TAG, 'Initializing Prometheus');
|
|
40
|
+
void this.$createSocket();
|
|
41
|
+
}
|
|
42
|
+
$createSocket() {
|
|
43
|
+
if (this.$isClosing) {
|
|
44
|
+
return Promise.resolve();
|
|
45
|
+
}
|
|
46
|
+
return new Promise((resolve, reject) => {
|
|
47
|
+
this.$socket = http.createServer(async (req, res) => {
|
|
48
|
+
let data = await MetricStore_1.MetricStore.getInstance().getMetrics();
|
|
49
|
+
res.setHeader('Content-Type', data.type);
|
|
50
|
+
res.end(data.content);
|
|
51
|
+
});
|
|
52
|
+
this.$socket.once('error', (err) => {
|
|
53
|
+
this.$socket = null;
|
|
54
|
+
resolve();
|
|
55
|
+
if (this.$isClosing) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
this.$app.getLogger().error(TAG, 'Prometheus Socket Error');
|
|
59
|
+
this.$app.getLogger().error(TAG, err);
|
|
60
|
+
this.$retryTimer = setTimeout(() => {
|
|
61
|
+
void this.$createSocket();
|
|
62
|
+
}, RETRY_DELAY);
|
|
63
|
+
});
|
|
64
|
+
this.$socket.listen(this.$port, this.$bind, null, () => {
|
|
65
|
+
this.$app.getLogger().info(TAG, `Prometheus Server bounded`);
|
|
66
|
+
resolve();
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
async close() {
|
|
71
|
+
this.$isClosing = true;
|
|
72
|
+
clearTimeout(this.$retryTimer);
|
|
73
|
+
return new Promise((resolve, reject) => {
|
|
74
|
+
if (!this.$socket) {
|
|
75
|
+
resolve();
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
this.$socket.close((err) => {
|
|
79
|
+
if (err) {
|
|
80
|
+
reject(err);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
resolve();
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.PrometheusServer = PrometheusServer;
|
|
89
|
+
//# sourceMappingURL=PrometheusServer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrometheusServer.js","sourceRoot":"","sources":["../src/PrometheusServer.ts"],"names":[],"mappings":"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"}
|
package/lib/Request.d.ts
CHANGED
|
@@ -24,6 +24,10 @@ export declare class Request<TBody = any, TAuthToken extends IAuthTokenData = IA
|
|
|
24
24
|
getQueryMultiVariable(name: string): string[];
|
|
25
25
|
getParams(): IParameterMap;
|
|
26
26
|
getParam(name: string): string | string[];
|
|
27
|
+
/**
|
|
28
|
+
* Returns the matched route
|
|
29
|
+
*/
|
|
30
|
+
getRoute(): string;
|
|
27
31
|
/**
|
|
28
32
|
* Gets a URL parameter as string. If the value is multiple
|
|
29
33
|
* then only the first value is returned.
|
package/lib/Request.js
CHANGED
|
@@ -105,6 +105,12 @@ class Request {
|
|
|
105
105
|
getParam(name) {
|
|
106
106
|
return this.$request.params[name];
|
|
107
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* Returns the matched route
|
|
110
|
+
*/
|
|
111
|
+
getRoute() {
|
|
112
|
+
return this.$request.route.path;
|
|
113
|
+
}
|
|
108
114
|
/**
|
|
109
115
|
* Gets a URL parameter as string. If the value is multiple
|
|
110
116
|
* then only the first value is returned.
|
package/lib/Request.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Request.js","sourceRoot":"","sources":["../src/Request.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Request.js","sourceRoot":"","sources":["../src/Request.ts"],"names":[],"mappings":"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"}
|
package/lib/api.d.ts
CHANGED
|
@@ -62,7 +62,7 @@ export { IDatabasePosition } from './IDatabasePosition';
|
|
|
62
62
|
export { Token } from './Token';
|
|
63
63
|
export { TokenManager, TExpiresIn } from './TokenManager';
|
|
64
64
|
export { ExitCode } from './ExitCode';
|
|
65
|
-
export { MetricStore } from './MetricStore';
|
|
65
|
+
export { MetricStore, IHistogramConfig, IMetricConfig, IMetricCounter, IMetricGauge, IMetricHistogram } from './MetricStore';
|
|
66
66
|
export { TCoordinate } from './TCoordinate';
|
|
67
67
|
export { DatabaseCastObject } from './DatabaseCastObject';
|
|
68
68
|
export { Point } from './Point';
|
package/lib/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;EAcE;;;;;AAEF,cAAc;AACd,uCAAuC;AAA/B,uGAAA,WAAW,OAAA;AACnB,6CAGuB;AAFnB,0GAAA,WAAW,OAAA;AAIf,SAAS;AACT,+CAA4C;AAApC,4GAAA,YAAY,OAAA;AAEpB,WAAW;AACX,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAChB,2DAAwD;AAAhD,wHAAA,kBAAkB,OAAA;AAC1B,iDAA8C;AAAtC,8GAAA,aAAa,OAAA;AACrB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,yEAAsE;AAA9D,sIAAA,yBAAyB,OAAA;AACjC,iCAA8B;AAAtB,8FAAA,KAAK,OAAA;AACb,6DAAqF;AAA7E,0HAAA,mBAAmB,OAAA;AAC3B,qEAAkE;AAA1D,kIAAA,uBAAuB,OAAA;AAC/B,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAIhB,qEAAiG;AAAzF,kIAAA,uBAAuB,OAAA;AAC/B,mDAAgD;AAAxC,gHAAA,cAAc,OAAA;AACtB,6CAA0C;AAAlC,0GAAA,WAAW,OAAA;AAGnB,mEAAgE;AAAxD,gIAAA,sBAAsB,OAAA;AAC9B,qDAA+F;AAAvF,kHAAA,eAAe,OAAA;AAEvB,SAAS;AACT,yCAAsC;AAA9B,sGAAA,SAAS,OAAA;AACjB,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAChB,mDAAgD;AAAxC,gHAAA,cAAc,OAAA;AACtB,2CAIsB;AAHlB,wGAAA,UAAU,OAAA;AAId,+CAA4C;AAApC,4GAAA,YAAY,OAAA;AACpB,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAChB,iEAA8D;AAAtD,8HAAA,qBAAqB,OAAA;AAC7B,qEAAkE;AAA1D,kIAAA,uBAAuB,OAAA;AAC/B,iDAA8C;AAAtC,8GAAA,aAAa,OAAA;AACrB,yDAAsD;AAA9C,sHAAA,iBAAiB,OAAA;AACzB,yDAAsD;AAA9C,sHAAA,iBAAiB,OAAA;AACzB,qEAAkE;AAA1D,kIAAA,uBAAuB,OAAA;AAC/B,6DAA0D;AAAlD,0HAAA,mBAAmB,OAAA;AAC3B,mDAAgD;AAAxC,gHAAA,cAAc,OAAA;AACtB,6DAA0D;AAAlD,0HAAA,mBAAmB,OAAA;AAC3B,2DAAwD;AAAhD,wHAAA,kBAAkB,OAAA;AAC1B,2DAAwD;AAAhD,wHAAA,kBAAkB,OAAA;AAC1B,6DAA0D;AAAlD,0HAAA,mBAAmB,OAAA;AAC3B,iDAA8C;AAAtC,8GAAA,aAAa,OAAA;AACrB,+DAA4D;AAApD,4HAAA,oBAAoB,OAAA;AAC5B,yDAAsD;AAA9C,sHAAA,iBAAiB,OAAA;AAEzB,OAAO;AACP,2CAAwC;AAAhC,wGAAA,UAAU,OAAA;AAClB,2CAAwC;AAAhC,wGAAA,UAAU,OAAA;AAClB,qCAAiD;AAAzC,kGAAA,OAAO,OAAA;AACf,uCAAkH;AAA1G,oGAAA,QAAQ,OAAA;AAChB,+CAA4C;AAApC,4GAAA,YAAY,OAAA;AACpB,qCAAkC;AAA1B,kGAAA,OAAO,OAAA;AACf,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,2CAAwC;AAAhC,wGAAA,UAAU,OAAA;AAClB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AAkBvB,QAAQ;AACR,iCAA8B;AAAtB,8FAAA,KAAK,OAAA;AACb,+CAAwD;AAAhD,4GAAA,YAAY,OAAA;AAEpB,QAAQ;AACR,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAChB,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;EAcE;;;;;AAEF,cAAc;AACd,uCAAuC;AAA/B,uGAAA,WAAW,OAAA;AACnB,6CAGuB;AAFnB,0GAAA,WAAW,OAAA;AAIf,SAAS;AACT,+CAA4C;AAApC,4GAAA,YAAY,OAAA;AAEpB,WAAW;AACX,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAChB,2DAAwD;AAAhD,wHAAA,kBAAkB,OAAA;AAC1B,iDAA8C;AAAtC,8GAAA,aAAa,OAAA;AACrB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,yEAAsE;AAA9D,sIAAA,yBAAyB,OAAA;AACjC,iCAA8B;AAAtB,8FAAA,KAAK,OAAA;AACb,6DAAqF;AAA7E,0HAAA,mBAAmB,OAAA;AAC3B,qEAAkE;AAA1D,kIAAA,uBAAuB,OAAA;AAC/B,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAIhB,qEAAiG;AAAzF,kIAAA,uBAAuB,OAAA;AAC/B,mDAAgD;AAAxC,gHAAA,cAAc,OAAA;AACtB,6CAA0C;AAAlC,0GAAA,WAAW,OAAA;AAGnB,mEAAgE;AAAxD,gIAAA,sBAAsB,OAAA;AAC9B,qDAA+F;AAAvF,kHAAA,eAAe,OAAA;AAEvB,SAAS;AACT,yCAAsC;AAA9B,sGAAA,SAAS,OAAA;AACjB,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAChB,mDAAgD;AAAxC,gHAAA,cAAc,OAAA;AACtB,2CAIsB;AAHlB,wGAAA,UAAU,OAAA;AAId,+CAA4C;AAApC,4GAAA,YAAY,OAAA;AACpB,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAChB,iEAA8D;AAAtD,8HAAA,qBAAqB,OAAA;AAC7B,qEAAkE;AAA1D,kIAAA,uBAAuB,OAAA;AAC/B,iDAA8C;AAAtC,8GAAA,aAAa,OAAA;AACrB,yDAAsD;AAA9C,sHAAA,iBAAiB,OAAA;AACzB,yDAAsD;AAA9C,sHAAA,iBAAiB,OAAA;AACzB,qEAAkE;AAA1D,kIAAA,uBAAuB,OAAA;AAC/B,6DAA0D;AAAlD,0HAAA,mBAAmB,OAAA;AAC3B,mDAAgD;AAAxC,gHAAA,cAAc,OAAA;AACtB,6DAA0D;AAAlD,0HAAA,mBAAmB,OAAA;AAC3B,2DAAwD;AAAhD,wHAAA,kBAAkB,OAAA;AAC1B,2DAAwD;AAAhD,wHAAA,kBAAkB,OAAA;AAC1B,6DAA0D;AAAlD,0HAAA,mBAAmB,OAAA;AAC3B,iDAA8C;AAAtC,8GAAA,aAAa,OAAA;AACrB,+DAA4D;AAApD,4HAAA,oBAAoB,OAAA;AAC5B,yDAAsD;AAA9C,sHAAA,iBAAiB,OAAA;AAEzB,OAAO;AACP,2CAAwC;AAAhC,wGAAA,UAAU,OAAA;AAClB,2CAAwC;AAAhC,wGAAA,UAAU,OAAA;AAClB,qCAAiD;AAAzC,kGAAA,OAAO,OAAA;AACf,uCAAkH;AAA1G,oGAAA,QAAQ,OAAA;AAChB,+CAA4C;AAApC,4GAAA,YAAY,OAAA;AACpB,qCAAkC;AAA1B,kGAAA,OAAO,OAAA;AACf,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,2CAAwC;AAAhC,wGAAA,UAAU,OAAA;AAClB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AAkBvB,QAAQ;AACR,iCAA8B;AAAtB,8FAAA,KAAK,OAAA;AACb,+CAAwD;AAAhD,4GAAA,YAAY,OAAA;AAEpB,QAAQ;AACR,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAChB,6CAOuB;AANnB,0GAAA,WAAW,OAAA;AAUf,2DAAwD;AAAhD,wHAAA,kBAAkB,OAAA;AAC1B,iCAA8B;AAAtB,8FAAA,KAAK,OAAA;AACb,2CAAwC;AAAhC,wGAAA,UAAU,OAAA;AAClB,qCAAkC;AAA1B,kGAAA,OAAO,OAAA;AAEf,cAAc;AACd,+DAAyC;AACjC,gCAAU;AAElB,uCAAkC;AAA1B,oGAAA,OAAO,OAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@breautek/storm",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.7.0",
|
|
4
4
|
"description": "Object-Oriented REST API framework",
|
|
5
5
|
"main": "lib/api.js",
|
|
6
6
|
"types": "lib/api.d.ts",
|
|
@@ -49,38 +49,38 @@
|
|
|
49
49
|
"@types/express": "5.0.6",
|
|
50
50
|
"@types/formidable": "3.5.1",
|
|
51
51
|
"@types/ms": "2.1.0",
|
|
52
|
-
"ajv": "8.
|
|
52
|
+
"ajv": "8.20.0",
|
|
53
53
|
"body-parser": "2.2.2",
|
|
54
54
|
"commander": "14.0.3",
|
|
55
55
|
"express": "5.2.1",
|
|
56
56
|
"form-data": "4.0.5",
|
|
57
57
|
"formidable": "3.5.4",
|
|
58
58
|
"jsonwebtoken": "9.0.3",
|
|
59
|
-
"mysql2": "3.22.
|
|
59
|
+
"mysql2": "3.22.3",
|
|
60
|
+
"prom-client": "15.1.3",
|
|
60
61
|
"sql-formatter": "15.7.3",
|
|
61
|
-
"tslib": "2.8.1"
|
|
62
|
-
"uuid": "11.1.0"
|
|
62
|
+
"tslib": "2.8.1"
|
|
63
63
|
},
|
|
64
64
|
"peerDependencies": {
|
|
65
65
|
"@arashi/interfaces": "1.x",
|
|
66
66
|
"@arashi/logger": "4.x"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
|
-
"@types/body-parser": "1.19.6",
|
|
70
|
-
"@types/jsonwebtoken": "9.0.10",
|
|
71
|
-
"@types/mysql": "2.15.27",
|
|
72
|
-
"@types/node": "24.10.1",
|
|
73
69
|
"@arashi/interfaces": "1.2.1",
|
|
74
70
|
"@arashi/logger": "4.1.5",
|
|
75
71
|
"@jest/types": "30.3.0",
|
|
76
72
|
"@totalpave/eslint-plugin": "7.0.17",
|
|
73
|
+
"@types/body-parser": "1.19.6",
|
|
77
74
|
"@types/jest": "30.0.0",
|
|
78
|
-
"
|
|
75
|
+
"@types/jsonwebtoken": "9.0.10",
|
|
76
|
+
"@types/mysql": "2.15.27",
|
|
77
|
+
"@types/node": "24.10.1",
|
|
78
|
+
"auto-changelog": "2.5.1",
|
|
79
79
|
"jest": "30.3.0",
|
|
80
80
|
"jest-jasmine2": "30.3.0",
|
|
81
81
|
"ts-jest": "29.4.9",
|
|
82
82
|
"ts-node": "10.9.2",
|
|
83
|
-
"typedoc": "0.28.
|
|
83
|
+
"typedoc": "0.28.19",
|
|
84
84
|
"typedoc-plugin-markdown": "4.11.0",
|
|
85
85
|
"typescript": "5.9.3"
|
|
86
86
|
}
|
package/src/Application.ts
CHANGED
|
@@ -37,7 +37,9 @@ import {
|
|
|
37
37
|
BaseLogger
|
|
38
38
|
} from '@arashi/logger';
|
|
39
39
|
import { StormError } from './StormError';
|
|
40
|
-
import {
|
|
40
|
+
import { PrometheusServer } from './PrometheusServer';
|
|
41
|
+
import { MetricStore } from './MetricStore';
|
|
42
|
+
import * as OS from 'node:os';
|
|
41
43
|
|
|
42
44
|
export interface IStormCLIArgs {
|
|
43
45
|
bind?: string;
|
|
@@ -46,6 +48,7 @@ export interface IStormCLIArgs {
|
|
|
46
48
|
configFile?: string;
|
|
47
49
|
localConfigFile?: string;
|
|
48
50
|
custom: Record<string, any>;
|
|
51
|
+
shard?: number;
|
|
49
52
|
}
|
|
50
53
|
|
|
51
54
|
const TAG: string = 'Application';
|
|
@@ -88,6 +91,8 @@ export abstract class Application
|
|
|
88
91
|
private $socket: http.Server;
|
|
89
92
|
private $program: Command;
|
|
90
93
|
|
|
94
|
+
private $promServer: PrometheusServer;
|
|
95
|
+
|
|
91
96
|
private $usingDeprecatedConfigPath: boolean;
|
|
92
97
|
|
|
93
98
|
/**
|
|
@@ -138,17 +143,46 @@ export abstract class Application
|
|
|
138
143
|
}
|
|
139
144
|
}
|
|
140
145
|
|
|
146
|
+
private async $initPrometheus(): Promise<void> {
|
|
147
|
+
let config: IConfig = this.getConfig();
|
|
148
|
+
|
|
149
|
+
if (!config.prometheus?.enabled) {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
this.$getLogger().info(TAG, 'Initializing Prometheus');
|
|
154
|
+
|
|
155
|
+
this.$promServer = new PrometheusServer(this);
|
|
156
|
+
this.$promServer.start();
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Default algorithm is to take main port, and add 595 to it.
|
|
161
|
+
* Still -- it is better to explicitly set the prometheus port.
|
|
162
|
+
*
|
|
163
|
+
* @param mainPort
|
|
164
|
+
* @returns
|
|
165
|
+
*/
|
|
166
|
+
public getDefaultPortForPrometheus(): number {
|
|
167
|
+
return this.getPort() + 595;
|
|
168
|
+
}
|
|
169
|
+
|
|
141
170
|
private async $load(): Promise<void> {
|
|
142
171
|
this.$config = await this.$loadConfig();
|
|
143
172
|
|
|
144
|
-
// console.log('WTF', this.$config);
|
|
145
|
-
|
|
146
173
|
this.$logger = await this._initLogger(this.$config);
|
|
147
174
|
|
|
148
175
|
this.$getLogger().trace(TAG, 'Configuration loaded.');
|
|
149
176
|
this.emit(ApplicationEvent.CONFIG_LOADED);
|
|
150
177
|
this._onConfigLoad(this.$config);
|
|
151
178
|
|
|
179
|
+
MetricStore.getInstance().setDefaultLabels({
|
|
180
|
+
name: this.getName(),
|
|
181
|
+
environment: process.env.NODE_ENV ?? 'development',
|
|
182
|
+
hostname: OS.hostname(),
|
|
183
|
+
shard: String(this.getShard() ?? 0)
|
|
184
|
+
});
|
|
185
|
+
|
|
152
186
|
this.$getLogger().trace(TAG, 'Initializing DB...');
|
|
153
187
|
this.$db = await this._initDB(this.getConfig());
|
|
154
188
|
if (this.$db) {
|
|
@@ -175,6 +209,8 @@ export abstract class Application
|
|
|
175
209
|
limit : this.getRequestSizeLimit()
|
|
176
210
|
}));
|
|
177
211
|
|
|
212
|
+
await this.$initPrometheus();
|
|
213
|
+
|
|
178
214
|
this.$getLogger().trace(TAG, 'Attaching handlers...');
|
|
179
215
|
await this.$attachHandlers();
|
|
180
216
|
await this._attachHandlers();
|
|
@@ -321,13 +357,24 @@ export abstract class Application
|
|
|
321
357
|
this.$program.allowExcessArguments(true);
|
|
322
358
|
this.$program.option('--port <port>', 'The running port to consume');
|
|
323
359
|
this.$program.option('--bind <ip>', 'The binding IP to listen on');
|
|
360
|
+
this.$program.option('--shard <integer>', 'The shard identifier. Must be an integer');
|
|
324
361
|
this.$program.option('--authentication_header <header>', 'The header name of the authentication token');
|
|
325
362
|
this.$program.option('--config <path>', 'The path to the bt-config.json file');
|
|
326
363
|
this.$program.option('--local-config <path>', 'The path to the bt-local-config.json file.');
|
|
364
|
+
this.$program.option('--prometheus-port <port>', 'The port for prometheus metrics server to use.');
|
|
365
|
+
this.$program.option('--prometheus-bind <ip>', 'The bind for prometheus metrics server to use.');
|
|
327
366
|
|
|
328
367
|
this._buildArgOptions(this.$program);
|
|
329
368
|
}
|
|
330
369
|
|
|
370
|
+
public getShard(): number {
|
|
371
|
+
return this.getCmdLineArgs().shard;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
public isPrometheusEnabled(): boolean {
|
|
375
|
+
return !!(this.getConfig()?.prometheus?.enabled);
|
|
376
|
+
}
|
|
377
|
+
|
|
331
378
|
protected _buildArgOptions(program: Command): void {}
|
|
332
379
|
|
|
333
380
|
public getProgram(): Command {
|
|
@@ -349,9 +396,7 @@ export abstract class Application
|
|
|
349
396
|
return this.getConfig().request_size_limit;
|
|
350
397
|
}
|
|
351
398
|
|
|
352
|
-
private async $attachHandlers(): Promise<void> {
|
|
353
|
-
this.attachHandler('/_health', new HealthHandler(this));
|
|
354
|
-
}
|
|
399
|
+
private async $attachHandlers(): Promise<void> {}
|
|
355
400
|
|
|
356
401
|
/**
|
|
357
402
|
*
|
package/src/ConfigLoader.ts
CHANGED
|
@@ -143,10 +143,28 @@ export class ConfigLoader<TConfig extends IConfig = IConfig> {
|
|
|
143
143
|
properties: {
|
|
144
144
|
bind: { type: [ 'string', 'null' ] },
|
|
145
145
|
port: { type: [ 'number', 'null' ] },
|
|
146
|
+
shard: { type: [ 'number', 'null' ] },
|
|
146
147
|
authentication_header: { type: [ 'string', 'null' ] },
|
|
147
148
|
backend_authentication_header: { type: [ 'string', 'null' ] },
|
|
148
149
|
backend_authentication_secret: { type: [ 'string', 'null' ] },
|
|
149
150
|
request_size_limit: { type: [ 'number', 'null' ] },
|
|
151
|
+
prometheus: {
|
|
152
|
+
type: [ 'object', 'null' ],
|
|
153
|
+
additionalProperties: false,
|
|
154
|
+
properties: {
|
|
155
|
+
enabled: {
|
|
156
|
+
type: [ 'boolean', 'null'],
|
|
157
|
+
default: false
|
|
158
|
+
},
|
|
159
|
+
bind: {
|
|
160
|
+
type: [ 'string', 'null' ],
|
|
161
|
+
default: '127.0.0.1'
|
|
162
|
+
},
|
|
163
|
+
port: {
|
|
164
|
+
type: [ 'number', 'null' ]
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
},
|
|
150
168
|
log: {
|
|
151
169
|
type: [ 'object', 'null' ],
|
|
152
170
|
additionalProperties: false,
|
package/src/Database.ts
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import * as
|
|
17
|
+
import * as Crypto from 'node:crypto';
|
|
18
18
|
import {DatabaseConnection} from './DatabaseConnection';
|
|
19
19
|
import { getInstance } from './instance';
|
|
20
20
|
import { IDatabasePosition } from './IDatabasePosition';
|
|
@@ -44,7 +44,7 @@ export abstract class Database<TDatabaseConfig, TConnectionAPI> {
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
public addSlave(slaveID: string, config: TDatabaseConfig): string {
|
|
47
|
-
let id = `SLAVE.${
|
|
47
|
+
let id = `SLAVE.${Crypto.randomUUID()}.${slaveID}`;
|
|
48
48
|
|
|
49
49
|
this.$clusterConfigMap[id] = config;
|
|
50
50
|
this._addNode(id, config);
|
package/src/Handler.ts
CHANGED
|
@@ -26,6 +26,7 @@ import { BaseLogger } from '@arashi/logger';
|
|
|
26
26
|
import { ResponseData } from './ResponseData';
|
|
27
27
|
import { NotImplementedError } from './NotImplementedError';
|
|
28
28
|
import { HTTPMethod } from './HTTPMethod';
|
|
29
|
+
import { IMetricHistogram, MetricStore } from './MetricStore';
|
|
29
30
|
|
|
30
31
|
const TAG: string = 'Handler';
|
|
31
32
|
|
|
@@ -41,6 +42,12 @@ export class Handler<
|
|
|
41
42
|
TDeleteResponse extends TSupportedResponseTypes = TSupportedResponseTypes
|
|
42
43
|
> {
|
|
43
44
|
|
|
45
|
+
private static $requestDuration: IMetricHistogram = MetricStore.getInstance().createHistogram({
|
|
46
|
+
name: 'storm_http_request_duration_seconds',
|
|
47
|
+
help: 'HTTP request duration in seconds',
|
|
48
|
+
labelNames: ['method', 'route', 'status']
|
|
49
|
+
});
|
|
50
|
+
|
|
44
51
|
private $app: TApplication;
|
|
45
52
|
|
|
46
53
|
/**
|
|
@@ -148,6 +155,7 @@ export class Handler<
|
|
|
148
155
|
|
|
149
156
|
public async get(request: Request<TGetRequest>, response: Response<TGetResponse>): Promise<void> {
|
|
150
157
|
let startTime: Date = new Date();
|
|
158
|
+
let stopTimer = Handler.$requestDuration.startTimer({ method: HTTPMethod.GET, route: request.getRoute() });
|
|
151
159
|
this._logRequestStart(request);
|
|
152
160
|
|
|
153
161
|
try {
|
|
@@ -159,11 +167,13 @@ export class Handler<
|
|
|
159
167
|
this.$handleResponseError(response as Response<StormError>, ex);
|
|
160
168
|
}
|
|
161
169
|
|
|
170
|
+
stopTimer({ status: String(response.getStatus()) });
|
|
162
171
|
this._logRequestEnd(request, response, new Date().getTime() - startTime.getTime());
|
|
163
172
|
}
|
|
164
173
|
|
|
165
174
|
public async put(request: Request<TPutRequest>, response: Response<TPutResponse>): Promise<void> {
|
|
166
175
|
let startTime: Date = new Date();
|
|
176
|
+
let stopTimer = Handler.$requestDuration.startTimer({ method: HTTPMethod.PUT, route: request.getRoute() });
|
|
167
177
|
this._logRequestStart(request);
|
|
168
178
|
|
|
169
179
|
try {
|
|
@@ -175,11 +185,13 @@ export class Handler<
|
|
|
175
185
|
this.$handleResponseError(response as Response<StormError>, ex);
|
|
176
186
|
}
|
|
177
187
|
|
|
188
|
+
stopTimer({ status: String(response.getStatus()) });
|
|
178
189
|
this._logRequestEnd(request, response, new Date().getTime() - startTime.getTime());
|
|
179
190
|
}
|
|
180
191
|
|
|
181
192
|
public async post(request: Request<TPostRequest>, response: Response<TPostResponse>): Promise<void> {
|
|
182
193
|
let startTime: Date = new Date();
|
|
194
|
+
let stopTimer = Handler.$requestDuration.startTimer({ method: HTTPMethod.POST, route: request.getRoute() });
|
|
183
195
|
this._logRequestStart(request);
|
|
184
196
|
|
|
185
197
|
try {
|
|
@@ -191,11 +203,13 @@ export class Handler<
|
|
|
191
203
|
this.$handleResponseError(response as Response<StormError>, ex);
|
|
192
204
|
}
|
|
193
205
|
|
|
206
|
+
stopTimer({ status: String(response.getStatus()) });
|
|
194
207
|
this._logRequestEnd(request, response, new Date().getTime() - startTime.getTime());
|
|
195
208
|
}
|
|
196
209
|
|
|
197
210
|
public async delete(request: Request<TDeleteRequest>, response: Response<TDeleteResponse>): Promise<void> {
|
|
198
211
|
let startTime: Date = new Date();
|
|
212
|
+
let stopTimer = Handler.$requestDuration.startTimer({ method: HTTPMethod.DELETE, route: request.getRoute() });
|
|
199
213
|
this._logRequestStart(request);
|
|
200
214
|
|
|
201
215
|
try {
|
|
@@ -207,6 +221,7 @@ export class Handler<
|
|
|
207
221
|
this.$handleResponseError(response as Response<StormError>, ex);
|
|
208
222
|
}
|
|
209
223
|
|
|
224
|
+
stopTimer({ status: String(response.getStatus()) });
|
|
210
225
|
this._logRequestEnd(request, response, new Date().getTime() - startTime.getTime());
|
|
211
226
|
}
|
|
212
227
|
|
package/src/IConfig.ts
CHANGED
|
@@ -42,13 +42,19 @@ export interface IConfig {
|
|
|
42
42
|
authentication_header?: string;
|
|
43
43
|
backend_authentication_header?: string;
|
|
44
44
|
backend_authentication_secret?: string;
|
|
45
|
+
|
|
46
|
+
prometheus?: {
|
|
47
|
+
enabled?: boolean;
|
|
48
|
+
bind?: string;
|
|
49
|
+
port?: number;
|
|
50
|
+
};
|
|
45
51
|
|
|
46
52
|
// Logging
|
|
47
53
|
log?: {
|
|
48
54
|
level?: LogLevel;
|
|
49
55
|
filters?: string[];
|
|
50
56
|
cloudwatch?: ICloudwatchConfig;
|
|
51
|
-
}
|
|
57
|
+
};
|
|
52
58
|
|
|
53
59
|
// Database
|
|
54
60
|
database?: {
|