nestjs-otel 3.0.4 → 4.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 (144) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc.js +27 -0
  3. package/CHANGELOG.md +19 -0
  4. package/README.md +15 -23
  5. package/lib/index.js +5 -1
  6. package/lib/index.js.map +1 -1
  7. package/lib/interfaces/index.js +5 -1
  8. package/lib/interfaces/index.js.map +1 -1
  9. package/lib/interfaces/opentelemetry-options.interface.d.ts +2 -6
  10. package/lib/metrics/decorators/common.spec.js.map +1 -1
  11. package/lib/metrics/decorators/index.js +5 -1
  12. package/lib/metrics/decorators/index.js.map +1 -1
  13. package/lib/metrics/metric-data.d.ts +4 -4
  14. package/lib/metrics/metric-data.js +6 -6
  15. package/lib/metrics/metric-data.js.map +1 -1
  16. package/lib/metrics/metric.service.d.ts +4 -4
  17. package/lib/metrics/metric.service.js +6 -6
  18. package/lib/metrics/metric.service.js.map +1 -1
  19. package/lib/middleware/api-metrics.middleware.d.ts +10 -17
  20. package/lib/middleware/api-metrics.middleware.js +40 -50
  21. package/lib/middleware/api-metrics.middleware.js.map +1 -1
  22. package/lib/middleware/index.js +5 -1
  23. package/lib/middleware/index.js.map +1 -1
  24. package/lib/opentelemetry-core.module.js +3 -11
  25. package/lib/opentelemetry-core.module.js.map +1 -1
  26. package/lib/opentelemetry.module.js.map +1 -1
  27. package/lib/tracing/decorators/span.d.ts +2 -1
  28. package/lib/tracing/decorators/span.js +2 -2
  29. package/lib/tracing/decorators/span.js.map +1 -1
  30. package/lib/tracing/decorators/span.spec.js +13 -0
  31. package/lib/tracing/decorators/span.spec.js.map +1 -1
  32. package/lib/tracing/trace.service.js.map +1 -1
  33. package/lib/tsconfig.tsbuildinfo +1 -1
  34. package/package.json +30 -30
  35. package/tsconfig.json +16 -0
  36. package/.editorconfig +0 -21
  37. package/.husky/commit-msg +0 -4
  38. package/.husky/pre-commit +0 -5
  39. package/.prettierrc.js +0 -47
  40. package/.vscode/settings.json +0 -8
  41. package/REFERENCE.md +0 -5
  42. package/commitlint.config.js +0 -7
  43. package/examples/nestjs-fastify-prom-grafana-tempo/.dockerignore +0 -5
  44. package/examples/nestjs-fastify-prom-grafana-tempo/Dockerfile +0 -17
  45. package/examples/nestjs-fastify-prom-grafana-tempo/README.md +0 -5
  46. package/examples/nestjs-fastify-prom-grafana-tempo/data/grafana-data/dashboards/nestjs-otel.json +0 -1838
  47. package/examples/nestjs-fastify-prom-grafana-tempo/data/grafana-data/dashboards-provisioning/dashboards.yaml +0 -14
  48. package/examples/nestjs-fastify-prom-grafana-tempo/data/grafana-data/datasources/datasource.yml +0 -60
  49. package/examples/nestjs-fastify-prom-grafana-tempo/docker-compose.yml +0 -86
  50. package/examples/nestjs-fastify-prom-grafana-tempo/etc/loki-local.yaml +0 -64
  51. package/examples/nestjs-fastify-prom-grafana-tempo/etc/prometheus.yaml +0 -27
  52. package/examples/nestjs-fastify-prom-grafana-tempo/etc/promtail-local.yaml +0 -43
  53. package/examples/nestjs-fastify-prom-grafana-tempo/etc/tempo-local.yaml +0 -45
  54. package/examples/nestjs-fastify-prom-grafana-tempo/grafana-dashboard.png +0 -0
  55. package/examples/nestjs-fastify-prom-grafana-tempo/loki-logs.png +0 -0
  56. package/examples/nestjs-fastify-prom-grafana-tempo/nest-cli.json +0 -4
  57. package/examples/nestjs-fastify-prom-grafana-tempo/package.json +0 -85
  58. package/examples/nestjs-fastify-prom-grafana-tempo/src/app.controller.spec.ts +0 -22
  59. package/examples/nestjs-fastify-prom-grafana-tempo/src/app.controller.ts +0 -26
  60. package/examples/nestjs-fastify-prom-grafana-tempo/src/app.module.ts +0 -22
  61. package/examples/nestjs-fastify-prom-grafana-tempo/src/app.service.ts +0 -8
  62. package/examples/nestjs-fastify-prom-grafana-tempo/src/logger/logger.module.ts +0 -17
  63. package/examples/nestjs-fastify-prom-grafana-tempo/src/logger/logger.ts +0 -33
  64. package/examples/nestjs-fastify-prom-grafana-tempo/src/main.ts +0 -20
  65. package/examples/nestjs-fastify-prom-grafana-tempo/src/tracing.ts +0 -48
  66. package/examples/nestjs-fastify-prom-grafana-tempo/test/app.e2e-spec.ts +0 -24
  67. package/examples/nestjs-fastify-prom-grafana-tempo/test/jest-e2e.json +0 -9
  68. package/examples/nestjs-fastify-prom-grafana-tempo/tsconfig.build.json +0 -4
  69. package/examples/nestjs-prom-grafana-tempo/.dockerignore +0 -5
  70. package/examples/nestjs-prom-grafana-tempo/Dockerfile +0 -17
  71. package/examples/nestjs-prom-grafana-tempo/README.md +0 -11
  72. package/examples/nestjs-prom-grafana-tempo/data/grafana-data/dashboards/nestjs-otel.json +0 -1838
  73. package/examples/nestjs-prom-grafana-tempo/data/grafana-data/dashboards-provisioning/dashboards.yaml +0 -14
  74. package/examples/nestjs-prom-grafana-tempo/data/grafana-data/datasources/datasource.yml +0 -60
  75. package/examples/nestjs-prom-grafana-tempo/docker-compose.yml +0 -86
  76. package/examples/nestjs-prom-grafana-tempo/etc/loki-local.yaml +0 -64
  77. package/examples/nestjs-prom-grafana-tempo/etc/prometheus.yaml +0 -27
  78. package/examples/nestjs-prom-grafana-tempo/etc/promtail-local.yaml +0 -43
  79. package/examples/nestjs-prom-grafana-tempo/etc/tempo-local.yaml +0 -45
  80. package/examples/nestjs-prom-grafana-tempo/grafana-dashboard.png +0 -0
  81. package/examples/nestjs-prom-grafana-tempo/loki-logs.png +0 -0
  82. package/examples/nestjs-prom-grafana-tempo/nest-cli.json +0 -4
  83. package/examples/nestjs-prom-grafana-tempo/package.json +0 -89
  84. package/examples/nestjs-prom-grafana-tempo/src/app.controller.spec.ts +0 -22
  85. package/examples/nestjs-prom-grafana-tempo/src/app.controller.ts +0 -26
  86. package/examples/nestjs-prom-grafana-tempo/src/app.module.ts +0 -23
  87. package/examples/nestjs-prom-grafana-tempo/src/app.service.ts +0 -8
  88. package/examples/nestjs-prom-grafana-tempo/src/logger/logger.module.ts +0 -17
  89. package/examples/nestjs-prom-grafana-tempo/src/logger/logger.ts +0 -33
  90. package/examples/nestjs-prom-grafana-tempo/src/main.ts +0 -26
  91. package/examples/nestjs-prom-grafana-tempo/src/team/team.controller.ts +0 -22
  92. package/examples/nestjs-prom-grafana-tempo/src/team/team.entity.ts +0 -18
  93. package/examples/nestjs-prom-grafana-tempo/src/team/team.module.ts +0 -9
  94. package/examples/nestjs-prom-grafana-tempo/src/team/team.service.ts +0 -30
  95. package/examples/nestjs-prom-grafana-tempo/src/tracing.ts +0 -48
  96. package/examples/nestjs-prom-grafana-tempo/test/app.e2e-spec.ts +0 -24
  97. package/examples/nestjs-prom-grafana-tempo/test/jest-e2e.json +0 -9
  98. package/examples/nestjs-prom-grafana-tempo/tsconfig.build.json +0 -4
  99. package/examples/nestjs-prom-grafana-tempo-otel-collector/.dockerignore +0 -5
  100. package/examples/nestjs-prom-grafana-tempo-otel-collector/Dockerfile +0 -17
  101. package/examples/nestjs-prom-grafana-tempo-otel-collector/README.md +0 -5
  102. package/examples/nestjs-prom-grafana-tempo-otel-collector/data/grafana-data/dashboards/nestjs-otel.json +0 -1838
  103. package/examples/nestjs-prom-grafana-tempo-otel-collector/data/grafana-data/dashboards-provisioning/dashboards.yaml +0 -14
  104. package/examples/nestjs-prom-grafana-tempo-otel-collector/data/grafana-data/datasources/datasource.yml +0 -60
  105. package/examples/nestjs-prom-grafana-tempo-otel-collector/docker-compose.yml +0 -101
  106. package/examples/nestjs-prom-grafana-tempo-otel-collector/etc/loki-local.yaml +0 -64
  107. package/examples/nestjs-prom-grafana-tempo-otel-collector/etc/otel-collector-config.yaml +0 -37
  108. package/examples/nestjs-prom-grafana-tempo-otel-collector/etc/prometheus.yaml +0 -28
  109. package/examples/nestjs-prom-grafana-tempo-otel-collector/etc/promtail-local.yaml +0 -43
  110. package/examples/nestjs-prom-grafana-tempo-otel-collector/etc/tempo-local.yaml +0 -45
  111. package/examples/nestjs-prom-grafana-tempo-otel-collector/grafana-dashboard.png +0 -0
  112. package/examples/nestjs-prom-grafana-tempo-otel-collector/loki-logs.png +0 -0
  113. package/examples/nestjs-prom-grafana-tempo-otel-collector/nest-cli.json +0 -4
  114. package/examples/nestjs-prom-grafana-tempo-otel-collector/package.json +0 -86
  115. package/examples/nestjs-prom-grafana-tempo-otel-collector/src/app.controller.spec.ts +0 -22
  116. package/examples/nestjs-prom-grafana-tempo-otel-collector/src/app.controller.ts +0 -26
  117. package/examples/nestjs-prom-grafana-tempo-otel-collector/src/app.module.ts +0 -22
  118. package/examples/nestjs-prom-grafana-tempo-otel-collector/src/app.service.ts +0 -8
  119. package/examples/nestjs-prom-grafana-tempo-otel-collector/src/logger/logger.module.ts +0 -17
  120. package/examples/nestjs-prom-grafana-tempo-otel-collector/src/logger/logger.ts +0 -33
  121. package/examples/nestjs-prom-grafana-tempo-otel-collector/src/main.ts +0 -13
  122. package/examples/nestjs-prom-grafana-tempo-otel-collector/src/tracing.ts +0 -54
  123. package/examples/nestjs-prom-grafana-tempo-otel-collector/test/app.e2e-spec.ts +0 -24
  124. package/examples/nestjs-prom-grafana-tempo-otel-collector/test/jest-e2e.json +0 -9
  125. package/examples/nestjs-prom-grafana-tempo-otel-collector/tsconfig.build.json +0 -4
  126. package/src/interfaces/opentelemetry-options.interface.ts +0 -59
  127. package/src/metrics/decorators/common.spec.ts +0 -37
  128. package/src/metrics/decorators/common.ts +0 -61
  129. package/src/metrics/decorators/counter.ts +0 -17
  130. package/src/metrics/decorators/histogram.ts +0 -10
  131. package/src/metrics/decorators/observable.ts +0 -28
  132. package/src/metrics/injector.ts +0 -14
  133. package/src/metrics/metric-data.ts +0 -116
  134. package/src/metrics/metric.service.ts +0 -48
  135. package/src/metrics/utils.spec.ts +0 -9
  136. package/src/metrics/utils.ts +0 -6
  137. package/src/middleware/api-metrics.middleware.ts +0 -174
  138. package/src/opentelemetry-core.module.ts +0 -175
  139. package/src/opentelemetry.constants.ts +0 -2
  140. package/src/opentelemetry.module.ts +0 -34
  141. package/src/opentelemetry.utils.ts +0 -15
  142. package/src/tracing/decorators/span.spec.ts +0 -103
  143. package/src/tracing/decorators/span.ts +0 -46
  144. package/src/tracing/trace.service.ts +0 -17
package/.eslintignore ADDED
@@ -0,0 +1 @@
1
+ examples/**/*.js
package/.eslintrc.js ADDED
@@ -0,0 +1,27 @@
1
+ module.exports = {
2
+ extends: ['airbnb-base', 'airbnb-typescript/base'],
3
+ parserOptions: {
4
+ project: './tsconfig.json',
5
+ createDefaultProgram: true,
6
+ },
7
+ ignorePatterns: ['**/examples/**/*', 'lib/**/*'],
8
+ rules: {
9
+ 'import/prefer-default-export': 'off',
10
+ 'import/no-cycle': 'off',
11
+ 'no-restricted-syntax': [
12
+ 'error',
13
+ 'ForInStatement',
14
+ 'LabeledStatement',
15
+ 'WithStatement',
16
+ ],
17
+ 'no-unused-vars': 'off',
18
+ '@typescript-eslint/no-unused-vars': 'off',
19
+ 'arrow-parens': 'off',
20
+ 'import/no-unresolved': 'off',
21
+ 'new-cap': 'off',
22
+ 'class-methods-use-this': 'off',
23
+ 'no-case-declarations': 'off',
24
+ 'no-promise-executor-return': 'off',
25
+ 'no-unsafe-optional-chaining': 'off',
26
+ },
27
+ };
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## [4.0.0](https://www.github.com/pragmaticivan/nestjs-otel/compare/v3.0.4...v4.0.0) (2022-08-29)
4
+
5
+
6
+ ### ⚠ BREAKING CHANGES
7
+
8
+ * support latest metric sdk
9
+
10
+ ### Features
11
+
12
+ * **build:** update dependencies ([c2f8b7b](https://www.github.com/pragmaticivan/nestjs-otel/commit/c2f8b7b9fbe116953521fb6b5d7f4648d09d7712))
13
+ * support latest metric sdk ([e8d2e96](https://www.github.com/pragmaticivan/nestjs-otel/commit/e8d2e96da5161cd5c4ee78290244144f5849ec8b))
14
+ * **tracing:** pass options with span decorator ([3424b88](https://www.github.com/pragmaticivan/nestjs-otel/commit/3424b884e949792679dac79f7b3624cc6e67b110))
15
+ * update remaining counters ([d11f6d9](https://www.github.com/pragmaticivan/nestjs-otel/commit/d11f6d98cf25639c01e24c9007a43d3e06c32738))
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * forRootAsync uses the wrong module and empty options breaks the configure method ([c2dc102](https://www.github.com/pragmaticivan/nestjs-otel/commit/c2dc102d41f2ddc1ca3e8a814e7243fc4cc4b773))
21
+
3
22
  ### [3.0.4](https://www.github.com/pragmaticivan/nestjs-otel/compare/v3.0.3...v3.0.4) (2022-03-29)
4
23
 
5
24
 
package/README.md CHANGED
@@ -118,10 +118,8 @@ bootstrap();
118
118
  const OpenTelemetryModuleConfig = OpenTelemetryModule.forRoot({
119
119
  metrics: {
120
120
  hostMetrics: true, // Includes Host Metrics
121
- defaultMetrics: true, // Includes Default Metrics
122
121
  apiMetrics: {
123
122
  enable: true, // Includes api metrics
124
- timeBuckets: [], // You can change the default time buckets
125
123
  defaultAttributes: {
126
124
  // You can set default labels for api metrics
127
125
  custom: 'label',
@@ -264,18 +262,17 @@ export class AppController {
264
262
 
265
263
  ## API Metrics with Middleware
266
264
 
267
- | Impl | Metric | Description | Labels | Metric Type |
268
- | ---- | ----------------------------- | ----------------------------------------- | -------------------- | ----------- |
269
- | ✅ | http_request_total | Total number of HTTP requests. | method, path | Counter |
270
- | ✅ | http_response_total | Total number of HTTP responses. | method, status, path | Counter |
271
- | ✅ | http_response_success_total | Total number of all successful responses. | - | Counter |
272
- | ✅ | http_response_error_total | Total number of all response errors. | - | Counter |
273
- | ✅ | http_request_duration_seconds | HTTP latency value recorder in seconds. | method, status, path | Histogram |
274
- | ✅ | http_client_error_total | Total number of client error requests. | - | Counter |
275
- | ✅ | http_server_error_total | Total number of server error requests. | - | Counter |
276
- | ✅ | http_server_aborts_total | Total number of data transfers aborted. | - | Counter |
277
- | ✅ | http_request_size_bytes | Current total of incoming bytes. | - | Histogram |
278
- | ✅ | http_response_size_bytes | Current total of outgoing bytes. | - | Histogram |
265
+ | Impl | Otel Metric | Prometheus Metric | Description | Metric Type |
266
+ | ---- | -------------------------------- | --------------------------------------- | ----------------------------------------- | ----------- |
267
+ | ✅ | http.server.request.count | http_server_request_count_total | Total number of HTTP requests. | Counter |
268
+ | ✅ | http.server.response.count | http_server_response_count_total | Total number of HTTP responses. | Counter |
269
+ | ✅ | http.server.abort.count | http_server_abort_count_total | Total number of data transfers aborted. | Counter |
270
+ | ✅ | http.server.duration | http_server_duration | The duration of the inbound HTTP request. | Histogram |
271
+ | ✅ | http.server.request.size | http_server_request_size | Size of incoming bytes. | Histogram |
272
+ | ✅ | http.server.response.size | http_server_response_size | Size of outgoing bytes. | Histogram |
273
+ | ✅ | http.server.response.success.count | http_server_response_success_count_total | Total number of all successful responses. | Counter |
274
+ | ✅ | http.server.response.error.count | http_server_response_error_count_total | Total number of all response errors'. | Counter |
275
+ | ✅ | http.client.request.error.count | http_client_request_error_count_total | Total number of client error requests. | Counter |
279
276
 
280
277
  ## Prometheus Metrics
281
278
 
@@ -320,16 +317,11 @@ export const logger: Logger = Pino(loggerOptions);
320
317
 
321
318
  ## Examples
322
319
 
323
- A full working example can be found in `/examples/nestjs-prom-grafana-tempo`. This includes a nestjs application fully integrated with prometheus, grafana, loki and tempo.
324
-
325
- A dashboard example is also available:
326
-
327
- ![Grafana Dashboard](./examples/nestjs-prom-grafana-tempo/grafana-dashboard.png)
328
-
329
- Logs are automatically associated with tracing (Loki + Tempo):
330
-
331
- ![Loki](./examples/nestjs-prom-grafana-tempo/loki-logs.png)
320
+ A full working examples are available. This includes a nestjs application fully integrated with prometheus, grafana, loki and tempo:
332
321
 
322
+ * [nestjs-otel-prom-grafana-tempo-otel-collector](https://github.com/pragmaticivan/nestjs-otel-prom-grafana-tempo-otel-collector)
323
+ * [nestjs-otel-fastify-prom-grafana-tempo ](https://github.com/pragmaticivan/nestjs-otel-fastify-prom-grafana-tempo )
324
+ * [nestjs-otel-prom-grafana-tempo ](https://github.com/pragmaticivan/nestjs-otel-prom-grafana-tempo )
333
325
  ## Stargazers over time
334
326
 
335
327
  [![Stargazers over time](https://starchart.cc/pragmaticivan/nestjs-otel.svg)](https://starchart.cc/pragmaticivan/nestjs-otel)
package/lib/index.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAuC;AACvC,4DAA0C;AAC1C,0DAAwC;AACxC,2DAAyC;AACzC,qDAAmC;AACnC,uDAAqC;AACrC,4DAA0C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,yDAAuC;AACvC,4DAA0C;AAC1C,0DAAwC;AACxC,2DAAyC;AACzC,qDAAmC;AACnC,uDAAqC;AACrC,4DAA0C"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oEAAkD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oEAAkD"}
@@ -1,5 +1,5 @@
1
1
  import { ModuleMetadata, Type, Abstract } from '@nestjs/common';
2
- import { Attributes } from '@opentelemetry/api-metrics';
2
+ import { MetricAttributes } from '@opentelemetry/api-metrics';
3
3
  import { RouteInfo } from '@nestjs/common/interfaces';
4
4
  export declare type OpenTelemetryModuleOptions = {
5
5
  metrics?: OpenTelemetryMetrics;
@@ -15,14 +15,10 @@ export interface OpenTelemetryModuleAsyncOptions extends Pick<ModuleMetadata, 'i
15
15
  inject?: (string | symbol | Function | Type<any> | Abstract<any>)[];
16
16
  }
17
17
  export declare type OpenTelemetryMetrics = {
18
- defaultMetrics?: boolean;
19
18
  hostMetrics?: boolean;
20
19
  apiMetrics?: {
21
20
  enable?: boolean;
22
- timeBuckets?: number[];
23
- requestSizeBuckets?: number[];
24
- responseSizeBuckets?: number[];
25
- defaultAttributes?: Attributes;
21
+ defaultAttributes?: MetricAttributes;
26
22
  ignoreRoutes?: (string | RouteInfo)[];
27
23
  ignoreUndefinedRoutes?: boolean;
28
24
  };
@@ -1 +1 @@
1
- {"version":3,"file":"common.spec.js","sourceRoot":"","sources":["../../../src/metrics/decorators/common.spec.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,4BAA0B;AAC1B,2CAA6C;AAC7C,qCAAkE;AAElE,MAAM,6BAA6B,GAAG,GAAG,EAAE,CAAC,IAAA,oBAAW,EAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AAI/E,IAAM,SAAS,GAAf,MAAM,SAAS;IAGb,MAAM,KAAI,CAAC;CACZ,CAAA;AADC;IAFC,6BAA6B,EAAE;IAC/B,IAAA,0BAAiB,GAAE;;;;uCACT;AAHP,SAAS;IAFd,IAAA,4BAAmB,GAAE;IACrB,6BAA6B,EAAE;GAC1B,SAAS,CAId;AAED,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,IAAI,QAAmB,CAAC;IAExB,UAAU,CAAC,GAAG,EAAE;QACd,QAAQ,GAAG,IAAI,SAAS,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAI,QAAmB,CAAC;IAExB,UAAU,CAAC,GAAG,EAAE;QACd,QAAQ,GAAG,IAAI,SAAS,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"common.spec.js","sourceRoot":"","sources":["../../../src/metrics/decorators/common.spec.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,4BAA0B;AAC1B,2CAA6C;AAC7C,qCAAkE;AAElE,MAAM,6BAA6B,GAAG,GAAG,EAAE,CAAC,IAAA,oBAAW,EAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AAI/E,IAAM,SAAS,GAAf,MAAM,SAAS;IAGb,MAAM,KAAI,CAAC;CACZ,CAAA;AAHC;IAAC,6BAA6B,EAAE;IAC/B,IAAA,0BAAiB,GAAE;;;;uCACT;AAHP,SAAS;IAFd,IAAA,4BAAmB,GAAE;IACrB,6BAA6B,EAAE;GAC1B,SAAS,CAId;AAED,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,IAAI,QAAmB,CAAC;IAExB,UAAU,CAAC,GAAG,EAAE;QACd,QAAQ,GAAG,IAAI,SAAS,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAI,QAAmB,CAAC;IAExB,UAAU,CAAC,GAAG,EAAE;QACd,QAAQ,GAAG,IAAI,SAAS,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metrics/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAyB;AACzB,4CAA0B;AAC1B,8CAA4B;AAC5B,+CAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metrics/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,4CAA0B;AAC1B,8CAA4B;AAC5B,+CAA6B"}
@@ -1,4 +1,4 @@
1
- import { Counter, MetricOptions, UpDownCounter, Histogram, ObservableGauge, ObservableCounter, ObservableUpDownCounter, ObservableResult } from '@opentelemetry/api-metrics';
1
+ import { Counter, MetricOptions, UpDownCounter, Histogram, ObservableGauge, ObservableCounter, ObservableUpDownCounter } from '@opentelemetry/api-metrics';
2
2
  export declare type GenericMetric = Counter | UpDownCounter | Histogram | ObservableGauge | ObservableCounter | ObservableUpDownCounter;
3
3
  export declare enum MetricType {
4
4
  'Counter' = "Counter",
@@ -12,6 +12,6 @@ export declare const meterData: Map<string, GenericMetric>;
12
12
  export declare function getOrCreateHistogram(name: string, options: MetricOptions): Histogram;
13
13
  export declare function getOrCreateCounter(name: string, options: MetricOptions): Counter;
14
14
  export declare function getOrCreateUpDownCounter(name: string, options: MetricOptions): UpDownCounter;
15
- export declare function getOrCreateObservableGauge(name: string, options: MetricOptions, callback?: (observableResult: ObservableResult) => void): ObservableGauge;
16
- export declare function getOrCreateObservableCounter(name: string, options: MetricOptions, callback?: (observableResult: ObservableResult) => void): ObservableCounter;
17
- export declare function getOrCreateObservableUpDownCounter(name: string, options: MetricOptions, callback?: (observableResult: ObservableResult) => void): ObservableUpDownCounter;
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;
@@ -43,32 +43,32 @@ function getOrCreateUpDownCounter(name, options) {
43
43
  return upDownCounter;
44
44
  }
45
45
  exports.getOrCreateUpDownCounter = getOrCreateUpDownCounter;
46
- function getOrCreateObservableGauge(name, options, callback) {
46
+ function getOrCreateObservableGauge(name, options) {
47
47
  if (exports.meterData.has(name)) {
48
48
  return exports.meterData.get(name);
49
49
  }
50
50
  const meter = api_metrics_1.metrics.getMeterProvider().getMeter(opentelemetry_constants_1.OTEL_METER_NAME);
51
- const observableGauge = meter.createObservableGauge(name, options, callback);
51
+ const observableGauge = meter.createObservableGauge(name, options);
52
52
  exports.meterData.set(name, observableGauge);
53
53
  return observableGauge;
54
54
  }
55
55
  exports.getOrCreateObservableGauge = getOrCreateObservableGauge;
56
- function getOrCreateObservableCounter(name, options, callback) {
56
+ function getOrCreateObservableCounter(name, options) {
57
57
  if (exports.meterData.has(name)) {
58
58
  return exports.meterData.get(name);
59
59
  }
60
60
  const meter = api_metrics_1.metrics.getMeterProvider().getMeter(opentelemetry_constants_1.OTEL_METER_NAME);
61
- const observableCounter = meter.createObservableCounter(name, options, callback);
61
+ const observableCounter = meter.createObservableCounter(name, options);
62
62
  exports.meterData.set(name, observableCounter);
63
63
  return observableCounter;
64
64
  }
65
65
  exports.getOrCreateObservableCounter = getOrCreateObservableCounter;
66
- function getOrCreateObservableUpDownCounter(name, options, callback) {
66
+ function getOrCreateObservableUpDownCounter(name, options) {
67
67
  if (exports.meterData.has(name)) {
68
68
  return exports.meterData.get(name);
69
69
  }
70
70
  const meter = api_metrics_1.metrics.getMeterProvider().getMeter(opentelemetry_constants_1.OTEL_METER_NAME);
71
- const observableCounter = meter.createObservableCounter(name, options, callback);
71
+ const observableCounter = meter.createObservableCounter(name, options);
72
72
  exports.meterData.set(name, observableCounter);
73
73
  return observableCounter;
74
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"metric-data.js","sourceRoot":"","sources":["../../src/metrics/metric-data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metric-data.js","sourceRoot":"","sources":["../../src/metrics/metric-data.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { MetricOptions, ObservableResult } from '@opentelemetry/api-metrics';
1
+ import { MetricOptions } from '@opentelemetry/api-metrics';
2
2
  export declare class MetricService {
3
3
  getCounter(name: string, options?: MetricOptions): import("@opentelemetry/api-metrics").Counter;
4
4
  getUpDownCounter(name: string, options?: MetricOptions): import("@opentelemetry/api-metrics").UpDownCounter;
5
5
  getHistogram(name: string, options?: MetricOptions): import("@opentelemetry/api-metrics").Histogram;
6
- getObservableCounter(name: string, options?: MetricOptions, callback?: (observableResult: ObservableResult) => void): import("@opentelemetry/api-metrics").ObservableBase;
7
- getObservableGauge(name: string, options?: MetricOptions, callback?: (observableResult: ObservableResult) => void): import("@opentelemetry/api-metrics").ObservableBase;
8
- getObservableUpDownCounter(name: string, options?: MetricOptions, callback?: (observableResult: ObservableResult) => void): import("@opentelemetry/api-metrics").ObservableBase;
6
+ getObservableCounter(name: string, options?: MetricOptions): import("@opentelemetry/api-metrics").Observable;
7
+ getObservableGauge(name: string, options?: MetricOptions): import("@opentelemetry/api-metrics").Observable;
8
+ getObservableUpDownCounter(name: string, options?: MetricOptions): import("@opentelemetry/api-metrics").Observable;
9
9
  }
@@ -19,14 +19,14 @@ let MetricService = class MetricService {
19
19
  getHistogram(name, options) {
20
20
  return (0, metric_data_1.getOrCreateHistogram)(name, options);
21
21
  }
22
- getObservableCounter(name, options, callback) {
23
- return (0, metric_data_1.getOrCreateObservableCounter)(name, options, callback);
22
+ getObservableCounter(name, options) {
23
+ return (0, metric_data_1.getOrCreateObservableCounter)(name, options);
24
24
  }
25
- getObservableGauge(name, options, callback) {
26
- return (0, metric_data_1.getOrCreateObservableGauge)(name, options, callback);
25
+ getObservableGauge(name, options) {
26
+ return (0, metric_data_1.getOrCreateObservableGauge)(name, options);
27
27
  }
28
- getObservableUpDownCounter(name, options, callback) {
29
- return (0, metric_data_1.getOrCreateObservableUpDownCounter)(name, options, callback);
28
+ getObservableUpDownCounter(name, options) {
29
+ return (0, metric_data_1.getOrCreateObservableUpDownCounter)(name, options);
30
30
  }
31
31
  };
32
32
  MetricService = __decorate([
@@ -1 +1 @@
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,CAClB,IAAY,EACZ,OAAuB,EACvB,QAAuD;QAEvD,OAAO,IAAA,0CAA4B,EAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAED,kBAAkB,CAChB,IAAY,EACZ,OAAuB,EACvB,QAAuD;QAEvD,OAAO,IAAA,wCAA0B,EAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED,0BAA0B,CACxB,IAAY,EACZ,OAAuB,EACvB,QAAuD;QAEvD,OAAO,IAAA,gDAAkC,EAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACrE,CAAC;CACF,CAAA;AApCY,aAAa;IADzB,IAAA,mBAAU,GAAE;GACA,aAAa,CAoCzB;AApCY,sCAAa"}
1
+ {"version":3,"file":"metric.service.js","sourceRoot":"","sources":["../../src/metrics/metric.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAI5C,+CAIuB;AAGhB,IAAM,aAAa,GAAnB,MAAM,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,CAClB,IAAY,EACZ,OAAuB;QAEvB,OAAO,IAAA,0CAA4B,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,kBAAkB,CAChB,IAAY,EACZ,OAAuB;QAEvB,OAAO,IAAA,wCAA0B,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,0BAA0B,CACxB,IAAY,EACZ,OAAuB;QAEvB,OAAO,IAAA,gDAAkC,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;CACF,CAAA;AAjCY,aAAa;IADzB,IAAA,mBAAU,GAAE;GACA,aAAa,CAiCzB;AAjCY,sCAAa"}
@@ -1,26 +1,19 @@
1
1
  import { NestMiddleware } from '@nestjs/common';
2
2
  import { OpenTelemetryModuleOptions } from '../interfaces';
3
3
  import { MetricService } from '../metrics/metric.service';
4
- export declare const DEFAULT_LONG_RUNNING_REQUEST_BUCKETS: number[];
5
- export declare const DEFAULT_REQUEST_SIZE_BUCKETS: number[];
6
- export declare const DEFAULT_RESPONSE_SIZE_BUCKETS: number[];
7
4
  export declare class ApiMetricsMiddleware implements NestMiddleware {
8
5
  private readonly metricService;
9
6
  private readonly options;
10
- private readonly defaultLongRunningRequestBuckets;
11
- private readonly defaultRequestSizeBuckets;
12
- private readonly defaultResponseSizeBuckets;
13
- private requestTotal;
14
- private responseTotal;
15
- private responseSuccessTotal;
16
- private responseErrorTotal;
17
- private responseClientErrorTotal;
18
- private responseServerErrorTotal;
19
- private serverAbortsTotal;
20
- private requestDuration;
21
- private requestSizeHistogram;
22
- private responseSizeHistogram;
23
- private defaultAttributes;
7
+ private defaultMetricAttributes;
8
+ private httpServerRequestCount;
9
+ private httpServerResponseCount;
10
+ private httpServerDuration;
11
+ private httpServerRequestSize;
12
+ private httpServerResponseSize;
13
+ private httpServerResponseSuccessCount;
14
+ private httpServerResponseErrorCount;
15
+ private httpClientRequestErrorCount;
16
+ private httpServerAbortCount;
24
17
  private readonly ignoreUndefinedRoutes;
25
18
  constructor(metricService: MetricService, options?: OpenTelemetryModuleOptions);
26
19
  use(req: any, res: any, next: any): void;
@@ -12,62 +12,52 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.ApiMetricsMiddleware = exports.DEFAULT_RESPONSE_SIZE_BUCKETS = exports.DEFAULT_REQUEST_SIZE_BUCKETS = exports.DEFAULT_LONG_RUNNING_REQUEST_BUCKETS = void 0;
15
+ exports.ApiMetricsMiddleware = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
17
  const responseTime = require("response-time");
18
18
  const urlParser = require("url");
19
19
  const metric_service_1 = require("../metrics/metric.service");
20
20
  const opentelemetry_constants_1 = require("../opentelemetry.constants");
21
- exports.DEFAULT_LONG_RUNNING_REQUEST_BUCKETS = [
22
- 0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10,
23
- 30, 60, 120, 300, 600,
24
- ];
25
- exports.DEFAULT_REQUEST_SIZE_BUCKETS = [5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000, 10000];
26
- exports.DEFAULT_RESPONSE_SIZE_BUCKETS = [
27
- 5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000, 10000,
28
- ];
29
21
  let ApiMetricsMiddleware = class ApiMetricsMiddleware {
30
22
  constructor(metricService, options = {}) {
31
23
  this.metricService = metricService;
32
24
  this.options = options;
33
- this.defaultLongRunningRequestBuckets = exports.DEFAULT_LONG_RUNNING_REQUEST_BUCKETS;
34
- this.defaultRequestSizeBuckets = exports.DEFAULT_REQUEST_SIZE_BUCKETS;
35
- this.defaultResponseSizeBuckets = exports.DEFAULT_RESPONSE_SIZE_BUCKETS;
36
- this.requestTotal = this.metricService.getCounter('http_request_total', {
25
+ const { defaultAttributes = {}, ignoreUndefinedRoutes = false, } = options?.metrics?.apiMetrics;
26
+ this.defaultMetricAttributes = defaultAttributes;
27
+ this.ignoreUndefinedRoutes = ignoreUndefinedRoutes;
28
+ this.httpServerRequestCount = this.metricService.getCounter('http.server.request.count', {
37
29
  description: 'Total number of HTTP requests',
30
+ unit: 'requests',
38
31
  });
39
- this.responseTotal = this.metricService.getCounter('http_response_total', {
32
+ this.httpServerResponseCount = this.metricService.getCounter('http.server.response.count', {
40
33
  description: 'Total number of HTTP responses',
34
+ unit: 'responses',
41
35
  });
42
- this.responseSuccessTotal = this.metricService.getCounter('http_response_success_total', {
43
- description: 'Total number of all successful responses',
36
+ this.httpServerAbortCount = this.metricService.getCounter('http.server.abort.count', {
37
+ description: 'Total number of data transfers aborted',
38
+ unit: 'requests',
44
39
  });
45
- this.responseErrorTotal = this.metricService.getCounter('http_response_error_total', {
46
- description: 'Total number of all response errors',
40
+ this.httpServerDuration = this.metricService.getHistogram('http.server.duration', {
41
+ description: 'The duration of the inbound HTTP request',
42
+ unit: 'ms',
47
43
  });
48
- this.responseClientErrorTotal = this.metricService.getCounter('http_client_error_total', {
49
- description: 'Total number of client error requests',
44
+ this.httpServerRequestSize = this.metricService.getHistogram('http.server.request.size', {
45
+ description: 'Size of incoming bytes',
46
+ unit: 'By',
50
47
  });
51
- this.responseServerErrorTotal = this.metricService.getCounter('http_server_error_total', {
52
- description: 'Total number of server error requests',
48
+ this.httpServerResponseSize = this.metricService.getHistogram('http.server.response.size', {
49
+ description: 'Size of outgoing bytes',
50
+ unit: 'By',
53
51
  });
54
- this.serverAbortsTotal = this.metricService.getCounter('http_server_aborts_total', {
55
- description: 'Total number of data transfers aborted',
56
- });
57
- const { timeBuckets = [], requestSizeBuckets = [], responseSizeBuckets = [], defaultAttributes = {}, ignoreUndefinedRoutes = false, } = options?.metrics?.apiMetrics;
58
- this.defaultAttributes = defaultAttributes;
59
- this.ignoreUndefinedRoutes = ignoreUndefinedRoutes;
60
- this.requestDuration = this.metricService.getHistogram('http_request_duration_seconds', {
61
- boundaries: timeBuckets.length > 0 ? timeBuckets : this.defaultLongRunningRequestBuckets,
62
- description: 'HTTP latency value recorder in seconds',
52
+ this.httpServerResponseSuccessCount = this.metricService.getCounter('http.server.response.success.count', {
53
+ description: 'Total number of all successful responses',
54
+ unit: 'responses',
63
55
  });
64
- this.requestSizeHistogram = this.metricService.getHistogram('http_request_size_bytes', {
65
- boundaries: requestSizeBuckets.length > 0 ? requestSizeBuckets : this.defaultRequestSizeBuckets,
66
- description: 'Current total of incoming bytes',
56
+ this.httpServerResponseErrorCount = this.metricService.getCounter('http.server.response.error.count', {
57
+ description: 'Total number of all response errors',
67
58
  });
68
- this.responseSizeHistogram = this.metricService.getHistogram('http_response_size_bytes', {
69
- boundaries: responseSizeBuckets.length > 0 ? responseSizeBuckets : this.defaultResponseSizeBuckets,
70
- description: 'Current total of outgoing bytes',
59
+ this.httpClientRequestErrorCount = this.metricService.getCounter('http.client.request.error.count', {
60
+ description: 'Total number of client error requests',
71
61
  });
72
62
  }
73
63
  use(req, res, next) {
@@ -83,37 +73,37 @@ let ApiMetricsMiddleware = class ApiMetricsMiddleware {
83
73
  else {
84
74
  path = urlParser.parse(url).pathname;
85
75
  }
86
- this.requestTotal.add(1, { method, path });
76
+ this.httpServerRequestCount.add(1, { method, path });
87
77
  const requestLength = parseInt(req.headers['content-length'], 10) || 0;
88
78
  const responseLength = parseInt(res.getHeader('Content-Length'), 10) || 0;
89
79
  const status = res.statusCode || 500;
90
80
  const attributes = {
91
- method, status, path, ...this.defaultAttributes,
81
+ method, status, path, ...this.defaultMetricAttributes,
92
82
  };
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);
83
+ this.httpServerRequestSize.record(requestLength, attributes);
84
+ this.httpServerResponseSize.record(responseLength, attributes);
85
+ this.httpServerResponseCount.add(1, attributes);
86
+ this.httpServerDuration.record(time / 1000, attributes);
97
87
  const codeClass = this.getStatusCodeClass(status);
98
88
  switch (codeClass) {
99
89
  case 'success':
100
- this.responseSuccessTotal.add(1);
90
+ this.httpServerResponseSuccessCount.add(1);
101
91
  break;
102
92
  case 'redirect':
103
- this.responseSuccessTotal.add(1);
93
+ this.httpServerResponseSuccessCount.add(1);
104
94
  break;
105
95
  case 'client_error':
106
- this.responseErrorTotal.add(1);
107
- this.responseClientErrorTotal.add(1);
96
+ this.httpServerResponseErrorCount.add(1);
97
+ this.httpClientRequestErrorCount.add(1);
108
98
  break;
109
99
  case 'server_error':
110
- this.responseErrorTotal.add(1);
111
- this.responseServerErrorTotal.add(1);
100
+ this.httpServerResponseErrorCount.add(1);
101
+ this.httpClientRequestErrorCount.add(1);
112
102
  break;
113
103
  }
114
104
  req.on('end', () => {
115
105
  if (req.aborted === true) {
116
- this.serverAbortsTotal.add(1);
106
+ this.httpServerAbortCount.add(1);
117
107
  }
118
108
  });
119
109
  })(req, res, next);
@@ -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,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2DAAyC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,2DAAyC"}
@@ -21,13 +21,12 @@ const metric_service_1 = require("./metrics/metric.service");
21
21
  const middleware_1 = require("./middleware");
22
22
  const opentelemetry_constants_1 = require("./opentelemetry.constants");
23
23
  const trace_service_1 = require("./tracing/trace.service");
24
- const opentelemetry_module_1 = require("./opentelemetry.module");
25
24
  let OpenTelemetryCoreModule = OpenTelemetryCoreModule_1 = class OpenTelemetryCoreModule {
26
25
  constructor(options = {}) {
27
26
  this.options = options;
28
27
  this.logger = new common_1.Logger('OpenTelemetryModule');
29
28
  }
30
- static forRoot(options = { metrics: {} }) {
29
+ static forRoot(options = {}) {
31
30
  const openTelemetryModuleOptions = {
32
31
  provide: opentelemetry_constants_1.OPENTELEMETRY_MODULE_OPTIONS,
33
32
  useValue: options,
@@ -48,7 +47,7 @@ let OpenTelemetryCoreModule = OpenTelemetryCoreModule_1 = class OpenTelemetryCor
48
47
  static forRootAsync(options) {
49
48
  const asyncProviders = this.createAsyncProviders(options);
50
49
  return {
51
- module: opentelemetry_module_1.OpenTelemetryModule,
50
+ module: OpenTelemetryCoreModule_1,
52
51
  imports: [...(options.imports || [])],
53
52
  providers: [
54
53
  ...asyncProviders,
@@ -62,7 +61,7 @@ let OpenTelemetryCoreModule = OpenTelemetryCoreModule_1 = class OpenTelemetryCor
62
61
  };
63
62
  }
64
63
  configure(consumer) {
65
- const { apiMetrics = { enable: false }, } = this.options?.metrics;
64
+ const { apiMetrics = { enable: false }, } = this.options?.metrics ?? {};
66
65
  if (apiMetrics.enable === true) {
67
66
  if (apiMetrics?.ignoreRoutes && apiMetrics?.ignoreRoutes.length > 0) {
68
67
  consumer.apply(middleware_1.ApiMetricsMiddleware).exclude(...apiMetrics.ignoreRoutes).forRoutes('*');
@@ -73,18 +72,12 @@ let OpenTelemetryCoreModule = OpenTelemetryCoreModule_1 = class OpenTelemetryCor
73
72
  }
74
73
  }
75
74
  async onApplicationBootstrap() {
76
- let defaultMetrics = false;
77
75
  let hostMetrics = false;
78
76
  if (this.options?.metrics) {
79
- defaultMetrics = this.options.metrics.defaultMetrics
80
- !== undefined ? this.options.metrics.defaultMetrics : false;
81
77
  hostMetrics = this.options.metrics.hostMetrics
82
78
  !== undefined ? this.options.metrics.hostMetrics : false;
83
79
  }
84
80
  const meterProvider = api_metrics_1.metrics.getMeterProvider();
85
- if (defaultMetrics) {
86
- require('opentelemetry-node-metrics')(meterProvider);
87
- }
88
81
  if (hostMetrics) {
89
82
  const host = new host_metrics_1.HostMetrics({ meterProvider, name: 'host-metrics' });
90
83
  host.start();
@@ -120,7 +113,6 @@ let OpenTelemetryCoreModule = OpenTelemetryCoreModule_1 = class OpenTelemetryCor
120
113
  {
121
114
  provide: useClass,
122
115
  useClass,
123
- inject: [...(options.inject || [])],
124
116
  },
125
117
  ];
126
118
  }