@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.
@@ -13,13 +13,11 @@ var merge__default = /*#__PURE__*/_interopDefault(merge);
13
13
 
14
14
  var pkg = {
15
15
  name: "@promster/hapi",
16
- version: "7.0.0",
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: "git+https://github.com/tdeekens/promster.git"
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": "^8.0.0",
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
- "@promster/types": "^3.1.5",
61
- "@types/hapi__hapi": "20.0.9"
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 defaultedOptions = merge__default["default"](metrics.createMetricTypes.defaultOptions, metrics.createRequestRecorder.defaultOptions, metrics.defaultNormalizers, pluginOptions);
120
- const shouldSkipMetricsByEnvironment = defaultedOptions.detectKubernetes && !metrics.isRunningInKubernetes();
121
- const metricTypes = metrics.createMetricTypes(defaultedOptions);
122
- const observeGc = metrics.createGcObserver(metricTypes);
123
- recordRequest = metrics.createRequestRecorder(metricTypes, defaultedOptions);
124
- upMetric = metricTypes === null || metricTypes === void 0 ? void 0 : metricTypes.up;
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 _defaultedOptions$get, _request$headers$cont, _request$headers, _request$response$hea, _request$response, _request$response$hea2, _defaultedOptions$ski;
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: defaultedOptions.normalizePath(extractPath(request)),
152
- method: defaultedOptions.normalizeMethod(request.method),
153
- status_code: defaultedOptions.normalizeStatusCode(extractStatusCode(request))
154
- }, (_defaultedOptions$get = defaultedOptions.getLabelValues) === null || _defaultedOptions$get === void 0 ? void 0 : _defaultedOptions$get.call(defaultedOptions, request, {}));
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 = (_defaultedOptions$ski = defaultedOptions.skip) === null || _defaultedOptions$ski === void 0 ? void 0 : _defaultedOptions$ski.call(defaultedOptions, request, response, labels);
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: "7.0.0",
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: "git+https://github.com/tdeekens/promster.git"
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": "^8.0.0",
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
- "@promster/types": "^3.1.5",
61
- "@types/hapi__hapi": "20.0.9"
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 defaultedOptions = merge__default["default"](metrics.createMetricTypes.defaultOptions, metrics.createRequestRecorder.defaultOptions, metrics.defaultNormalizers, pluginOptions);
120
- const shouldSkipMetricsByEnvironment = defaultedOptions.detectKubernetes && !metrics.isRunningInKubernetes();
121
- const metricTypes = metrics.createMetricTypes(defaultedOptions);
122
- const observeGc = metrics.createGcObserver(metricTypes);
123
- recordRequest = metrics.createRequestRecorder(metricTypes, defaultedOptions);
124
- upMetric = metricTypes === null || metricTypes === void 0 ? void 0 : metricTypes.up;
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 _defaultedOptions$get, _request$headers$cont, _request$headers, _request$response$hea, _request$response, _request$response$hea2, _defaultedOptions$ski;
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: defaultedOptions.normalizePath(extractPath(request)),
152
- method: defaultedOptions.normalizeMethod(request.method),
153
- status_code: defaultedOptions.normalizeStatusCode(extractStatusCode(request))
154
- }, (_defaultedOptions$get = defaultedOptions.getLabelValues) === null || _defaultedOptions$get === void 0 ? void 0 : _defaultedOptions$get.call(defaultedOptions, request, {}));
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 = (_defaultedOptions$ski = defaultedOptions.skip) === null || _defaultedOptions$ski === void 0 ? void 0 : _defaultedOptions$ski.call(defaultedOptions, request, response, labels);
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": "7.0.0",
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": "git+https://github.com/tdeekens/promster.git"
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": "^8.0.0",
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
- "@promster/types": "^3.1.5",
47
- "@types/hapi__hapi": "20.0.9"
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><br />
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`