@promster/express 5.0.3 → 5.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
- import { createMiddleware, getRequestRecorder, signalIsUp, signalIsNotUp } from './middleware';
2
- import { getSummary, getContentType, Prometheus, defaultRegister, defaultNormalizers } from '@promster/metrics';
3
- export { createMiddleware, getRequestRecorder, signalIsUp, signalIsNotUp, getSummary, getContentType, Prometheus, defaultRegister, defaultNormalizers, };
1
+ import { createMiddleware, getRequestRecorder, signalIsUp, signalIsNotUp } from './middleware';
2
+ import { getSummary, getContentType, Prometheus, defaultRegister, defaultNormalizers } from '@promster/metrics';
3
+ export { createMiddleware, getRequestRecorder, signalIsUp, signalIsNotUp, getSummary, getContentType, Prometheus, defaultRegister, defaultNormalizers, };
@@ -1,2 +1,2 @@
1
- import { createMiddleware, getRequestRecorder, signalIsUp, signalIsNotUp } from './middleware';
2
- export { createMiddleware, signalIsUp, signalIsNotUp, getRequestRecorder };
1
+ import { createMiddleware, getRequestRecorder, signalIsUp, signalIsNotUp } from './middleware';
2
+ export { createMiddleware, signalIsUp, signalIsNotUp, getRequestRecorder };
@@ -1,23 +1,23 @@
1
- import type { TPromsterOptions } from '@promster/types';
2
- import type { TRequestRecorder } from '@promster/metrics';
3
- import { Application, Request, Response, NextFunction } from 'express';
4
- import { Prometheus } from '@promster/metrics';
5
- interface TApp extends Application {
6
- locals: Record<string, unknown>;
7
- }
8
- declare type TLocaleTarget = {
9
- app?: TApp;
10
- key: string;
11
- value: typeof Prometheus | TRequestRecorder;
12
- };
13
- declare const exposeOnLocals: ({ app, key, value }: TLocaleTarget) => void;
14
- declare const extractPath: (req: Request) => string;
15
- declare const getRequestRecorder: () => TRequestRecorder;
16
- declare const signalIsUp: () => void;
17
- declare const signalIsNotUp: () => void;
18
- declare type TMiddlewareOptions = {
19
- app?: TApp;
20
- options?: TPromsterOptions;
21
- };
22
- declare const createMiddleware: ({ app, options }?: TMiddlewareOptions) => (request: Request, response: Response, next: NextFunction) => void;
23
- export { createMiddleware, exposeOnLocals, extractPath, getRequestRecorder, signalIsUp, signalIsNotUp, };
1
+ import type { TPromsterOptions } from '@promster/types';
2
+ import type { TRequestRecorder } from '@promster/metrics';
3
+ import { Application, Request, Response, NextFunction } from 'express';
4
+ import { Prometheus } from '@promster/metrics';
5
+ interface TApp extends Application {
6
+ locals: Record<string, unknown>;
7
+ }
8
+ declare type TLocaleTarget = {
9
+ app?: TApp;
10
+ key: string;
11
+ value: typeof Prometheus | TRequestRecorder;
12
+ };
13
+ declare const exposeOnLocals: ({ app, key, value }: TLocaleTarget) => void;
14
+ declare const extractPath: (req: Request) => string;
15
+ declare const getRequestRecorder: () => TRequestRecorder;
16
+ declare const signalIsUp: () => void;
17
+ declare const signalIsNotUp: () => void;
18
+ declare type TMiddlewareOptions = {
19
+ app?: TApp;
20
+ options?: TPromsterOptions;
21
+ };
22
+ declare const createMiddleware: ({ app, options }?: TMiddlewareOptions) => (request: Request, response: Response, next: NextFunction) => void;
23
+ export { createMiddleware, exposeOnLocals, extractPath, getRequestRecorder, signalIsUp, signalIsNotUp, };
@@ -51,7 +51,7 @@ const createMiddleware = ({
51
51
  app: undefined,
52
52
  options: undefined
53
53
  }) => {
54
- const allDefaultedOptions = merge__default['default'](metrics.createMetricTypes.defaultOptions, metrics.createRequestRecorder.defaultOptions, metrics.defaultNormalizers, options);
54
+ const allDefaultedOptions = merge__default["default"](metrics.createMetricTypes.defaultOptions, metrics.createRequestRecorder.defaultOptions, metrics.defaultNormalizers, options);
55
55
  const shouldSkipMetricsByEnvironment = allDefaultedOptions.detectKubernetes === true && !metrics.isRunningInKubernetes();
56
56
  const metricTypes = metrics.createMetricTypes(allDefaultedOptions);
57
57
  const observeGc = metrics.createGcObserver(metricTypes);
@@ -75,7 +75,7 @@ const createMiddleware = ({
75
75
  return (request, response, next) => {
76
76
  const start = process.hrtime();
77
77
  response.on('finish', () => {
78
- var _allDefaultedOptions$, _allDefaultedOptions$2;
78
+ var _allDefaultedOptions$, _allDefaultedOptions$2, _request$headers$cont, _response$getHeader;
79
79
 
80
80
  const labels = Object.assign({}, {
81
81
  method: allDefaultedOptions.normalizeMethod(request.method, {
@@ -92,10 +92,14 @@ const createMiddleware = ({
92
92
  })
93
93
  }, (_allDefaultedOptions$ = allDefaultedOptions.getLabelValues) === null || _allDefaultedOptions$ === void 0 ? void 0 : _allDefaultedOptions$.call(allDefaultedOptions, request, response));
94
94
  const shouldSkipByRequest = (_allDefaultedOptions$2 = allDefaultedOptions.skip) === null || _allDefaultedOptions$2 === void 0 ? void 0 : _allDefaultedOptions$2.call(allDefaultedOptions, request, response, labels);
95
+ const requestContentLength = Number((_request$headers$cont = request.headers['content-length']) !== null && _request$headers$cont !== void 0 ? _request$headers$cont : 0);
96
+ const responseContentLength = Number((_response$getHeader = response.getHeader('content-length')) !== null && _response$getHeader !== void 0 ? _response$getHeader : 0);
95
97
 
96
98
  if (!shouldSkipByRequest && !shouldSkipMetricsByEnvironment) {
97
99
  recordRequest(start, {
98
- labels
100
+ labels,
101
+ requestContentLength,
102
+ responseContentLength
99
103
  });
100
104
  }
101
105
  });
@@ -105,33 +109,23 @@ const createMiddleware = ({
105
109
 
106
110
  Object.defineProperty(exports, 'Prometheus', {
107
111
  enumerable: true,
108
- get: function () {
109
- return metrics.Prometheus;
110
- }
112
+ get: function () { return metrics.Prometheus; }
111
113
  });
112
114
  Object.defineProperty(exports, 'defaultNormalizers', {
113
115
  enumerable: true,
114
- get: function () {
115
- return metrics.defaultNormalizers;
116
- }
116
+ get: function () { return metrics.defaultNormalizers; }
117
117
  });
118
118
  Object.defineProperty(exports, 'defaultRegister', {
119
119
  enumerable: true,
120
- get: function () {
121
- return metrics.defaultRegister;
122
- }
120
+ get: function () { return metrics.defaultRegister; }
123
121
  });
124
122
  Object.defineProperty(exports, 'getContentType', {
125
123
  enumerable: true,
126
- get: function () {
127
- return metrics.getContentType;
128
- }
124
+ get: function () { return metrics.getContentType; }
129
125
  });
130
126
  Object.defineProperty(exports, 'getSummary', {
131
127
  enumerable: true,
132
- get: function () {
133
- return metrics.getSummary;
134
- }
128
+ get: function () { return metrics.getSummary; }
135
129
  });
136
130
  exports.createMiddleware = createMiddleware;
137
131
  exports.getRequestRecorder = getRequestRecorder;
@@ -51,7 +51,7 @@ const createMiddleware = ({
51
51
  app: undefined,
52
52
  options: undefined
53
53
  }) => {
54
- const allDefaultedOptions = merge__default['default'](metrics.createMetricTypes.defaultOptions, metrics.createRequestRecorder.defaultOptions, metrics.defaultNormalizers, options);
54
+ const allDefaultedOptions = merge__default["default"](metrics.createMetricTypes.defaultOptions, metrics.createRequestRecorder.defaultOptions, metrics.defaultNormalizers, options);
55
55
  const shouldSkipMetricsByEnvironment = allDefaultedOptions.detectKubernetes === true && !metrics.isRunningInKubernetes();
56
56
  const metricTypes = metrics.createMetricTypes(allDefaultedOptions);
57
57
  const observeGc = metrics.createGcObserver(metricTypes);
@@ -75,7 +75,7 @@ const createMiddleware = ({
75
75
  return (request, response, next) => {
76
76
  const start = process.hrtime();
77
77
  response.on('finish', () => {
78
- var _allDefaultedOptions$, _allDefaultedOptions$2;
78
+ var _allDefaultedOptions$, _allDefaultedOptions$2, _request$headers$cont, _response$getHeader;
79
79
 
80
80
  const labels = Object.assign({}, {
81
81
  method: allDefaultedOptions.normalizeMethod(request.method, {
@@ -92,10 +92,14 @@ const createMiddleware = ({
92
92
  })
93
93
  }, (_allDefaultedOptions$ = allDefaultedOptions.getLabelValues) === null || _allDefaultedOptions$ === void 0 ? void 0 : _allDefaultedOptions$.call(allDefaultedOptions, request, response));
94
94
  const shouldSkipByRequest = (_allDefaultedOptions$2 = allDefaultedOptions.skip) === null || _allDefaultedOptions$2 === void 0 ? void 0 : _allDefaultedOptions$2.call(allDefaultedOptions, request, response, labels);
95
+ const requestContentLength = Number((_request$headers$cont = request.headers['content-length']) !== null && _request$headers$cont !== void 0 ? _request$headers$cont : 0);
96
+ const responseContentLength = Number((_response$getHeader = response.getHeader('content-length')) !== null && _response$getHeader !== void 0 ? _response$getHeader : 0);
95
97
 
96
98
  if (!shouldSkipByRequest && !shouldSkipMetricsByEnvironment) {
97
99
  recordRequest(start, {
98
- labels
100
+ labels,
101
+ requestContentLength,
102
+ responseContentLength
99
103
  });
100
104
  }
101
105
  });
@@ -105,33 +109,23 @@ const createMiddleware = ({
105
109
 
106
110
  Object.defineProperty(exports, 'Prometheus', {
107
111
  enumerable: true,
108
- get: function () {
109
- return metrics.Prometheus;
110
- }
112
+ get: function () { return metrics.Prometheus; }
111
113
  });
112
114
  Object.defineProperty(exports, 'defaultNormalizers', {
113
115
  enumerable: true,
114
- get: function () {
115
- return metrics.defaultNormalizers;
116
- }
116
+ get: function () { return metrics.defaultNormalizers; }
117
117
  });
118
118
  Object.defineProperty(exports, 'defaultRegister', {
119
119
  enumerable: true,
120
- get: function () {
121
- return metrics.defaultRegister;
122
- }
120
+ get: function () { return metrics.defaultRegister; }
123
121
  });
124
122
  Object.defineProperty(exports, 'getContentType', {
125
123
  enumerable: true,
126
- get: function () {
127
- return metrics.getContentType;
128
- }
124
+ get: function () { return metrics.getContentType; }
129
125
  });
130
126
  Object.defineProperty(exports, 'getSummary', {
131
127
  enumerable: true,
132
- get: function () {
133
- return metrics.getSummary;
134
- }
128
+ get: function () { return metrics.getSummary; }
135
129
  });
136
130
  exports.createMiddleware = createMiddleware;
137
131
  exports.getRequestRecorder = getRequestRecorder;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promster/express",
3
- "version": "5.0.3",
3
+ "version": "5.1.3",
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,11 +36,11 @@
36
36
  "prometheus"
37
37
  ],
38
38
  "dependencies": {
39
- "@promster/metrics": "^6.0.2",
39
+ "@promster/metrics": "^7.0.4",
40
40
  "merge-options": "3.0.4",
41
- "tslib": "2.2.0"
41
+ "tslib": "2.3.1"
42
42
  },
43
43
  "devDependencies": {
44
- "@types/express": "4.17.11"
44
+ "@types/express": "4.17.13"
45
45
  }
46
46
  }
package/CHANGELOG.md DELETED
@@ -1,100 +0,0 @@
1
- # @promster/express
2
-
3
- ## 5.0.3
4
-
5
- ### Patch Changes
6
-
7
- - [#620](https://github.com/tdeekens/promster/pull/620) [`ec2a8f8`](https://github.com/tdeekens/promster/commit/ec2a8f83a94bbe63360cf7027eeba92895315a19) Thanks [@tdeekens](https://github.com/tdeekens)! - refactor: improve typings (not exposed part)
8
-
9
- * [#618](https://github.com/tdeekens/promster/pull/618) [`bbab9ca`](https://github.com/tdeekens/promster/commit/bbab9cad6a3484e4894d159267d62e54e202812a) Thanks [@tdeekens](https://github.com/tdeekens)! - chore: update deps
10
-
11
- * Updated dependencies [[`ec2a8f8`](https://github.com/tdeekens/promster/commit/ec2a8f83a94bbe63360cf7027eeba92895315a19), [`bbab9ca`](https://github.com/tdeekens/promster/commit/bbab9cad6a3484e4894d159267d62e54e202812a)]:
12
- - @promster/metrics@6.0.2
13
-
14
- ## 5.0.2
15
-
16
- ### Patch Changes
17
-
18
- - [#601](https://github.com/tdeekens/promster/pull/601) [`17a24dc`](https://github.com/tdeekens/promster/commit/17a24dc0d735478001524c853b9f54f862153852) Thanks [@tdeekens](https://github.com/tdeekens)! - Update dependencies and apply eslint rule suggestions.
19
-
20
- - Updated dependencies [[`17a24dc`](https://github.com/tdeekens/promster/commit/17a24dc0d735478001524c853b9f54f862153852)]:
21
- - @promster/metrics@6.0.1
22
-
23
- ## 5.0.1
24
-
25
- ### Patch Changes
26
-
27
- - Updated dependencies [[`daf8605`](https://github.com/tdeekens/promster/commit/daf86055e64cb420c83dbc7abbcd5024d449c53f)]:
28
- - @promster/metrics@6.0.0
29
-
30
- ## 5.0.0
31
-
32
- ### Major Changes
33
-
34
- - [`0eb64ca`](https://github.com/tdeekens/promster/commit/0eb64cac9a4a51dab1a556f46c97a2a5542bcc88) [#529](https://github.com/tdeekens/promster/pull/529) Thanks [@tdeekens](https://github.com/tdeekens)! - # Introduction
35
-
36
- refactor: to use preconstruct for building
37
-
38
- Prior TypeScript was used to build bundles. In all this should not affect consumers of this library. Under the hood preconstruct uses rollup and babel which is now instructed to build for Node.js v12 using the preset-env preset.
39
-
40
- # Breaking Change
41
-
42
- This release can _potentially_ be breaking for you. We want to respect semantic versioning and follow it strictly.
43
-
44
- While migrating to preconstruct the `version` exports had to be removed as preconstruct's rollup will not resolve them. If you relied on this value you should either load the `package.json` of each module yourself or drop the usage.
45
-
46
- ```diff
47
- - const { version } = require('@promster/server');
48
- + const { version } = require('@promster/server/package.json');
49
- ```
50
-
51
- ### Patch Changes
52
-
53
- - [`bdf75de`](https://github.com/tdeekens/promster/commit/bdf75dec8d0ce6be65ecccf5963f348e1a0a96b3) [#531](https://github.com/tdeekens/promster/pull/531) Thanks [@tdeekens](https://github.com/tdeekens)! - fix: update dependencies
54
-
55
- - Updated dependencies [[`bdf75de`](https://github.com/tdeekens/promster/commit/bdf75dec8d0ce6be65ecccf5963f348e1a0a96b3), [`0eb64ca`](https://github.com/tdeekens/promster/commit/0eb64cac9a4a51dab1a556f46c97a2a5542bcc88)]:
56
- - @promster/metrics@5.0.0
57
-
58
- ## 4.1.15
59
-
60
- ### Patch Changes
61
-
62
- - [`a0dc407`](https://github.com/tdeekens/promster/commit/a0dc407f1ceca1129942b30b7149a0d4e2b5fef8) [#500](https://github.com/tdeekens/promster/pull/500) Thanks [@natoehv](https://github.com/natoehv)! - changed TApp typing
63
-
64
- ## 4.1.14
65
-
66
- ### Patch Changes
67
-
68
- - [`4c3af06`](https://github.com/tdeekens/promster/commit/4c3af06bc0b65eb067f195591e48839e632375bd) [#483](https://github.com/tdeekens/promster/pull/483) Thanks [@tdeekens](https://github.com/tdeekens)! - chore: update dependencies
69
-
70
- - Updated dependencies [[`4c3af06`](https://github.com/tdeekens/promster/commit/4c3af06bc0b65eb067f195591e48839e632375bd)]:
71
- - @promster/metrics@4.1.13
72
-
73
- ## 4.1.13
74
-
75
- ### Patch Changes
76
-
77
- - [`158e7b9`](https://github.com/tdeekens/promster/commit/158e7b9af01133db54376bb96dbdccdd96bfa7a3) Thanks [@tdeekens](https://github.com/tdeekens)! - Dependency updates across all packages
78
-
79
- - Updated dependencies [[`158e7b9`](https://github.com/tdeekens/promster/commit/158e7b9af01133db54376bb96dbdccdd96bfa7a3)]:
80
- - @promster/metrics@4.1.12
81
-
82
- ## 4.1.12
83
-
84
- ### Patch Changes
85
-
86
- - [`7853faa`](https://github.com/tdeekens/promster/commit/7853faa4e140eaae0622fb7c66d8145d258d7f5e) [#447](https://github.com/tdeekens/promster/pull/447) Thanks [@tdeekens](https://github.com/tdeekens)! - chore: update deps
87
-
88
- - Updated dependencies [[`7853faa`](https://github.com/tdeekens/promster/commit/7853faa4e140eaae0622fb7c66d8145d258d7f5e)]:
89
- - @promster/metrics@4.1.11
90
-
91
- ## 4.1.11
92
-
93
- ### Patch Changes
94
-
95
- - [`c2b8e0d`](https://github.com/tdeekens/promster/commit/c2b8e0d472b6e31e053460d8f714eaf790a17eb9) [#358](https://github.com/tdeekens/promster/pull/358) Thanks [@tdeekens](https://github.com/tdeekens)! - Update dependencies.
96
-
97
- * [`6f99f64`](https://github.com/tdeekens/promster/commit/6f99f644ccd2cd0b60c172968266c3ac3f76e826) [#360](https://github.com/tdeekens/promster/pull/360) Thanks [@tdeekens](https://github.com/tdeekens)! - Update to eslint v7
98
-
99
- * Updated dependencies [[`c2b8e0d`](https://github.com/tdeekens/promster/commit/c2b8e0d472b6e31e053460d8f714eaf790a17eb9), [`6f99f64`](https://github.com/tdeekens/promster/commit/6f99f644ccd2cd0b60c172968266c3ac3f76e826)]:
100
- - @promster/metrics@4.1.10