@promster/express 5.1.3 → 7.0.2

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.
@@ -1,3 +1,3 @@
1
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, };
2
+ import { getSummary, getContentType, Prometheus, defaultRegister, defaultNormalizers, timing } from '@promster/metrics';
3
+ export { createMiddleware, getRequestRecorder, signalIsUp, signalIsNotUp, getSummary, getContentType, Prometheus, defaultRegister, defaultNormalizers, timing, };
@@ -51,12 +51,13 @@ 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);
55
- const shouldSkipMetricsByEnvironment = allDefaultedOptions.detectKubernetes === true && !metrics.isRunningInKubernetes();
56
- const metricTypes = metrics.createMetricTypes(allDefaultedOptions);
57
- const observeGc = metrics.createGcObserver(metricTypes);
58
- recordRequest = metrics.createRequestRecorder(metricTypes, allDefaultedOptions);
59
- upMetric = metricTypes === null || metricTypes === void 0 ? void 0 : metricTypes.up;
54
+ const allDefaultedOptions = merge__default["default"](metrics.createHttpMetrics.defaultOptions, metrics.createGcMetrics.defaultOptions, metrics.createRequestRecorder.defaultOptions, metrics.createGcObserver.defaultOptions, metrics.defaultNormalizers, options);
55
+ const shouldSkipMetricsByEnvironment = metrics.skipMetricsInEnvironment(allDefaultedOptions);
56
+ const httpMetrics = metrics.createHttpMetrics(allDefaultedOptions);
57
+ const gcMetrics = metrics.createGcMetrics(allDefaultedOptions);
58
+ const observeGc = metrics.createGcObserver(gcMetrics, allDefaultedOptions);
59
+ recordRequest = metrics.createRequestRecorder(httpMetrics, allDefaultedOptions);
60
+ upMetric = gcMetrics === null || gcMetrics === void 0 ? void 0 : gcMetrics.up;
60
61
  exposeOnLocals({
61
62
  app,
62
63
  key: 'Prometheus',
@@ -73,7 +74,7 @@ const createMiddleware = ({
73
74
  }
74
75
 
75
76
  return (request, response, next) => {
76
- const start = process.hrtime();
77
+ const requestTiming = metrics.timing.start();
77
78
  response.on('finish', () => {
78
79
  var _allDefaultedOptions$, _allDefaultedOptions$2, _request$headers$cont, _response$getHeader;
79
80
 
@@ -96,7 +97,7 @@ const createMiddleware = ({
96
97
  const responseContentLength = Number((_response$getHeader = response.getHeader('content-length')) !== null && _response$getHeader !== void 0 ? _response$getHeader : 0);
97
98
 
98
99
  if (!shouldSkipByRequest && !shouldSkipMetricsByEnvironment) {
99
- recordRequest(start, {
100
+ recordRequest(requestTiming, {
100
101
  labels,
101
102
  requestContentLength,
102
103
  responseContentLength
@@ -127,6 +128,10 @@ Object.defineProperty(exports, 'getSummary', {
127
128
  enumerable: true,
128
129
  get: function () { return metrics.getSummary; }
129
130
  });
131
+ Object.defineProperty(exports, 'timing', {
132
+ enumerable: true,
133
+ get: function () { return metrics.timing; }
134
+ });
130
135
  exports.createMiddleware = createMiddleware;
131
136
  exports.getRequestRecorder = getRequestRecorder;
132
137
  exports.signalIsNotUp = signalIsNotUp;
@@ -51,12 +51,13 @@ 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);
55
- const shouldSkipMetricsByEnvironment = allDefaultedOptions.detectKubernetes === true && !metrics.isRunningInKubernetes();
56
- const metricTypes = metrics.createMetricTypes(allDefaultedOptions);
57
- const observeGc = metrics.createGcObserver(metricTypes);
58
- recordRequest = metrics.createRequestRecorder(metricTypes, allDefaultedOptions);
59
- upMetric = metricTypes === null || metricTypes === void 0 ? void 0 : metricTypes.up;
54
+ const allDefaultedOptions = merge__default["default"](metrics.createHttpMetrics.defaultOptions, metrics.createGcMetrics.defaultOptions, metrics.createRequestRecorder.defaultOptions, metrics.createGcObserver.defaultOptions, metrics.defaultNormalizers, options);
55
+ const shouldSkipMetricsByEnvironment = metrics.skipMetricsInEnvironment(allDefaultedOptions);
56
+ const httpMetrics = metrics.createHttpMetrics(allDefaultedOptions);
57
+ const gcMetrics = metrics.createGcMetrics(allDefaultedOptions);
58
+ const observeGc = metrics.createGcObserver(gcMetrics, allDefaultedOptions);
59
+ recordRequest = metrics.createRequestRecorder(httpMetrics, allDefaultedOptions);
60
+ upMetric = gcMetrics === null || gcMetrics === void 0 ? void 0 : gcMetrics.up;
60
61
  exposeOnLocals({
61
62
  app,
62
63
  key: 'Prometheus',
@@ -73,7 +74,7 @@ const createMiddleware = ({
73
74
  }
74
75
 
75
76
  return (request, response, next) => {
76
- const start = process.hrtime();
77
+ const requestTiming = metrics.timing.start();
77
78
  response.on('finish', () => {
78
79
  var _allDefaultedOptions$, _allDefaultedOptions$2, _request$headers$cont, _response$getHeader;
79
80
 
@@ -96,7 +97,7 @@ const createMiddleware = ({
96
97
  const responseContentLength = Number((_response$getHeader = response.getHeader('content-length')) !== null && _response$getHeader !== void 0 ? _response$getHeader : 0);
97
98
 
98
99
  if (!shouldSkipByRequest && !shouldSkipMetricsByEnvironment) {
99
- recordRequest(start, {
100
+ recordRequest(requestTiming, {
100
101
  labels,
101
102
  requestContentLength,
102
103
  responseContentLength
@@ -127,6 +128,10 @@ Object.defineProperty(exports, 'getSummary', {
127
128
  enumerable: true,
128
129
  get: function () { return metrics.getSummary; }
129
130
  });
131
+ Object.defineProperty(exports, 'timing', {
132
+ enumerable: true,
133
+ get: function () { return metrics.timing; }
134
+ });
130
135
  exports.createMiddleware = createMiddleware;
131
136
  exports.getRequestRecorder = getRequestRecorder;
132
137
  exports.signalIsNotUp = signalIsNotUp;
package/package.json CHANGED
@@ -1,11 +1,10 @@
1
1
  {
2
2
  "name": "@promster/express",
3
- "version": "5.1.3",
3
+ "version": "7.0.2",
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",
7
7
  "types": "dist/promster-express.cjs.d.ts",
8
- "scripts": {},
9
8
  "files": [
10
9
  "readme.md",
11
10
  "package.json",
@@ -14,15 +13,16 @@
14
13
  "modules/**"
15
14
  ],
16
15
  "engines": {
17
- "node": ">=9",
18
- "npm": ">=3"
16
+ "node": ">=14",
17
+ "npm": ">=6"
19
18
  },
20
19
  "publishConfig": {
21
20
  "access": "public"
22
21
  },
23
22
  "repository": {
24
23
  "type": "git",
25
- "url": "git+https://github.com/tdeekens/promster.git"
24
+ "url": "https://github.com/tdeekens/promster.git",
25
+ "directory": "packages/express"
26
26
  },
27
27
  "author": "Tobias Deekens <nerd@tdeekens.name>",
28
28
  "license": "MIT",
@@ -36,11 +36,15 @@
36
36
  "prometheus"
37
37
  ],
38
38
  "dependencies": {
39
- "@promster/metrics": "^7.0.4",
39
+ "@promster/metrics": "^9.1.1",
40
40
  "merge-options": "3.0.4",
41
41
  "tslib": "2.3.1"
42
42
  },
43
43
  "devDependencies": {
44
- "@types/express": "4.17.13"
44
+ "@promster/server": "7.0.3",
45
+ "@types/express": "4.17.13",
46
+ "express": "4.17.1",
47
+ "node-fetch": "2.6.6",
48
+ "parse-prometheus-text-format": "1.1.1"
45
49
  }
46
50
  }
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/express`