nestjs-otel 2.6.1 → 3.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.
Files changed (45) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +25 -8
  3. package/lib/interfaces/opentelemetry-options.interface.d.ts +2 -2
  4. package/lib/metrics/decorators/common.js +2 -2
  5. package/lib/metrics/decorators/common.js.map +1 -1
  6. package/lib/metrics/decorators/counter.js +2 -2
  7. package/lib/metrics/decorators/counter.js.map +1 -1
  8. package/lib/metrics/decorators/histogram.d.ts +1 -0
  9. package/lib/metrics/decorators/histogram.js +12 -0
  10. package/lib/metrics/decorators/histogram.js.map +1 -0
  11. package/lib/metrics/decorators/index.d.ts +2 -1
  12. package/lib/metrics/decorators/index.js +2 -1
  13. package/lib/metrics/decorators/index.js.map +1 -1
  14. package/lib/metrics/decorators/observable.d.ts +3 -0
  15. package/lib/metrics/decorators/observable.js +24 -0
  16. package/lib/metrics/decorators/observable.js.map +1 -0
  17. package/lib/metrics/metric-data.d.ts +12 -5
  18. package/lib/metrics/metric-data.js +53 -24
  19. package/lib/metrics/metric-data.js.map +1 -1
  20. package/lib/metrics/metric.service.d.ts +7 -6
  21. package/lib/metrics/metric.service.js +11 -8
  22. package/lib/metrics/metric.service.js.map +1 -1
  23. package/lib/middleware/api-metrics.middleware.d.ts +5 -5
  24. package/lib/middleware/api-metrics.middleware.js +17 -17
  25. package/lib/middleware/api-metrics.middleware.js.map +1 -1
  26. package/lib/opentelemetry-core.module.js.map +1 -1
  27. package/lib/tracing/trace.service.d.ts +1 -0
  28. package/lib/tracing/trace.service.js +4 -2
  29. package/lib/tracing/trace.service.js.map +1 -1
  30. package/lib/tsconfig.tsbuildinfo +1 -1
  31. package/package.json +30 -31
  32. package/src/interfaces/opentelemetry-options.interface.ts +3 -3
  33. package/src/metrics/decorators/common.ts +6 -4
  34. package/src/metrics/decorators/counter.ts +5 -9
  35. package/src/metrics/decorators/histogram.ts +10 -0
  36. package/src/metrics/decorators/observable.ts +28 -0
  37. package/src/metrics/metric-data.ts +86 -29
  38. package/src/metrics/metric.service.ts +16 -14
  39. package/src/middleware/api-metrics.middleware.ts +19 -19
  40. package/src/opentelemetry-core.module.ts +3 -3
  41. package/src/tracing/trace.service.ts +5 -2
  42. package/lib/metrics/decorators/value-recorder.d.ts +0 -1
  43. package/lib/metrics/decorators/value-recorder.js +0 -12
  44. package/lib/metrics/decorators/value-recorder.js.map +0 -1
  45. package/src/metrics/decorators/value-recorder.ts +0 -12
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [3.0.0](https://www.github.com/pragmaticivan/nestjs-otel/compare/v2.6.1...v3.0.0) (2021-12-30)
4
+
5
+
6
+ ### ⚠ BREAKING CHANGES
7
+
8
+ * Anything related to metrics sdk has changed. OTEL now has a stable spec and all the projects are moving towards new interfaces.
9
+
10
+ ### Features
11
+
12
+ * ename value recorder on decorators and update readme ([646e2ea](https://www.github.com/pragmaticivan/nestjs-otel/commit/646e2eacd07127f9658b302c09d3056b3b2e1771))
13
+ * support all metric types from otel spec ([36a7c5f](https://www.github.com/pragmaticivan/nestjs-otel/commit/36a7c5f2f895157b3e675a7a6ff6693fea6cc8f2))
14
+ * update metric spec to the latest otel lib ([6ed63ae](https://www.github.com/pragmaticivan/nestjs-otel/commit/6ed63aefbc1e39da9659d6e232a4883f7ed93dac))
15
+ * update packages to compply with latest otel metric spec ([943ca06](https://www.github.com/pragmaticivan/nestjs-otel/commit/943ca06ea62e95d8a07af63030609f226b78c4b8))
16
+
3
17
  ### [2.6.1](https://www.github.com/pragmaticivan/nestjs-otel/compare/v2.6.0...v2.6.1) (2021-10-13)
4
18
 
5
19
 
package/README.md CHANGED
@@ -16,7 +16,7 @@ For questions and support please use the official [Discord channel](https://disc
16
16
 
17
17
  ## Why
18
18
 
19
- Setting up observability metrics with nestjs requires multiple libraries and patterns. OpenTelemetry has support for multiple exporters and types of metrics such as Prometheus Metrics.
19
+ Setting up observability metrics with nestjs requires multiple libraries and patterns. OpenTelemetry has support for multiple exporters and types of metrics such as Prometheus Metrics.
20
20
 
21
21
  ## Observability
22
22
 
@@ -179,7 +179,7 @@ export class BookService {
179
179
 
180
180
  ## Metric Service
181
181
 
182
- [OpenTelemetry Metrics](https://www.npmjs.com/package/@opentelemetry/metrics) allow a user to collect data and export it to metrics backend like Prometheus.
182
+ [OpenTelemetry Metrics](https://www.npmjs.com/package/@opentelemetry/api-metrics) allow a user to collect data and export it to metrics backend like Prometheus.
183
183
 
184
184
  ```ts
185
185
  import { MetricService } from 'nestjs-otel';
@@ -243,7 +243,10 @@ You have the following decorators:
243
243
 
244
244
  * `@OtelCounter()`
245
245
  * `@OtelUpDownCounter()`
246
- * `@OtelValueRecorder()`
246
+ * `@OtelHistogram()`
247
+ * `@OtelObservableGauge()`
248
+ * `@OtelObservableCounter()`
249
+ * `@OtelObservableUpDownCounter()`
247
250
 
248
251
  Example of usage:
249
252
 
@@ -258,7 +261,7 @@ export class AppController {
258
261
  home(
259
262
  @OtelCounter('app_counter_1_inc', { description: 'counter 1 description' }) counter1: Counter,
260
263
  ) {
261
- counter1.inc(1);
264
+ counter1.add(1);
262
265
  }
263
266
  }
264
267
 
@@ -272,12 +275,12 @@ Impl |Metric |Description| Labels | Metric Type
272
275
  | ✅ | http_response_total| Total number of HTTP responses.| method, status, path | Counter |
273
276
  | ✅ | http_response_success_total| Total number of all successful responses.| - | Counter |
274
277
  | ✅ | http_response_error_total| Total number of all response errors.| - | Counter |
275
- | ✅ | http_request_duration_seconds | HTTP latency value recorder in seconds. | method, status, path | ValueRecorder |
278
+ | ✅ | http_request_duration_seconds | HTTP latency value recorder in seconds. | method, status, path | Histogram |
276
279
  | ✅ | http_client_error_total | Total number of client error requests. | - | Counter |
277
280
  | ✅ | http_server_error_total | Total number of server error requests. | - | Counter |
278
281
  | ✅ | http_server_aborts_total | Total number of data transfers aborted. | - | Counter |
279
- | ✅ | http_request_size_bytes | Current total of incoming bytes. | - | ValueRecorder|
280
- | ✅ | http_response_size_bytes | Current total of outgoing bytes. | - | ValueRecorder |
282
+ | ✅ | http_request_size_bytes | Current total of incoming bytes. | - | Histogram|
283
+ | ✅ | http_response_size_bytes | Current total of outgoing bytes. | - | Histogram |
281
284
 
282
285
  ## Prometheus Metrics
283
286
 
@@ -285,7 +288,21 @@ When `metricExporter` is defined in otel SDK with a `PrometheusExporter`it will
285
288
 
286
289
  ## Using with a logger
287
290
 
288
- ### Pino
291
+ ### Pino with instrumentation
292
+
293
+ This approach uses otel instrumentation to automatically inject spanId and traceId.
294
+
295
+ ```ts
296
+ import { PinoInstrumentation } from '@opentelemetry/instrumentation-pino';
297
+
298
+ const otelSDK = new NodeSDK({
299
+ instrumentations: [new PinoInstrumentation()],
300
+ });
301
+ ```
302
+
303
+ ### Pino with custom formatter
304
+
305
+ This approach uses the global trace context for injecting SpanId and traceId as a property of your structured log.
289
306
 
290
307
  ```ts
291
308
  import Pino, { Logger } from 'pino';
@@ -1,5 +1,5 @@
1
1
  import { ModuleMetadata, Type, Abstract } from '@nestjs/common';
2
- import { Labels } from '@opentelemetry/api-metrics';
2
+ import { Attributes } from '@opentelemetry/api-metrics';
3
3
  import { RouteInfo } from '@nestjs/common/interfaces';
4
4
  export declare type OpenTelemetryModuleOptions = {
5
5
  metrics?: OpenTelemetryMetrics;
@@ -22,7 +22,7 @@ export declare type OpenTelemetryMetrics = {
22
22
  timeBuckets?: number[];
23
23
  requestSizeBuckets?: number[];
24
24
  responseSizeBuckets?: number[];
25
- defaultLabels?: Labels;
25
+ defaultAttributes?: Attributes;
26
26
  ignoreRoutes?: (string | RouteInfo)[];
27
27
  ignoreUndefinedRoutes?: boolean;
28
28
  };
@@ -9,7 +9,7 @@ const OtelInstanceCounter = (options) => (ctor) => {
9
9
  return class extends ctor {
10
10
  constructor(...args) {
11
11
  if (!counterMetric) {
12
- counterMetric = (0, metric_data_1.getOrCreateCounter)(name, metric_data_1.MetricType.Counter, { description, ...options });
12
+ counterMetric = (0, metric_data_1.getOrCreateCounter)(name, { description, ...options });
13
13
  }
14
14
  counterMetric.add(1);
15
15
  super(...args);
@@ -25,7 +25,7 @@ const OtelMethodCounter = (options) => (target, propertyKey, descriptor) => {
25
25
  const methodFunc = descriptor.value;
26
26
  descriptor.value = function (...args) {
27
27
  if (!counterMetric) {
28
- counterMetric = (0, metric_data_1.getOrCreateCounter)(name, metric_data_1.MetricType.Counter, { description, ...options });
28
+ counterMetric = (0, metric_data_1.getOrCreateCounter)(name, { description, ...options });
29
29
  }
30
30
  counterMetric.add(1);
31
31
  return methodFunc.apply(this, args);
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/metrics/decorators/common.ts"],"names":[],"mappings":";;;AACA,gDAA0F;AAOnF,MAAM,mBAAmB,GAAG,CACjC,OAAuB,EACvB,EAAE,CAAC,CAAwC,IAAO,EAAE,EAAE;IACtD,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,kBAAkB,CAAC;IAChD,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,IAAI,yBAAyB,CAAC;IAC9D,IAAI,aAAsB,CAAC;IAE3B,OAAO,KAAM,SAAQ,IAAI;QACvB,YAAY,GAAG,IAAI;YACjB,IAAI,CAAC,aAAa,EAAE;gBAClB,aAAa,GAAG,IAAA,gCAAkB,EAAC,IAAI,EAAE,wBAAU,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;aAC3F;YAED,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAjBW,QAAA,mBAAmB,uBAiB9B;AAKK,MAAM,iBAAiB,GAAG,CAC/B,OAAuB,EACvB,EAAE,CAAC,CACH,MAAc,EAAE,WAA4B,EAAE,UACrC,EACT,EAAE;IACF,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;IAC1C,MAAM,IAAI,GAAG,OAAO,SAAS,IAAI,WAAW,CAAC,QAAQ,EAAE,cAAc,CAAC;IACtE,MAAM,WAAW,GAAG,OAAO,SAAS,IAAI,WAAW,CAAC,QAAQ,EAAE,eAAe,CAAC;IAC9E,IAAI,aAAsB,CAAC;IAC3B,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC;IAEpC,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW;QACzC,IAAI,CAAC,aAAa,EAAE;YAClB,aAAa,GAAG,IAAA,gCAAkB,EAAC,IAAI,EAAE,wBAAU,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;SAC3F;QACD,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrB,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC;AACJ,CAAC,CAAC;AAnBW,QAAA,iBAAiB,qBAmB5B"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/metrics/decorators/common.ts"],"names":[],"mappings":";;;AACA,gDAAoD;AAO7C,MAAM,mBAAmB,GAAG,CACjC,OAAuB,EACvB,EAAE,CAAC,CAAwC,IAAO,EAAE,EAAE;IACtD,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,kBAAkB,CAAC;IAChD,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,IAAI,yBAAyB,CAAC;IAC9D,IAAI,aAAsB,CAAC;IAE3B,OAAO,KAAM,SAAQ,IAAI;QACvB,YAAY,GAAG,IAAI;YACjB,IAAI,CAAC,aAAa,EAAE;gBAClB,aAAa,GAAG,IAAA,gCAAkB,EAAC,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;aACvE;YAED,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAjBW,QAAA,mBAAmB,uBAiB9B;AAKK,MAAM,iBAAiB,GAAG,CAC/B,OAAuB,EACvB,EAAE,CAAC,CACH,MAAc,EACd,WAA4B,EAC5B,UACS,EACT,EAAE;IACF,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;IAC1C,MAAM,IAAI,GAAG,OAAO,SAAS,IAAI,WAAW,CAAC,QAAQ,EAAE,cAAc,CAAC;IACtE,MAAM,WAAW,GAAG,OAAO,SAAS,IAAI,WAAW,CAAC,QAAQ,EAAE,eAAe,CAAC;IAC9E,IAAI,aAAsB,CAAC;IAC3B,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC;IAEpC,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW;QACzC,IAAI,CAAC,aAAa,EAAE;YAClB,aAAa,GAAG,IAAA,gCAAkB,EAAC,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;SACvE;QACD,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrB,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC;AACJ,CAAC,CAAC;AArBW,QAAA,iBAAiB,qBAqB5B"}
@@ -7,12 +7,12 @@ exports.OtelCounter = (0, common_1.createParamDecorator)((name, options) => {
7
7
  if (!name || name.length === 0) {
8
8
  throw new Error('OtelCounter need a name argument');
9
9
  }
10
- return (0, metric_data_1.getOrCreateCounter)(name, metric_data_1.MetricType.Counter, options);
10
+ return (0, metric_data_1.getOrCreateCounter)(name, options);
11
11
  });
12
12
  exports.OtelUpDownCounter = (0, common_1.createParamDecorator)((name, options) => {
13
13
  if (!name || name.length === 0) {
14
14
  throw new Error('OtelUpDownCounter need a name argument');
15
15
  }
16
- return (0, metric_data_1.getOrCreateCounter)(name, metric_data_1.MetricType.UpDownCounter, options);
16
+ return (0, metric_data_1.getOrCreateCounter)(name, options);
17
17
  });
18
18
  //# sourceMappingURL=counter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"counter.js","sourceRoot":"","sources":["../../../src/metrics/decorators/counter.ts"],"names":[],"mappings":";;;AAAA,2CAAsD;AAEtD,gDAA0F;AAE7E,QAAA,WAAW,GAAG,IAAA,6BAAoB,EAAC,CAC9C,IAAY,EAAE,OAAuB,EACrC,EAAE;IACF,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;KACrD;IACD,OAAO,IAAA,gCAAkB,EAAC,IAAI,EAAE,wBAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC/D,CAAC,CAAC,CAAC;AAEU,QAAA,iBAAiB,GAAG,IAAA,6BAAoB,EAAC,CACpD,IAAY,EAAE,OAAuB,EACrC,EAAE;IACF,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;KAC3D;IACD,OAAO,IAAA,gCAAkB,EAAC,IAAI,EAAE,wBAAU,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AACrE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"counter.js","sourceRoot":"","sources":["../../../src/metrics/decorators/counter.ts"],"names":[],"mappings":";;;AAAA,2CAAsD;AAEtD,gDAAgE;AAEnD,QAAA,WAAW,GAAG,IAAA,6BAAoB,EAAC,CAAC,IAAY,EAAE,OAAuB,EAAE,EAAE;IACxF,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;KACrD;IACD,OAAO,IAAA,gCAAkB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC;AAEU,QAAA,iBAAiB,GAAG,IAAA,6BAAoB,EAAC,CAAC,IAAY,EAAE,OAAuB,EAAE,EAAE;IAC9F,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;KAC3D;IACD,OAAO,IAAA,gCAAkB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const OtelHistogram: (...dataOrPipes: (string | import("@nestjs/common").PipeTransform<any, any> | import("@nestjs/common").Type<import("@nestjs/common").PipeTransform<any, any>>)[]) => ParameterDecorator;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OtelHistogram = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const metric_data_1 = require("../metric-data");
6
+ exports.OtelHistogram = (0, common_1.createParamDecorator)((name, options) => {
7
+ if (!name || name.length === 0) {
8
+ throw new Error('OtelHistogram need a name argument');
9
+ }
10
+ return (0, metric_data_1.getOrCreateHistogram)(name, options);
11
+ });
12
+ //# sourceMappingURL=histogram.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"histogram.js","sourceRoot":"","sources":["../../../src/metrics/decorators/histogram.ts"],"names":[],"mappings":";;;AAAA,2CAAsD;AAEtD,gDAAsD;AAEzC,QAAA,aAAa,GAAG,IAAA,6BAAoB,EAAC,CAAC,IAAY,EAAE,OAAuB,EAAE,EAAE;IAC1F,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;KACvD;IACD,OAAO,IAAA,kCAAoB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * from './common';
2
2
  export * from './counter';
3
- export * from './value-recorder';
3
+ export * from './histogram';
4
+ export * from './observable';
@@ -12,5 +12,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./common"), exports);
14
14
  __exportStar(require("./counter"), exports);
15
- __exportStar(require("./value-recorder"), exports);
15
+ __exportStar(require("./histogram"), exports);
16
+ __exportStar(require("./observable"), exports);
16
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metrics/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAyB;AACzB,4CAA0B;AAC1B,mDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metrics/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAyB;AACzB,4CAA0B;AAC1B,8CAA4B;AAC5B,+CAA6B"}
@@ -0,0 +1,3 @@
1
+ export declare const OtelObservableGauge: (...dataOrPipes: (string | import("@nestjs/common").PipeTransform<any, any> | import("@nestjs/common").Type<import("@nestjs/common").PipeTransform<any, any>>)[]) => ParameterDecorator;
2
+ export declare const OtelObservableCounter: (...dataOrPipes: (string | import("@nestjs/common").PipeTransform<any, any> | import("@nestjs/common").Type<import("@nestjs/common").PipeTransform<any, any>>)[]) => ParameterDecorator;
3
+ export declare const OtelObservableUpDownCounter: (...dataOrPipes: (string | import("@nestjs/common").PipeTransform<any, any> | import("@nestjs/common").Type<import("@nestjs/common").PipeTransform<any, any>>)[]) => ParameterDecorator;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OtelObservableUpDownCounter = exports.OtelObservableCounter = exports.OtelObservableGauge = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const metric_data_1 = require("../metric-data");
6
+ exports.OtelObservableGauge = (0, common_1.createParamDecorator)((name, options) => {
7
+ if (!name || name.length === 0) {
8
+ throw new Error('OtelObservableGauge need a name argument');
9
+ }
10
+ return (0, metric_data_1.getOrCreateObservableGauge)(name, options);
11
+ });
12
+ exports.OtelObservableCounter = (0, common_1.createParamDecorator)((name, options) => {
13
+ if (!name || name.length === 0) {
14
+ throw new Error('OtelObservableCounter need a name argument');
15
+ }
16
+ return (0, metric_data_1.getOrCreateObservableCounter)(name, options);
17
+ });
18
+ exports.OtelObservableUpDownCounter = (0, common_1.createParamDecorator)((name, options) => {
19
+ if (!name || name.length === 0) {
20
+ throw new Error('OtelObservableUpDownCounter need a name argument');
21
+ }
22
+ return (0, metric_data_1.getOrCreateObservableUpDownCounter)(name, options);
23
+ });
24
+ //# sourceMappingURL=observable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observable.js","sourceRoot":"","sources":["../../../src/metrics/decorators/observable.ts"],"names":[],"mappings":";;;AAAA,2CAAsD;AAEtD,gDAA8H;AAEjH,QAAA,mBAAmB,GAAG,IAAA,6BAAoB,EAAC,CAAC,IAAY,EAAE,OAAuB,EAAE,EAAE;IAChG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;KAC7D;IACD,OAAO,IAAA,wCAA0B,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC;AAEU,QAAA,qBAAqB,GAAG,IAAA,6BAAoB,EACvD,CAAC,IAAY,EAAE,OAAuB,EAAE,EAAE;IACxC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;KAC/D;IACD,OAAO,IAAA,0CAA4B,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC,CACF,CAAC;AAEW,QAAA,2BAA2B,GAAG,IAAA,6BAAoB,EAC7D,CAAC,IAAY,EAAE,OAAuB,EAAE,EAAE;IACxC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;KACrE;IACD,OAAO,IAAA,gDAAkC,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC,CACF,CAAC"}
@@ -1,10 +1,17 @@
1
- import { Counter, MetricOptions, UpDownCounter, ValueRecorder } from '@opentelemetry/api-metrics';
2
- export declare type GenericMetric = Counter | UpDownCounter | ValueRecorder;
1
+ import { Counter, MetricOptions, UpDownCounter, Histogram, ObservableGauge, ObservableCounter, ObservableUpDownCounter } from '@opentelemetry/api-metrics';
2
+ export declare type GenericMetric = Counter | UpDownCounter | Histogram | ObservableGauge | ObservableCounter | ObservableUpDownCounter;
3
3
  export declare enum MetricType {
4
4
  'Counter' = "Counter",
5
5
  'UpDownCounter' = "UpDownCounter",
6
- 'ValueRecorder' = "ValueRecorder"
6
+ 'Histogram' = "Histogram",
7
+ 'ObservableGauge' = "ObservableGauge",
8
+ 'ObservableCounter' = "ObservableCounter",
9
+ 'ObservableUpDownCounter' = "ObservableUpDownCounter"
7
10
  }
8
11
  export declare const meterData: Map<string, GenericMetric>;
9
- export declare function getOrCreateValueRecorder(name: string, type: MetricType, options: MetricOptions): ValueRecorder;
10
- export declare function getOrCreateCounter(name: string, type: MetricType, options: MetricOptions): Counter | UpDownCounter;
12
+ export declare function getOrCreateHistogram(name: string, options: MetricOptions): Histogram;
13
+ export declare function getOrCreateCounter(name: string, options: MetricOptions): Counter;
14
+ export declare function getOrCreateUpDownCounter(name: string, options: MetricOptions): UpDownCounter;
15
+ export declare function getOrCreateObservableGauge(name: string, options: MetricOptions): ObservableGauge;
16
+ export declare function getOrCreateObservableCounter(name: string, options: MetricOptions): ObservableCounter;
17
+ export declare function getOrCreateObservableUpDownCounter(name: string, options: MetricOptions): ObservableUpDownCounter;
@@ -1,47 +1,76 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getOrCreateCounter = exports.getOrCreateValueRecorder = exports.meterData = exports.MetricType = void 0;
3
+ exports.getOrCreateObservableUpDownCounter = exports.getOrCreateObservableCounter = exports.getOrCreateObservableGauge = exports.getOrCreateUpDownCounter = exports.getOrCreateCounter = exports.getOrCreateHistogram = exports.meterData = exports.MetricType = void 0;
4
4
  const api_metrics_1 = require("@opentelemetry/api-metrics");
5
5
  const opentelemetry_constants_1 = require("../opentelemetry.constants");
6
6
  var MetricType;
7
7
  (function (MetricType) {
8
8
  MetricType["Counter"] = "Counter";
9
9
  MetricType["UpDownCounter"] = "UpDownCounter";
10
- MetricType["ValueRecorder"] = "ValueRecorder";
10
+ MetricType["Histogram"] = "Histogram";
11
+ MetricType["ObservableGauge"] = "ObservableGauge";
12
+ MetricType["ObservableCounter"] = "ObservableCounter";
13
+ MetricType["ObservableUpDownCounter"] = "ObservableUpDownCounter";
11
14
  })(MetricType = exports.MetricType || (exports.MetricType = {}));
12
15
  exports.meterData = new Map();
13
- function getOrCreateValueRecorder(name, type, options) {
16
+ function getOrCreateHistogram(name, options) {
14
17
  if (exports.meterData.has(name)) {
15
18
  return exports.meterData.get(name);
16
19
  }
17
20
  const meter = api_metrics_1.metrics.getMeterProvider().getMeter(opentelemetry_constants_1.OTEL_METER_NAME);
18
- switch (type) {
19
- case MetricType.ValueRecorder:
20
- const valueRecorder = meter.createValueRecorder(name, options);
21
- exports.meterData.set(name, valueRecorder);
22
- return valueRecorder;
23
- default:
24
- throw new Error(`Unknown type: ${type}`);
21
+ const histogram = meter.createHistogram(name, options);
22
+ exports.meterData.set(name, histogram);
23
+ return histogram;
24
+ }
25
+ exports.getOrCreateHistogram = getOrCreateHistogram;
26
+ function getOrCreateCounter(name, options) {
27
+ if (exports.meterData.has(name)) {
28
+ return exports.meterData.get(name);
25
29
  }
30
+ const meter = api_metrics_1.metrics.getMeterProvider().getMeter(opentelemetry_constants_1.OTEL_METER_NAME);
31
+ const counter = meter.createCounter(name, options);
32
+ exports.meterData.set(name, counter);
33
+ return counter;
26
34
  }
27
- exports.getOrCreateValueRecorder = getOrCreateValueRecorder;
28
- function getOrCreateCounter(name, type, options) {
35
+ exports.getOrCreateCounter = getOrCreateCounter;
36
+ function getOrCreateUpDownCounter(name, options) {
29
37
  if (exports.meterData.has(name)) {
30
38
  return exports.meterData.get(name);
31
39
  }
32
40
  const meter = api_metrics_1.metrics.getMeterProvider().getMeter(opentelemetry_constants_1.OTEL_METER_NAME);
33
- switch (type) {
34
- case MetricType.Counter:
35
- const counter = meter.createCounter(name, options);
36
- exports.meterData.set(name, counter);
37
- return counter;
38
- case MetricType.UpDownCounter:
39
- const upDownCounter = meter.createUpDownCounter(name, options);
40
- exports.meterData.set(name, upDownCounter);
41
- return upDownCounter;
42
- default:
43
- throw new Error(`Unknown type: ${type}`);
41
+ const upDownCounter = meter.createUpDownCounter(name, options);
42
+ exports.meterData.set(name, upDownCounter);
43
+ return upDownCounter;
44
+ }
45
+ exports.getOrCreateUpDownCounter = getOrCreateUpDownCounter;
46
+ function getOrCreateObservableGauge(name, options) {
47
+ if (exports.meterData.has(name)) {
48
+ return exports.meterData.get(name);
44
49
  }
50
+ const meter = api_metrics_1.metrics.getMeterProvider().getMeter(opentelemetry_constants_1.OTEL_METER_NAME);
51
+ const observableGauge = meter.createObservableGauge(name, options);
52
+ exports.meterData.set(name, observableGauge);
53
+ return observableGauge;
45
54
  }
46
- exports.getOrCreateCounter = getOrCreateCounter;
55
+ exports.getOrCreateObservableGauge = getOrCreateObservableGauge;
56
+ function getOrCreateObservableCounter(name, options) {
57
+ if (exports.meterData.has(name)) {
58
+ return exports.meterData.get(name);
59
+ }
60
+ const meter = api_metrics_1.metrics.getMeterProvider().getMeter(opentelemetry_constants_1.OTEL_METER_NAME);
61
+ const observableCounter = meter.createObservableCounter(name, options);
62
+ exports.meterData.set(name, observableCounter);
63
+ return observableCounter;
64
+ }
65
+ exports.getOrCreateObservableCounter = getOrCreateObservableCounter;
66
+ function getOrCreateObservableUpDownCounter(name, options) {
67
+ if (exports.meterData.has(name)) {
68
+ return exports.meterData.get(name);
69
+ }
70
+ const meter = api_metrics_1.metrics.getMeterProvider().getMeter(opentelemetry_constants_1.OTEL_METER_NAME);
71
+ const observableCounter = meter.createObservableCounter(name, options);
72
+ exports.meterData.set(name, observableCounter);
73
+ return observableCounter;
74
+ }
75
+ exports.getOrCreateObservableUpDownCounter = getOrCreateObservableUpDownCounter;
47
76
  //# sourceMappingURL=metric-data.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metric-data.js","sourceRoot":"","sources":["../../src/metrics/metric-data.ts"],"names":[],"mappings":";;;AAAA,4DAEoC;AACpC,wEAA6D;AAI7D,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,iCAAqB,CAAA;IACrB,6CAAiC,CAAA;IACjC,6CAAiC,CAAA;AACnC,CAAC,EAJW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAIrB;AAEY,QAAA,SAAS,GAA+B,IAAI,GAAG,EAAE,CAAC;AAE/D,SAAgB,wBAAwB,CACtC,IAAY,EAAE,IAAgB,EAAE,OAAsB;IAEtD,IAAI,iBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACvB,OAAO,iBAAS,CAAC,GAAG,CAAC,IAAI,CAAkB,CAAC;KAC7C;IAED,MAAM,KAAK,GAAG,qBAAO,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,yCAAe,CAAC,CAAC;IAEnE,QAAQ,IAAI,EAAE;QACZ,KAAK,UAAU,CAAC,aAAa;YAC3B,MAAM,aAAa,GAAG,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC/D,iBAAS,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YACnC,OAAO,aAAa,CAAC;QACvB;YACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;KAC5C;AACH,CAAC;AAjBD,4DAiBC;AAED,SAAgB,kBAAkB,CAChC,IAAY,EAAE,IAAgB,EAAE,OAAsB;IAEtD,IAAI,iBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACvB,OAAO,iBAAS,CAAC,GAAG,CAAC,IAAI,CAA4B,CAAC;KACvD;IAED,MAAM,KAAK,GAAG,qBAAO,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,yCAAe,CAAC,CAAC;IAEnE,QAAQ,IAAI,EAAE;QACZ,KAAK,UAAU,CAAC,OAAO;YACrB,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACnD,iBAAS,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC7B,OAAO,OAAO,CAAC;QACjB,KAAK,UAAU,CAAC,aAAa;YAC3B,MAAM,aAAa,GAAG,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC/D,iBAAS,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YACnC,OAAO,aAAa,CAAC;QACvB;YACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;KAC5C;AACH,CAAC;AArBD,gDAqBC"}
1
+ {"version":3,"file":"metric-data.js","sourceRoot":"","sources":["../../src/metrics/metric-data.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
- import { Counter, UpDownCounter, ValueRecorder, MetricOptions } from '@opentelemetry/api-metrics';
1
+ import { MetricOptions } from '@opentelemetry/api-metrics';
2
2
  export declare class MetricService {
3
- getCounter(name: string, options?: MetricOptions): Counter | UpDownCounter;
4
- getUpDownCounter(name: string, options?: MetricOptions): Counter | UpDownCounter;
5
- getValueRecorder(name: string, options?: MetricOptions): ValueRecorder;
6
- private getOrCreateValueRecorder;
7
- private getOrCreateCounter;
3
+ getCounter(name: string, options?: MetricOptions): import("@opentelemetry/api-metrics").Counter;
4
+ getUpDownCounter(name: string, options?: MetricOptions): import("@opentelemetry/api-metrics").UpDownCounter;
5
+ getHistogram(name: string, options?: MetricOptions): import("@opentelemetry/api-metrics").Histogram;
6
+ getObservableCounter(name: string, options?: MetricOptions): import("@opentelemetry/api-metrics").ObservableBase;
7
+ getObservableGauge(name: string, options?: MetricOptions): import("@opentelemetry/api-metrics").ObservableBase;
8
+ getObservableUpDownCounter(name: string, options?: MetricOptions): import("@opentelemetry/api-metrics").ObservableBase;
8
9
  }
@@ -11,19 +11,22 @@ const common_1 = require("@nestjs/common");
11
11
  const metric_data_1 = require("./metric-data");
12
12
  let MetricService = class MetricService {
13
13
  getCounter(name, options) {
14
- return this.getOrCreateCounter(name, metric_data_1.MetricType.Counter, options);
14
+ return (0, metric_data_1.getOrCreateCounter)(name, options);
15
15
  }
16
16
  getUpDownCounter(name, options) {
17
- return this.getOrCreateCounter(name, metric_data_1.MetricType.UpDownCounter, options);
17
+ return (0, metric_data_1.getOrCreateUpDownCounter)(name, options);
18
18
  }
19
- getValueRecorder(name, options) {
20
- return this.getOrCreateValueRecorder(name, metric_data_1.MetricType.ValueRecorder, options);
19
+ getHistogram(name, options) {
20
+ return (0, metric_data_1.getOrCreateHistogram)(name, options);
21
21
  }
22
- getOrCreateValueRecorder(name, type, options) {
23
- return (0, metric_data_1.getOrCreateValueRecorder)(name, type, options);
22
+ getObservableCounter(name, options) {
23
+ return (0, metric_data_1.getOrCreateObservableCounter)(name, options);
24
24
  }
25
- getOrCreateCounter(name, type, options) {
26
- return (0, metric_data_1.getOrCreateCounter)(name, type, options);
25
+ getObservableGauge(name, options) {
26
+ return (0, metric_data_1.getOrCreateObservableGauge)(name, options);
27
+ }
28
+ getObservableUpDownCounter(name, options) {
29
+ return (0, metric_data_1.getOrCreateObservableUpDownCounter)(name, options);
27
30
  }
28
31
  };
29
32
  MetricService = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"metric.service.js","sourceRoot":"","sources":["../../src/metrics/metric.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAI5C,+CAEuB;AAGvB,IAAa,aAAa,GAA1B,MAAa,aAAa;IACxB,UAAU,CAAC,IAAY,EAAE,OAAuB;QAC9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,wBAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IAED,gBAAgB,CAAC,IAAY,EAAE,OAAuB;QACpD,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,wBAAU,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;IAED,gBAAgB,CAAC,IAAY,EAAE,OAAuB;QACpD,OAAO,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,wBAAU,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;IAEO,wBAAwB,CAC9B,IAAY,EAAE,IAAgB,EAAE,OAAsB;QAEtD,OAAO,IAAA,sCAAwB,EAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAEO,kBAAkB,CACxB,IAAY,EAAE,IAAgB,EAAE,OAAsB;QAEtD,OAAO,IAAA,gCAAkB,EAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;CACF,CAAA;AAxBY,aAAa;IADzB,IAAA,mBAAU,GAAE;GACA,aAAa,CAwBzB;AAxBY,sCAAa"}
1
+ {"version":3,"file":"metric.service.js","sourceRoot":"","sources":["../../src/metrics/metric.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAI5C,+CAIuB;AAGvB,IAAa,aAAa,GAA1B,MAAa,aAAa;IACxB,UAAU,CAAC,IAAY,EAAE,OAAuB;QAC9C,OAAO,IAAA,gCAAkB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,gBAAgB,CAAC,IAAY,EAAE,OAAuB;QACpD,OAAO,IAAA,sCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,YAAY,CAAC,IAAY,EAAE,OAAuB;QAChD,OAAO,IAAA,kCAAoB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,oBAAoB,CAAC,IAAY,EAAE,OAAuB;QACxD,OAAO,IAAA,0CAA4B,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,kBAAkB,CAAC,IAAY,EAAE,OAAuB;QACtD,OAAO,IAAA,wCAA0B,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,0BAA0B,CAAC,IAAY,EAAE,OAAuB;QAC9D,OAAO,IAAA,gDAAkC,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;CACF,CAAA;AAxBY,aAAa;IADzB,IAAA,mBAAU,GAAE;GACA,aAAa,CAwBzB;AAxBY,sCAAa"}
@@ -5,8 +5,8 @@ export declare const DEFAULT_LONG_RUNNING_REQUEST_BUCKETS: number[];
5
5
  export declare const DEFAULT_REQUEST_SIZE_BUCKETS: number[];
6
6
  export declare const DEFAULT_RESPONSE_SIZE_BUCKETS: number[];
7
7
  export declare class ApiMetricsMiddleware implements NestMiddleware {
8
- private readonly options;
9
8
  private readonly metricService;
9
+ private readonly options;
10
10
  private readonly defaultLongRunningRequestBuckets;
11
11
  private readonly defaultRequestSizeBuckets;
12
12
  private readonly defaultResponseSizeBuckets;
@@ -18,11 +18,11 @@ export declare class ApiMetricsMiddleware implements NestMiddleware {
18
18
  private responseServerErrorTotal;
19
19
  private serverAbortsTotal;
20
20
  private requestDuration;
21
- private requestSizeValueRecorder;
22
- private responseSizeValueRecorder;
23
- private defaultLabels;
21
+ private requestSizeHistogram;
22
+ private responseSizeHistogram;
23
+ private defaultAttributes;
24
24
  private readonly ignoreUndefinedRoutes;
25
- constructor(options: OpenTelemetryModuleOptions, metricService: MetricService);
25
+ constructor(metricService: MetricService, options?: OpenTelemetryModuleOptions);
26
26
  use(req: any, res: any, next: any): void;
27
27
  private getStatusCodeClass;
28
28
  }
@@ -27,9 +27,9 @@ exports.DEFAULT_RESPONSE_SIZE_BUCKETS = [
27
27
  5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000, 10000,
28
28
  ];
29
29
  let ApiMetricsMiddleware = class ApiMetricsMiddleware {
30
- constructor(options = {}, metricService) {
31
- this.options = options;
30
+ constructor(metricService, options = {}) {
32
31
  this.metricService = metricService;
32
+ this.options = options;
33
33
  this.defaultLongRunningRequestBuckets = exports.DEFAULT_LONG_RUNNING_REQUEST_BUCKETS;
34
34
  this.defaultRequestSizeBuckets = exports.DEFAULT_REQUEST_SIZE_BUCKETS;
35
35
  this.defaultResponseSizeBuckets = exports.DEFAULT_RESPONSE_SIZE_BUCKETS;
@@ -54,18 +54,18 @@ let ApiMetricsMiddleware = class ApiMetricsMiddleware {
54
54
  this.serverAbortsTotal = this.metricService.getCounter('http_server_aborts_total', {
55
55
  description: 'Total number of data transfers aborted',
56
56
  });
57
- const { timeBuckets = [], requestSizeBuckets = [], responseSizeBuckets = [], defaultLabels = {}, ignoreUndefinedRoutes = false, } = options?.metrics?.apiMetrics;
58
- this.defaultLabels = defaultLabels;
57
+ const { timeBuckets = [], requestSizeBuckets = [], responseSizeBuckets = [], defaultAttributes = {}, ignoreUndefinedRoutes = false, } = options?.metrics?.apiMetrics;
58
+ this.defaultAttributes = defaultAttributes;
59
59
  this.ignoreUndefinedRoutes = ignoreUndefinedRoutes;
60
- this.requestDuration = this.metricService.getValueRecorder('http_request_duration_seconds', {
60
+ this.requestDuration = this.metricService.getHistogram('http_request_duration_seconds', {
61
61
  boundaries: timeBuckets.length > 0 ? timeBuckets : this.defaultLongRunningRequestBuckets,
62
62
  description: 'HTTP latency value recorder in seconds',
63
63
  });
64
- this.requestSizeValueRecorder = this.metricService.getValueRecorder('http_request_size_bytes', {
64
+ this.requestSizeHistogram = this.metricService.getHistogram('http_request_size_bytes', {
65
65
  boundaries: requestSizeBuckets.length > 0 ? requestSizeBuckets : this.defaultRequestSizeBuckets,
66
66
  description: 'Current total of incoming bytes',
67
67
  });
68
- this.responseSizeValueRecorder = this.metricService.getValueRecorder('http_response_size_bytes', {
68
+ this.responseSizeHistogram = this.metricService.getHistogram('http_response_size_bytes', {
69
69
  boundaries: responseSizeBuckets.length > 0 ? responseSizeBuckets : this.defaultResponseSizeBuckets,
70
70
  description: 'Current total of outgoing bytes',
71
71
  });
@@ -83,17 +83,17 @@ let ApiMetricsMiddleware = class ApiMetricsMiddleware {
83
83
  else {
84
84
  path = urlParser.parse(url).pathname;
85
85
  }
86
- this.requestTotal.bind({ method, path }).add(1);
86
+ this.requestTotal.add(1, { method, path });
87
87
  const requestLength = parseInt(req.headers['content-length'], 10) || 0;
88
88
  const responseLength = parseInt(res.getHeader('Content-Length'), 10) || 0;
89
89
  const status = res.statusCode || 500;
90
- const labels = {
91
- method, status, path, ...this.defaultLabels,
90
+ const attributes = {
91
+ method, status, path, ...this.defaultAttributes,
92
92
  };
93
- this.requestSizeValueRecorder.bind(labels).record(requestLength);
94
- this.responseSizeValueRecorder.bind(labels).record(responseLength);
95
- this.responseTotal.bind(labels).add(1);
96
- this.requestDuration.bind(labels).record(time / 1000);
93
+ this.requestSizeHistogram.record(requestLength, attributes);
94
+ this.responseSizeHistogram.record(responseLength, attributes);
95
+ this.responseTotal.add(1, attributes);
96
+ this.requestDuration.record(time / 1000, attributes);
97
97
  const codeClass = this.getStatusCodeClass(status);
98
98
  switch (codeClass) {
99
99
  case 'success':
@@ -132,9 +132,9 @@ let ApiMetricsMiddleware = class ApiMetricsMiddleware {
132
132
  };
133
133
  ApiMetricsMiddleware = __decorate([
134
134
  (0, common_1.Injectable)(),
135
- __param(0, (0, common_1.Inject)(opentelemetry_constants_1.OPENTELEMETRY_MODULE_OPTIONS)),
136
- __param(1, (0, common_1.Inject)(metric_service_1.MetricService)),
137
- __metadata("design:paramtypes", [Object, metric_service_1.MetricService])
135
+ __param(0, (0, common_1.Inject)(metric_service_1.MetricService)),
136
+ __param(1, (0, common_1.Inject)(opentelemetry_constants_1.OPENTELEMETRY_MODULE_OPTIONS)),
137
+ __metadata("design:paramtypes", [metric_service_1.MetricService, Object])
138
138
  ], ApiMetricsMiddleware);
139
139
  exports.ApiMetricsMiddleware = ApiMetricsMiddleware;
140
140
  //# sourceMappingURL=api-metrics.middleware.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-metrics.middleware.js","sourceRoot":"","sources":["../../src/middleware/api-metrics.middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-metrics.middleware.js","sourceRoot":"","sources":["../../src/middleware/api-metrics.middleware.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"opentelemetry-core.module.js","sourceRoot":"","sources":["../src/opentelemetry-core.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAIwB;AACxB,8DAA0D;AAC1D,4DAAqD;AAErD,6DAAyD;AACzD,6CAAoD;AACpD,uEAEmC;AACnC,2DAAuD;AACvD,iEAA6D;AAU7D,IAAa,uBAAuB,+BAApC,MAAa,uBAAuB;IAGlC,YACyD,UAAsC,EAAE;QAAxC,YAAO,GAAP,OAAO,CAAiC;QAHhF,WAAM,GAAG,IAAI,eAAM,CAAC,qBAAqB,CAAC,CAAC;IAIzD,CAAC;IAOJ,MAAM,CAAC,OAAO,CACZ,UAAsC,EAAE,OAAO,EAAE,EAAE,EAAE;QAErD,MAAM,0BAA0B,GAAG;YACjC,OAAO,EAAE,sDAA4B;YACrC,QAAQ,EAAE,OAAO;SAClB,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,yBAAuB;YAC/B,SAAS,EAAE;gBACT,0BAA0B;gBAC1B,4BAAY;gBACZ,8BAAa;aACd;YACD,OAAO,EAAE;gBACP,4BAAY;gBACZ,8BAAa;aACd;SACF,CAAC;IACJ,CAAC;IAOD,MAAM,CAAC,YAAY,CAAC,OAAwC;QAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC1D,OAAO;YACL,MAAM,EAAE,0CAAmB;YAC3B,OAAO,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YACrC,SAAS,EAAE;gBACT,GAAG,cAAc;gBACjB,4BAAY;gBACZ,8BAAa;aACd;YACD,OAAO,EAAE;gBACP,4BAAY;gBACZ,8BAAa;aACd;SACF,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,QAA4B;QACpC,MAAM,EACJ,UAAU,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAC/B,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;QAE1B,IAAI,UAAU,CAAC,MAAM,KAAK,IAAI,EAAE;YAC9B,IAAI,UAAU,EAAE,YAAY,IAAI,UAAU,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnE,QAAQ,CAAC,KAAK,CAAC,iCAAoB,CAAC,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;aACzF;iBAAM;gBACL,QAAQ,CAAC,KAAK,CAAC,iCAAoB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;aACrD;SACF;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,IAAI,cAAc,GAAW,KAAK,CAAC;QACnC,IAAI,WAAW,GAAW,KAAK,CAAC;QAEhC,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE;YACzB,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc;oBAC9C,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC;YAC9D,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW;oBACxC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;SAC5D;QAED,MAAM,aAAa,GAAG,qBAAO,CAAC,gBAAgB,EAAE,CAAC;QAEjD,IAAI,cAAc,EAAE;YAElB,OAAO,CAAC,4BAA4B,CAAC,CAAC,aAAa,CAAC,CAAC;SACtD;QAED,IAAI,WAAW,EAAE;YAGf,MAAM,IAAI,GAAG,IAAI,0BAAW,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;YACtE,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;IACH,CAAC;IAOO,MAAM,CAAC,0BAA0B,CACvC,OAAwC;QAExC,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,OAAO;gBACL,OAAO,EAAE,sDAA4B;gBACrC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;aAC7B,CAAC;SACH;QAED,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,WAAW,EAAE;YAC3C,MAAM,MAAM,GAAG;gBACb,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,WAAW,CAEvC;aACF,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,sDAA4B;gBAErC,UAAU,EAAE,KAAK,EAAE,cAA2C,EAAE,EAAE,CAAC,cAAc,CAAC,0BAA0B,EAAE;gBAC9G,MAAM;aACP,CAAC;SACH;QAED,MAAM,IAAI,KAAK,EAAE,CAAC;IACpB,CAAC;IAOO,MAAM,CAAC,oBAAoB,CACjC,OAAwC;QAExC,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE;YAC7C,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC;SACnD;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAA6C,CAAC;QACvE,OAAO;YACL,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC;YACxC;gBACE,OAAO,EAAE,QAAQ;gBACjB,QAAQ;gBACR,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;aACpC;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAtJY,uBAAuB;IAFnC,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;IAKN,WAAA,IAAA,eAAM,EAAC,sDAA4B,CAAC,CAAA;;GAJ5B,uBAAuB,CAsJnC;AAtJY,0DAAuB"}
1
+ {"version":3,"file":"opentelemetry-core.module.js","sourceRoot":"","sources":["../src/opentelemetry-core.module.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { Span } from '@opentelemetry/api';
2
2
  export declare class TraceService {
3
+ getTracer(): import("@opentelemetry/api").Tracer;
3
4
  getSpan(): Span;
4
5
  startSpan(name: string): Span;
5
6
  }
@@ -10,12 +10,14 @@ exports.TraceService = void 0;
10
10
  const api_1 = require("@opentelemetry/api");
11
11
  const common_1 = require("@nestjs/common");
12
12
  let TraceService = class TraceService {
13
+ getTracer() {
14
+ return api_1.trace.getTracer('default');
15
+ }
13
16
  getSpan() {
14
17
  return api_1.trace.getSpan(api_1.context.active());
15
18
  }
16
19
  startSpan(name) {
17
- const tracer = api_1.trace.getTracer('default');
18
- return tracer.startSpan(name);
20
+ return this.getTracer().startSpan(name);
19
21
  }
20
22
  };
21
23
  TraceService = __decorate([