@promster/hapi 7.0.0 → 8.0.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/dist/promster-hapi.cjs.dev.js +30 -19
- package/dist/promster-hapi.cjs.prod.js +30 -19
- package/package.json +8 -6
- package/readme.md +1 -2
|
@@ -13,13 +13,11 @@ var merge__default = /*#__PURE__*/_interopDefault(merge);
|
|
|
13
13
|
|
|
14
14
|
var pkg = {
|
|
15
15
|
name: "@promster/hapi",
|
|
16
|
-
version: "
|
|
16
|
+
version: "8.0.0",
|
|
17
17
|
description: "Hapi server integrations of promster",
|
|
18
18
|
main: "dist/promster-hapi.cjs.js",
|
|
19
19
|
typings: "dist/promster-hapi.cjs.d.ts",
|
|
20
20
|
types: "dist/promster-hapi.cjs.d.ts",
|
|
21
|
-
scripts: {
|
|
22
|
-
},
|
|
23
21
|
files: [
|
|
24
22
|
"readme.md",
|
|
25
23
|
"package.json",
|
|
@@ -36,7 +34,8 @@ var pkg = {
|
|
|
36
34
|
},
|
|
37
35
|
repository: {
|
|
38
36
|
type: "git",
|
|
39
|
-
url: "
|
|
37
|
+
url: "https://github.com/tdeekens/flopflip.git",
|
|
38
|
+
directory: "packages/hapi"
|
|
40
39
|
},
|
|
41
40
|
author: "Tobias Deekens <nerd@tdeekens.name>",
|
|
42
41
|
license: "MIT",
|
|
@@ -50,15 +49,17 @@ var pkg = {
|
|
|
50
49
|
"prometheus"
|
|
51
50
|
],
|
|
52
51
|
dependencies: {
|
|
53
|
-
"@promster/metrics": "^
|
|
52
|
+
"@promster/metrics": "^9.0.0",
|
|
54
53
|
"merge-options": "3.0.4",
|
|
55
54
|
semver: "7.3.5",
|
|
56
55
|
tslib: "2.3.1"
|
|
57
56
|
},
|
|
58
57
|
devDependencies: {
|
|
59
58
|
"@hapi/boom": "9.1.4",
|
|
60
|
-
"@
|
|
61
|
-
"@types
|
|
59
|
+
"@hapi/hapi": "20.2.1",
|
|
60
|
+
"@promster/types": "^3.2.0",
|
|
61
|
+
"@types/hapi__hapi": "20.0.9",
|
|
62
|
+
"parse-prometheus-text-format": "1.1.1"
|
|
62
63
|
}
|
|
63
64
|
};
|
|
64
65
|
|
|
@@ -116,12 +117,13 @@ const createPlugin = ({
|
|
|
116
117
|
} = {
|
|
117
118
|
options: undefined
|
|
118
119
|
}) => {
|
|
119
|
-
const
|
|
120
|
-
const shouldSkipMetricsByEnvironment =
|
|
121
|
-
const
|
|
122
|
-
const
|
|
123
|
-
|
|
124
|
-
|
|
120
|
+
const allDefaultedOptions = merge__default["default"](metrics.createHttpMetrics.defaultOptions, metrics.createGcMetrics.defaultOptions, metrics.createRequestRecorder.defaultOptions, metrics.createGcObserver.defaultOptions, metrics.defaultNormalizers, pluginOptions);
|
|
121
|
+
const shouldSkipMetricsByEnvironment = metrics.skipMetricsInEnvironment(allDefaultedOptions);
|
|
122
|
+
const httpMetrics = metrics.createHttpMetrics(allDefaultedOptions);
|
|
123
|
+
const gcMetrics = metrics.createGcMetrics(allDefaultedOptions);
|
|
124
|
+
const observeGc = metrics.createGcObserver(gcMetrics, allDefaultedOptions);
|
|
125
|
+
recordRequest = metrics.createRequestRecorder(httpMetrics, allDefaultedOptions);
|
|
126
|
+
upMetric = gcMetrics === null || gcMetrics === void 0 ? void 0 : gcMetrics.up;
|
|
125
127
|
|
|
126
128
|
if (!shouldSkipMetricsByEnvironment) {
|
|
127
129
|
observeGc();
|
|
@@ -145,17 +147,26 @@ const createPlugin = ({
|
|
|
145
147
|
};
|
|
146
148
|
|
|
147
149
|
const onResponseHandler = (request, response) => {
|
|
148
|
-
var
|
|
150
|
+
var _allDefaultedOptions$, _request$headers$cont, _request$headers, _request$response$hea, _request$response, _request$response$hea2, _allDefaultedOptions$2;
|
|
149
151
|
|
|
150
152
|
const labels = Object.assign({}, {
|
|
151
|
-
path:
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
153
|
+
path: allDefaultedOptions.normalizePath(extractPath(request), {
|
|
154
|
+
req: request,
|
|
155
|
+
res: response
|
|
156
|
+
}),
|
|
157
|
+
method: allDefaultedOptions.normalizeMethod(request.method, {
|
|
158
|
+
req: request,
|
|
159
|
+
res: response
|
|
160
|
+
}),
|
|
161
|
+
status_code: allDefaultedOptions.normalizeStatusCode(extractStatusCode(request), {
|
|
162
|
+
req: request,
|
|
163
|
+
res: response
|
|
164
|
+
})
|
|
165
|
+
}, (_allDefaultedOptions$ = allDefaultedOptions.getLabelValues) === null || _allDefaultedOptions$ === void 0 ? void 0 : _allDefaultedOptions$.call(allDefaultedOptions, request, {}));
|
|
155
166
|
const requestContentLength = Number((_request$headers$cont = request === null || request === void 0 ? void 0 : (_request$headers = request.headers) === null || _request$headers === void 0 ? void 0 : _request$headers['content-length']) !== null && _request$headers$cont !== void 0 ? _request$headers$cont : 0);
|
|
156
167
|
const responseContentLength = Number( // @ts-expect-error
|
|
157
168
|
(_request$response$hea = request === null || request === void 0 ? void 0 : (_request$response = request.response) === null || _request$response === void 0 ? void 0 : (_request$response$hea2 = _request$response.headers) === null || _request$response$hea2 === void 0 ? void 0 : _request$response$hea2['content-length']) !== null && _request$response$hea !== void 0 ? _request$response$hea : 0);
|
|
158
|
-
const shouldSkipByRequest = (
|
|
169
|
+
const shouldSkipByRequest = (_allDefaultedOptions$2 = allDefaultedOptions.skip) === null || _allDefaultedOptions$2 === void 0 ? void 0 : _allDefaultedOptions$2.call(allDefaultedOptions, request, response, labels);
|
|
159
170
|
|
|
160
171
|
if (!shouldSkipByRequest && !shouldSkipMetricsByEnvironment) {
|
|
161
172
|
recordRequest(request.plugins.promster.start, {
|
|
@@ -13,13 +13,11 @@ var merge__default = /*#__PURE__*/_interopDefault(merge);
|
|
|
13
13
|
|
|
14
14
|
var pkg = {
|
|
15
15
|
name: "@promster/hapi",
|
|
16
|
-
version: "
|
|
16
|
+
version: "8.0.0",
|
|
17
17
|
description: "Hapi server integrations of promster",
|
|
18
18
|
main: "dist/promster-hapi.cjs.js",
|
|
19
19
|
typings: "dist/promster-hapi.cjs.d.ts",
|
|
20
20
|
types: "dist/promster-hapi.cjs.d.ts",
|
|
21
|
-
scripts: {
|
|
22
|
-
},
|
|
23
21
|
files: [
|
|
24
22
|
"readme.md",
|
|
25
23
|
"package.json",
|
|
@@ -36,7 +34,8 @@ var pkg = {
|
|
|
36
34
|
},
|
|
37
35
|
repository: {
|
|
38
36
|
type: "git",
|
|
39
|
-
url: "
|
|
37
|
+
url: "https://github.com/tdeekens/flopflip.git",
|
|
38
|
+
directory: "packages/hapi"
|
|
40
39
|
},
|
|
41
40
|
author: "Tobias Deekens <nerd@tdeekens.name>",
|
|
42
41
|
license: "MIT",
|
|
@@ -50,15 +49,17 @@ var pkg = {
|
|
|
50
49
|
"prometheus"
|
|
51
50
|
],
|
|
52
51
|
dependencies: {
|
|
53
|
-
"@promster/metrics": "^
|
|
52
|
+
"@promster/metrics": "^9.0.0",
|
|
54
53
|
"merge-options": "3.0.4",
|
|
55
54
|
semver: "7.3.5",
|
|
56
55
|
tslib: "2.3.1"
|
|
57
56
|
},
|
|
58
57
|
devDependencies: {
|
|
59
58
|
"@hapi/boom": "9.1.4",
|
|
60
|
-
"@
|
|
61
|
-
"@types
|
|
59
|
+
"@hapi/hapi": "20.2.1",
|
|
60
|
+
"@promster/types": "^3.2.0",
|
|
61
|
+
"@types/hapi__hapi": "20.0.9",
|
|
62
|
+
"parse-prometheus-text-format": "1.1.1"
|
|
62
63
|
}
|
|
63
64
|
};
|
|
64
65
|
|
|
@@ -116,12 +117,13 @@ const createPlugin = ({
|
|
|
116
117
|
} = {
|
|
117
118
|
options: undefined
|
|
118
119
|
}) => {
|
|
119
|
-
const
|
|
120
|
-
const shouldSkipMetricsByEnvironment =
|
|
121
|
-
const
|
|
122
|
-
const
|
|
123
|
-
|
|
124
|
-
|
|
120
|
+
const allDefaultedOptions = merge__default["default"](metrics.createHttpMetrics.defaultOptions, metrics.createGcMetrics.defaultOptions, metrics.createRequestRecorder.defaultOptions, metrics.createGcObserver.defaultOptions, metrics.defaultNormalizers, pluginOptions);
|
|
121
|
+
const shouldSkipMetricsByEnvironment = metrics.skipMetricsInEnvironment(allDefaultedOptions);
|
|
122
|
+
const httpMetrics = metrics.createHttpMetrics(allDefaultedOptions);
|
|
123
|
+
const gcMetrics = metrics.createGcMetrics(allDefaultedOptions);
|
|
124
|
+
const observeGc = metrics.createGcObserver(gcMetrics, allDefaultedOptions);
|
|
125
|
+
recordRequest = metrics.createRequestRecorder(httpMetrics, allDefaultedOptions);
|
|
126
|
+
upMetric = gcMetrics === null || gcMetrics === void 0 ? void 0 : gcMetrics.up;
|
|
125
127
|
|
|
126
128
|
if (!shouldSkipMetricsByEnvironment) {
|
|
127
129
|
observeGc();
|
|
@@ -145,17 +147,26 @@ const createPlugin = ({
|
|
|
145
147
|
};
|
|
146
148
|
|
|
147
149
|
const onResponseHandler = (request, response) => {
|
|
148
|
-
var
|
|
150
|
+
var _allDefaultedOptions$, _request$headers$cont, _request$headers, _request$response$hea, _request$response, _request$response$hea2, _allDefaultedOptions$2;
|
|
149
151
|
|
|
150
152
|
const labels = Object.assign({}, {
|
|
151
|
-
path:
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
153
|
+
path: allDefaultedOptions.normalizePath(extractPath(request), {
|
|
154
|
+
req: request,
|
|
155
|
+
res: response
|
|
156
|
+
}),
|
|
157
|
+
method: allDefaultedOptions.normalizeMethod(request.method, {
|
|
158
|
+
req: request,
|
|
159
|
+
res: response
|
|
160
|
+
}),
|
|
161
|
+
status_code: allDefaultedOptions.normalizeStatusCode(extractStatusCode(request), {
|
|
162
|
+
req: request,
|
|
163
|
+
res: response
|
|
164
|
+
})
|
|
165
|
+
}, (_allDefaultedOptions$ = allDefaultedOptions.getLabelValues) === null || _allDefaultedOptions$ === void 0 ? void 0 : _allDefaultedOptions$.call(allDefaultedOptions, request, {}));
|
|
155
166
|
const requestContentLength = Number((_request$headers$cont = request === null || request === void 0 ? void 0 : (_request$headers = request.headers) === null || _request$headers === void 0 ? void 0 : _request$headers['content-length']) !== null && _request$headers$cont !== void 0 ? _request$headers$cont : 0);
|
|
156
167
|
const responseContentLength = Number( // @ts-expect-error
|
|
157
168
|
(_request$response$hea = request === null || request === void 0 ? void 0 : (_request$response = request.response) === null || _request$response === void 0 ? void 0 : (_request$response$hea2 = _request$response.headers) === null || _request$response$hea2 === void 0 ? void 0 : _request$response$hea2['content-length']) !== null && _request$response$hea !== void 0 ? _request$response$hea : 0);
|
|
158
|
-
const shouldSkipByRequest = (
|
|
169
|
+
const shouldSkipByRequest = (_allDefaultedOptions$2 = allDefaultedOptions.skip) === null || _allDefaultedOptions$2 === void 0 ? void 0 : _allDefaultedOptions$2.call(allDefaultedOptions, request, response, labels);
|
|
159
170
|
|
|
160
171
|
if (!shouldSkipByRequest && !shouldSkipMetricsByEnvironment) {
|
|
161
172
|
recordRequest(request.plugins.promster.start, {
|
package/package.json
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@promster/hapi",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0",
|
|
4
4
|
"description": "Hapi server integrations of promster",
|
|
5
5
|
"main": "dist/promster-hapi.cjs.js",
|
|
6
6
|
"typings": "dist/promster-hapi.cjs.d.ts",
|
|
7
7
|
"types": "dist/promster-hapi.cjs.d.ts",
|
|
8
|
-
"scripts": {},
|
|
9
8
|
"files": [
|
|
10
9
|
"readme.md",
|
|
11
10
|
"package.json",
|
|
@@ -22,7 +21,8 @@
|
|
|
22
21
|
},
|
|
23
22
|
"repository": {
|
|
24
23
|
"type": "git",
|
|
25
|
-
"url": "
|
|
24
|
+
"url": "https://github.com/tdeekens/flopflip.git",
|
|
25
|
+
"directory": "packages/hapi"
|
|
26
26
|
},
|
|
27
27
|
"author": "Tobias Deekens <nerd@tdeekens.name>",
|
|
28
28
|
"license": "MIT",
|
|
@@ -36,14 +36,16 @@
|
|
|
36
36
|
"prometheus"
|
|
37
37
|
],
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@promster/metrics": "^
|
|
39
|
+
"@promster/metrics": "^9.0.0",
|
|
40
40
|
"merge-options": "3.0.4",
|
|
41
41
|
"semver": "7.3.5",
|
|
42
42
|
"tslib": "2.3.1"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@hapi/boom": "9.1.4",
|
|
46
|
-
"@
|
|
47
|
-
"@types
|
|
46
|
+
"@hapi/hapi": "20.2.1",
|
|
47
|
+
"@promster/types": "^3.2.0",
|
|
48
|
+
"@types/hapi__hapi": "20.0.9",
|
|
49
|
+
"parse-prometheus-text-format": "1.1.1"
|
|
48
50
|
}
|
|
49
51
|
}
|
package/readme.md
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<b style="font-size: 25px">⏰ Promster - Measure metrics from Hapi/Express servers with Prometheus 🚦</b
|
|
3
|
-
<i>Promster is an Prometheus Exporter for Node.js servers written with Express or Hapi.</i>
|
|
2
|
+
<b style="font-size: 25px">⏰ Promster - Measure metrics from Hapi/Express servers with Prometheus 🚦</b>
|
|
4
3
|
</p>
|
|
5
4
|
|
|
6
5
|
### `@promster/hapi`
|