@promster/express 7.0.5 → 7.0.6
Sign up to get free protection for your applications and to get access to all the features.
@@ -1,11 +1,11 @@
|
|
1
1
|
import type { TPromsterOptions } from '@promster/types';
|
2
2
|
import type { TRequestRecorder } from '@promster/metrics';
|
3
|
-
import { Application, Request, Response, NextFunction } from 'express';
|
3
|
+
import type { Application, Request, Response, NextFunction } from 'express';
|
4
4
|
import { Prometheus } from '@promster/metrics';
|
5
5
|
interface TApp extends Application {
|
6
6
|
locals: Record<string, unknown>;
|
7
7
|
}
|
8
|
-
|
8
|
+
type TLocaleTarget = {
|
9
9
|
app?: TApp;
|
10
10
|
key: string;
|
11
11
|
value: typeof Prometheus | TRequestRecorder;
|
@@ -15,7 +15,7 @@ declare const extractPath: (req: Request) => string;
|
|
15
15
|
declare const getRequestRecorder: () => TRequestRecorder;
|
16
16
|
declare const signalIsUp: () => void;
|
17
17
|
declare const signalIsNotUp: () => void;
|
18
|
-
|
18
|
+
type TMiddlewareOptions = {
|
19
19
|
app?: TApp;
|
20
20
|
options?: TPromsterOptions;
|
21
21
|
};
|
@@ -9,6 +9,8 @@ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e };
|
|
9
9
|
|
10
10
|
var merge__default = /*#__PURE__*/_interopDefault(merge);
|
11
11
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-definitions
|
13
|
+
|
12
14
|
const exposeOnLocals = ({
|
13
15
|
app,
|
14
16
|
key,
|
@@ -16,34 +18,26 @@ const exposeOnLocals = ({
|
|
16
18
|
}) => {
|
17
19
|
if (app !== null && app !== void 0 && app.locals) app.locals[key] = value;
|
18
20
|
};
|
19
|
-
|
20
21
|
const extractPath = req => req.originalUrl || req.url;
|
21
|
-
|
22
22
|
let recordRequest;
|
23
23
|
let upMetric;
|
24
|
-
|
25
24
|
const getRequestRecorder = () => recordRequest;
|
26
|
-
|
27
25
|
const signalIsUp = () => {
|
28
26
|
if (!upMetric) {
|
29
27
|
return;
|
30
28
|
}
|
31
|
-
|
32
29
|
upMetric.forEach(upMetricType => {
|
33
30
|
upMetricType.set(1);
|
34
31
|
});
|
35
32
|
};
|
36
|
-
|
37
33
|
const signalIsNotUp = () => {
|
38
34
|
if (!upMetric) {
|
39
35
|
return;
|
40
36
|
}
|
41
|
-
|
42
37
|
upMetric.forEach(upMetricType => {
|
43
38
|
upMetricType.set(0);
|
44
39
|
});
|
45
40
|
};
|
46
|
-
|
47
41
|
const createMiddleware = ({
|
48
42
|
app,
|
49
43
|
options
|
@@ -68,16 +62,13 @@ const createMiddleware = ({
|
|
68
62
|
key: 'recordRequest',
|
69
63
|
value: recordRequest
|
70
64
|
});
|
71
|
-
|
72
65
|
if (!shouldSkipMetricsByEnvironment) {
|
73
66
|
observeGc();
|
74
67
|
}
|
75
|
-
|
76
68
|
return (request, response, next) => {
|
77
69
|
const requestTiming = metrics.timing.start();
|
78
70
|
response.on('finish', () => {
|
79
71
|
var _allDefaultedOptions$, _allDefaultedOptions$2, _request$headers$cont, _response$getHeader;
|
80
|
-
|
81
72
|
const labels = Object.assign({}, {
|
82
73
|
method: allDefaultedOptions.normalizeMethod(request.method, {
|
83
74
|
req: request,
|
@@ -95,7 +86,6 @@ const createMiddleware = ({
|
|
95
86
|
const shouldSkipByRequest = (_allDefaultedOptions$2 = allDefaultedOptions.skip) === null || _allDefaultedOptions$2 === void 0 ? void 0 : _allDefaultedOptions$2.call(allDefaultedOptions, request, response, labels);
|
96
87
|
const requestContentLength = Number((_request$headers$cont = request.headers['content-length']) !== null && _request$headers$cont !== void 0 ? _request$headers$cont : 0);
|
97
88
|
const responseContentLength = Number((_response$getHeader = response.getHeader('content-length')) !== null && _response$getHeader !== void 0 ? _response$getHeader : 0);
|
98
|
-
|
99
89
|
if (!shouldSkipByRequest && !shouldSkipMetricsByEnvironment) {
|
100
90
|
recordRequest(requestTiming, {
|
101
91
|
labels,
|
@@ -9,6 +9,8 @@ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e };
|
|
9
9
|
|
10
10
|
var merge__default = /*#__PURE__*/_interopDefault(merge);
|
11
11
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-definitions
|
13
|
+
|
12
14
|
const exposeOnLocals = ({
|
13
15
|
app,
|
14
16
|
key,
|
@@ -16,34 +18,26 @@ const exposeOnLocals = ({
|
|
16
18
|
}) => {
|
17
19
|
if (app !== null && app !== void 0 && app.locals) app.locals[key] = value;
|
18
20
|
};
|
19
|
-
|
20
21
|
const extractPath = req => req.originalUrl || req.url;
|
21
|
-
|
22
22
|
let recordRequest;
|
23
23
|
let upMetric;
|
24
|
-
|
25
24
|
const getRequestRecorder = () => recordRequest;
|
26
|
-
|
27
25
|
const signalIsUp = () => {
|
28
26
|
if (!upMetric) {
|
29
27
|
return;
|
30
28
|
}
|
31
|
-
|
32
29
|
upMetric.forEach(upMetricType => {
|
33
30
|
upMetricType.set(1);
|
34
31
|
});
|
35
32
|
};
|
36
|
-
|
37
33
|
const signalIsNotUp = () => {
|
38
34
|
if (!upMetric) {
|
39
35
|
return;
|
40
36
|
}
|
41
|
-
|
42
37
|
upMetric.forEach(upMetricType => {
|
43
38
|
upMetricType.set(0);
|
44
39
|
});
|
45
40
|
};
|
46
|
-
|
47
41
|
const createMiddleware = ({
|
48
42
|
app,
|
49
43
|
options
|
@@ -68,16 +62,13 @@ const createMiddleware = ({
|
|
68
62
|
key: 'recordRequest',
|
69
63
|
value: recordRequest
|
70
64
|
});
|
71
|
-
|
72
65
|
if (!shouldSkipMetricsByEnvironment) {
|
73
66
|
observeGc();
|
74
67
|
}
|
75
|
-
|
76
68
|
return (request, response, next) => {
|
77
69
|
const requestTiming = metrics.timing.start();
|
78
70
|
response.on('finish', () => {
|
79
71
|
var _allDefaultedOptions$, _allDefaultedOptions$2, _request$headers$cont, _response$getHeader;
|
80
|
-
|
81
72
|
const labels = Object.assign({}, {
|
82
73
|
method: allDefaultedOptions.normalizeMethod(request.method, {
|
83
74
|
req: request,
|
@@ -95,7 +86,6 @@ const createMiddleware = ({
|
|
95
86
|
const shouldSkipByRequest = (_allDefaultedOptions$2 = allDefaultedOptions.skip) === null || _allDefaultedOptions$2 === void 0 ? void 0 : _allDefaultedOptions$2.call(allDefaultedOptions, request, response, labels);
|
96
87
|
const requestContentLength = Number((_request$headers$cont = request.headers['content-length']) !== null && _request$headers$cont !== void 0 ? _request$headers$cont : 0);
|
97
88
|
const responseContentLength = Number((_response$getHeader = response.getHeader('content-length')) !== null && _response$getHeader !== void 0 ? _response$getHeader : 0);
|
98
|
-
|
99
89
|
if (!shouldSkipByRequest && !shouldSkipMetricsByEnvironment) {
|
100
90
|
recordRequest(requestTiming, {
|
101
91
|
labels,
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@promster/express",
|
3
|
-
"version": "7.0.
|
3
|
+
"version": "7.0.6",
|
4
4
|
"description": "Express server integrations of promster",
|
5
5
|
"main": "dist/promster-express.cjs.js",
|
6
6
|
"typings": "dist/promster-express.cjs.d.ts",
|
@@ -36,14 +36,14 @@
|
|
36
36
|
"prometheus"
|
37
37
|
],
|
38
38
|
"dependencies": {
|
39
|
-
"@promster/metrics": "^9.1.
|
39
|
+
"@promster/metrics": "^9.1.6",
|
40
40
|
"merge-options": "3.0.4",
|
41
|
-
"tslib": "2.
|
41
|
+
"tslib": "2.4.1"
|
42
42
|
},
|
43
43
|
"devDependencies": {
|
44
|
-
"@promster/server": "7.0.
|
45
|
-
"@types/express": "4.17.
|
46
|
-
"express": "4.
|
44
|
+
"@promster/server": "7.0.8",
|
45
|
+
"@types/express": "4.17.14",
|
46
|
+
"express": "4.18.2",
|
47
47
|
"node-fetch": "2.6.7",
|
48
48
|
"parse-prometheus-text-format": "1.1.1"
|
49
49
|
}
|