@promster/express 5.1.2 → 7.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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.2",
3
+ "version": "7.0.1",
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/flopflip.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.2",
39
+ "@promster/metrics": "^9.1.0",
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.2",
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`