@promster/apollo 1.0.6 → 1.0.8

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.
@@ -4,7 +4,7 @@ import type { TRequestRecorder } from '@promster/metrics';
4
4
  declare const getRequestRecorder: () => TRequestRecorder;
5
5
  declare const signalIsUp: () => void;
6
6
  declare const signalIsNotUp: () => void;
7
- declare type TPluginOptions = {
7
+ type TPluginOptions = {
8
8
  options?: TPromsterOptions;
9
9
  };
10
10
  declare const createPlugin: ({ options }?: TPluginOptions) => ApolloServerPlugin<import("apollo-server-types").BaseContext>;
@@ -10,27 +10,22 @@ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e };
10
10
  var merge__default = /*#__PURE__*/_interopDefault(merge);
11
11
 
12
12
  let upMetric;
13
-
14
13
  const signalIsUp = () => {
15
14
  if (!upMetric) {
16
15
  return;
17
16
  }
18
-
19
17
  upMetric.forEach(upMetricType => {
20
18
  upMetricType.set(1);
21
19
  });
22
20
  };
23
-
24
21
  const signalIsNotUp = () => {
25
22
  if (!upMetric) {
26
23
  return;
27
24
  }
28
-
29
25
  upMetric.forEach(upMetricType => {
30
26
  upMetricType.set(0);
31
27
  });
32
28
  };
33
-
34
29
  const createPlugin = ({
35
30
  options
36
31
  } = {
@@ -44,26 +39,20 @@ const createPlugin = ({
44
39
  const graphQlMetrics = metrics.createGraphQlMetrics(allDefaultedOptions);
45
40
  const observeGc = metrics.createGcObserver(gcMetrics, allDefaultedOptions);
46
41
  upMetric = gcMetrics === null || gcMetrics === void 0 ? void 0 : gcMetrics.up;
47
-
48
42
  if (!shouldSkipMetricsByEnvironment && !(options !== null && options !== void 0 && options.disableGcMetrics)) {
49
43
  observeGc();
50
44
  }
51
-
52
45
  function getDefaultLabelsOrSkipMeasurement(requestContext) {
53
46
  var _allDefaultedOptions$, _allDefaultedOptions$2;
54
-
55
47
  const labels = Object.assign({}, {
56
48
  operation_name: requestContext.request.operationName
57
49
  }, (_allDefaultedOptions$ = allDefaultedOptions.getLabelValues) === null || _allDefaultedOptions$ === void 0 ? void 0 : _allDefaultedOptions$.call(allDefaultedOptions, requestContext.request, requestContext.response));
58
50
  const shouldSkipByRequest = (_allDefaultedOptions$2 = allDefaultedOptions.skip) === null || _allDefaultedOptions$2 === void 0 ? void 0 : _allDefaultedOptions$2.call(allDefaultedOptions, requestContext.request, requestContext.response, labels);
59
-
60
51
  if (shouldSkipByRequest || shouldSkipMetricsByEnvironment) {
61
52
  return {};
62
53
  }
63
-
64
54
  return labels;
65
55
  }
66
-
67
56
  const plugin = {
68
57
  async serverWillStart() {
69
58
  signalIsUp();
@@ -71,10 +60,8 @@ const createPlugin = ({
71
60
  async serverWillStop() {
72
61
  signalIsNotUp();
73
62
  }
74
-
75
63
  };
76
64
  },
77
-
78
65
  async requestDidStart() {
79
66
  const requestTiming = metrics.timing.start();
80
67
  return {
@@ -85,18 +72,14 @@ const createPlugin = ({
85
72
  seconds: parseDurationSeconds
86
73
  } = parseTiming.end().value();
87
74
  const labels = getDefaultLabelsOrSkipMeasurement(parsingRequestContext);
88
-
89
75
  if (parseDurationSeconds !== undefined) {
90
76
  var _graphQlMetrics$graph;
91
-
92
77
  (_graphQlMetrics$graph = graphQlMetrics.graphQlParseDuration) === null || _graphQlMetrics$graph === void 0 ? void 0 : _graphQlMetrics$graph.forEach(metric => {
93
78
  metric.observe(labels, parseDurationSeconds);
94
79
  });
95
80
  }
96
-
97
81
  if (error) {
98
82
  var _graphQlMetrics$graph2;
99
-
100
83
  (_graphQlMetrics$graph2 = graphQlMetrics.graphQlErrorsTotal) === null || _graphQlMetrics$graph2 === void 0 ? void 0 : _graphQlMetrics$graph2.forEach(metric => {
101
84
  metric.inc(Object.assign({}, labels, {
102
85
  phase: 'parsing'
@@ -105,7 +88,6 @@ const createPlugin = ({
105
88
  }
106
89
  };
107
90
  },
108
-
109
91
  async validationDidStart(validationRequestContext) {
110
92
  const validationTiming = metrics.timing.start();
111
93
  return async error => {
@@ -113,18 +95,14 @@ const createPlugin = ({
113
95
  seconds: validationDurationSeconds
114
96
  } = validationTiming.end().value();
115
97
  const labels = getDefaultLabelsOrSkipMeasurement(validationRequestContext);
116
-
117
98
  if (validationDurationSeconds !== undefined) {
118
99
  var _graphQlMetrics$graph3;
119
-
120
100
  (_graphQlMetrics$graph3 = graphQlMetrics.graphQlValidationDuration) === null || _graphQlMetrics$graph3 === void 0 ? void 0 : _graphQlMetrics$graph3.forEach(metric => {
121
101
  metric.observe(labels, validationDurationSeconds);
122
102
  });
123
103
  }
124
-
125
104
  if (error) {
126
105
  var _graphQlMetrics$graph4;
127
-
128
106
  (_graphQlMetrics$graph4 = graphQlMetrics.graphQlErrorsTotal) === null || _graphQlMetrics$graph4 === void 0 ? void 0 : _graphQlMetrics$graph4.forEach(metric => {
129
107
  metric.inc(Object.assign({}, labels, {
130
108
  phase: 'validation'
@@ -133,7 +111,6 @@ const createPlugin = ({
133
111
  }
134
112
  };
135
113
  },
136
-
137
114
  async executionDidStart(executionRequestContext) {
138
115
  return {
139
116
  willResolveField({
@@ -148,18 +125,14 @@ const createPlugin = ({
148
125
  const labels = Object.assign({}, defaultLabels, {
149
126
  field_name: info.fieldName
150
127
  });
151
-
152
128
  if (fieldResolveDurationSeconds !== undefined) {
153
129
  var _graphQlMetrics$graph5;
154
-
155
130
  (_graphQlMetrics$graph5 = graphQlMetrics.graphQlResolveFieldDuration) === null || _graphQlMetrics$graph5 === void 0 ? void 0 : _graphQlMetrics$graph5.forEach(metric => {
156
131
  metric.observe(labels, fieldResolveDurationSeconds);
157
132
  });
158
133
  }
159
-
160
134
  if (error) {
161
135
  var _graphQlMetrics$graph6;
162
-
163
136
  (_graphQlMetrics$graph6 = graphQlMetrics.graphQlErrorsTotal) === null || _graphQlMetrics$graph6 === void 0 ? void 0 : _graphQlMetrics$graph6.forEach(metric => {
164
137
  metric.inc(Object.assign({}, labels, {
165
138
  phase: 'execution'
@@ -168,28 +141,22 @@ const createPlugin = ({
168
141
  }
169
142
  };
170
143
  }
171
-
172
144
  };
173
145
  },
174
-
175
146
  async willSendResponse(responseRequestContext) {
176
147
  const {
177
148
  seconds: requestDurationSeconds
178
149
  } = requestTiming.end().value();
179
150
  const labels = getDefaultLabelsOrSkipMeasurement(responseRequestContext);
180
-
181
151
  if (requestDurationSeconds !== undefined) {
182
152
  var _graphQlMetrics$graph7;
183
-
184
153
  (_graphQlMetrics$graph7 = graphQlMetrics.graphQlRequestDuration) === null || _graphQlMetrics$graph7 === void 0 ? void 0 : _graphQlMetrics$graph7.forEach(metric => {
185
154
  metric.observe(labels, requestDurationSeconds);
186
155
  });
187
156
  }
188
157
  }
189
-
190
158
  };
191
159
  }
192
-
193
160
  };
194
161
  return plugin;
195
162
  };
@@ -10,27 +10,22 @@ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e };
10
10
  var merge__default = /*#__PURE__*/_interopDefault(merge);
11
11
 
12
12
  let upMetric;
13
-
14
13
  const signalIsUp = () => {
15
14
  if (!upMetric) {
16
15
  return;
17
16
  }
18
-
19
17
  upMetric.forEach(upMetricType => {
20
18
  upMetricType.set(1);
21
19
  });
22
20
  };
23
-
24
21
  const signalIsNotUp = () => {
25
22
  if (!upMetric) {
26
23
  return;
27
24
  }
28
-
29
25
  upMetric.forEach(upMetricType => {
30
26
  upMetricType.set(0);
31
27
  });
32
28
  };
33
-
34
29
  const createPlugin = ({
35
30
  options
36
31
  } = {
@@ -44,26 +39,20 @@ const createPlugin = ({
44
39
  const graphQlMetrics = metrics.createGraphQlMetrics(allDefaultedOptions);
45
40
  const observeGc = metrics.createGcObserver(gcMetrics, allDefaultedOptions);
46
41
  upMetric = gcMetrics === null || gcMetrics === void 0 ? void 0 : gcMetrics.up;
47
-
48
42
  if (!shouldSkipMetricsByEnvironment && !(options !== null && options !== void 0 && options.disableGcMetrics)) {
49
43
  observeGc();
50
44
  }
51
-
52
45
  function getDefaultLabelsOrSkipMeasurement(requestContext) {
53
46
  var _allDefaultedOptions$, _allDefaultedOptions$2;
54
-
55
47
  const labels = Object.assign({}, {
56
48
  operation_name: requestContext.request.operationName
57
49
  }, (_allDefaultedOptions$ = allDefaultedOptions.getLabelValues) === null || _allDefaultedOptions$ === void 0 ? void 0 : _allDefaultedOptions$.call(allDefaultedOptions, requestContext.request, requestContext.response));
58
50
  const shouldSkipByRequest = (_allDefaultedOptions$2 = allDefaultedOptions.skip) === null || _allDefaultedOptions$2 === void 0 ? void 0 : _allDefaultedOptions$2.call(allDefaultedOptions, requestContext.request, requestContext.response, labels);
59
-
60
51
  if (shouldSkipByRequest || shouldSkipMetricsByEnvironment) {
61
52
  return {};
62
53
  }
63
-
64
54
  return labels;
65
55
  }
66
-
67
56
  const plugin = {
68
57
  async serverWillStart() {
69
58
  signalIsUp();
@@ -71,10 +60,8 @@ const createPlugin = ({
71
60
  async serverWillStop() {
72
61
  signalIsNotUp();
73
62
  }
74
-
75
63
  };
76
64
  },
77
-
78
65
  async requestDidStart() {
79
66
  const requestTiming = metrics.timing.start();
80
67
  return {
@@ -85,18 +72,14 @@ const createPlugin = ({
85
72
  seconds: parseDurationSeconds
86
73
  } = parseTiming.end().value();
87
74
  const labels = getDefaultLabelsOrSkipMeasurement(parsingRequestContext);
88
-
89
75
  if (parseDurationSeconds !== undefined) {
90
76
  var _graphQlMetrics$graph;
91
-
92
77
  (_graphQlMetrics$graph = graphQlMetrics.graphQlParseDuration) === null || _graphQlMetrics$graph === void 0 ? void 0 : _graphQlMetrics$graph.forEach(metric => {
93
78
  metric.observe(labels, parseDurationSeconds);
94
79
  });
95
80
  }
96
-
97
81
  if (error) {
98
82
  var _graphQlMetrics$graph2;
99
-
100
83
  (_graphQlMetrics$graph2 = graphQlMetrics.graphQlErrorsTotal) === null || _graphQlMetrics$graph2 === void 0 ? void 0 : _graphQlMetrics$graph2.forEach(metric => {
101
84
  metric.inc(Object.assign({}, labels, {
102
85
  phase: 'parsing'
@@ -105,7 +88,6 @@ const createPlugin = ({
105
88
  }
106
89
  };
107
90
  },
108
-
109
91
  async validationDidStart(validationRequestContext) {
110
92
  const validationTiming = metrics.timing.start();
111
93
  return async error => {
@@ -113,18 +95,14 @@ const createPlugin = ({
113
95
  seconds: validationDurationSeconds
114
96
  } = validationTiming.end().value();
115
97
  const labels = getDefaultLabelsOrSkipMeasurement(validationRequestContext);
116
-
117
98
  if (validationDurationSeconds !== undefined) {
118
99
  var _graphQlMetrics$graph3;
119
-
120
100
  (_graphQlMetrics$graph3 = graphQlMetrics.graphQlValidationDuration) === null || _graphQlMetrics$graph3 === void 0 ? void 0 : _graphQlMetrics$graph3.forEach(metric => {
121
101
  metric.observe(labels, validationDurationSeconds);
122
102
  });
123
103
  }
124
-
125
104
  if (error) {
126
105
  var _graphQlMetrics$graph4;
127
-
128
106
  (_graphQlMetrics$graph4 = graphQlMetrics.graphQlErrorsTotal) === null || _graphQlMetrics$graph4 === void 0 ? void 0 : _graphQlMetrics$graph4.forEach(metric => {
129
107
  metric.inc(Object.assign({}, labels, {
130
108
  phase: 'validation'
@@ -133,7 +111,6 @@ const createPlugin = ({
133
111
  }
134
112
  };
135
113
  },
136
-
137
114
  async executionDidStart(executionRequestContext) {
138
115
  return {
139
116
  willResolveField({
@@ -148,18 +125,14 @@ const createPlugin = ({
148
125
  const labels = Object.assign({}, defaultLabels, {
149
126
  field_name: info.fieldName
150
127
  });
151
-
152
128
  if (fieldResolveDurationSeconds !== undefined) {
153
129
  var _graphQlMetrics$graph5;
154
-
155
130
  (_graphQlMetrics$graph5 = graphQlMetrics.graphQlResolveFieldDuration) === null || _graphQlMetrics$graph5 === void 0 ? void 0 : _graphQlMetrics$graph5.forEach(metric => {
156
131
  metric.observe(labels, fieldResolveDurationSeconds);
157
132
  });
158
133
  }
159
-
160
134
  if (error) {
161
135
  var _graphQlMetrics$graph6;
162
-
163
136
  (_graphQlMetrics$graph6 = graphQlMetrics.graphQlErrorsTotal) === null || _graphQlMetrics$graph6 === void 0 ? void 0 : _graphQlMetrics$graph6.forEach(metric => {
164
137
  metric.inc(Object.assign({}, labels, {
165
138
  phase: 'execution'
@@ -168,28 +141,22 @@ const createPlugin = ({
168
141
  }
169
142
  };
170
143
  }
171
-
172
144
  };
173
145
  },
174
-
175
146
  async willSendResponse(responseRequestContext) {
176
147
  const {
177
148
  seconds: requestDurationSeconds
178
149
  } = requestTiming.end().value();
179
150
  const labels = getDefaultLabelsOrSkipMeasurement(responseRequestContext);
180
-
181
151
  if (requestDurationSeconds !== undefined) {
182
152
  var _graphQlMetrics$graph7;
183
-
184
153
  (_graphQlMetrics$graph7 = graphQlMetrics.graphQlRequestDuration) === null || _graphQlMetrics$graph7 === void 0 ? void 0 : _graphQlMetrics$graph7.forEach(metric => {
185
154
  metric.observe(labels, requestDurationSeconds);
186
155
  });
187
156
  }
188
157
  }
189
-
190
158
  };
191
159
  }
192
-
193
160
  };
194
161
  return plugin;
195
162
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promster/apollo",
3
- "version": "1.0.6",
3
+ "version": "1.0.8",
4
4
  "description": "Apollo server integrations of promster",
5
5
  "main": "dist/promster-apollo.cjs.js",
6
6
  "typings": "dist/promster-apollo.cjs.d.ts",
@@ -36,16 +36,16 @@
36
36
  "prometheus"
37
37
  ],
38
38
  "dependencies": {
39
- "@promster/metrics": "^9.1.4",
40
- "apollo-server-plugin-base": "3.5.1",
39
+ "@promster/metrics": "^9.1.6",
40
+ "apollo-server-plugin-base": "3.7.1",
41
41
  "merge-options": "3.0.4",
42
- "tslib": "2.3.1"
42
+ "tslib": "2.4.1"
43
43
  },
44
44
  "devDependencies": {
45
- "@graphql-tools/schema": "^8.3.1",
46
- "@graphql-tools/utils": "^8.6.1",
47
- "apollo-server": "3.6.3",
48
- "graphql": "16.3.0",
45
+ "@graphql-tools/schema": "9.0.12",
46
+ "@graphql-tools/utils": "9.1.3",
47
+ "apollo-server": "3.11.1",
48
+ "graphql": "16.6.0",
49
49
  "node-fetch": "2.6.7",
50
50
  "parse-prometheus-text-format": "1.1.1"
51
51
  }