nestjs-otel 2.5.2 → 3.0.1
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.
- package/CHANGELOG.md +44 -0
- package/README.md +28 -9
- package/examples/nestjs-prom-grafana-tempo/package.json +40 -37
- package/examples/nestjs-prom-grafana-tempo/src/tracing.ts +5 -5
- package/lib/interfaces/opentelemetry-options.interface.d.ts +5 -2
- package/lib/metrics/decorators/common.js +2 -2
- package/lib/metrics/decorators/common.js.map +1 -1
- package/lib/metrics/decorators/counter.js +2 -2
- package/lib/metrics/decorators/counter.js.map +1 -1
- package/lib/metrics/decorators/histogram.d.ts +1 -0
- package/lib/metrics/decorators/histogram.js +12 -0
- package/lib/metrics/decorators/histogram.js.map +1 -0
- package/lib/metrics/decorators/index.d.ts +2 -1
- package/lib/metrics/decorators/index.js +2 -1
- package/lib/metrics/decorators/index.js.map +1 -1
- package/lib/metrics/decorators/observable.d.ts +3 -0
- package/lib/metrics/decorators/observable.js +24 -0
- package/lib/metrics/decorators/observable.js.map +1 -0
- package/lib/metrics/metric-data.d.ts +12 -5
- package/lib/metrics/metric-data.js +53 -24
- package/lib/metrics/metric-data.js.map +1 -1
- package/lib/metrics/metric.service.d.ts +7 -6
- package/lib/metrics/metric.service.js +11 -8
- package/lib/metrics/metric.service.js.map +1 -1
- package/lib/middleware/api-metrics.middleware.d.ts +6 -5
- package/lib/middleware/api-metrics.middleware.js +21 -24
- package/lib/middleware/api-metrics.middleware.js.map +1 -1
- package/lib/opentelemetry-core.module.js +6 -1
- package/lib/opentelemetry-core.module.js.map +1 -1
- package/lib/tracing/trace.service.d.ts +1 -0
- package/lib/tracing/trace.service.js +4 -2
- package/lib/tracing/trace.service.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +32 -32
- package/src/interfaces/opentelemetry-options.interface.ts +6 -3
- package/src/metrics/decorators/common.ts +7 -5
- package/src/metrics/decorators/counter.ts +5 -9
- package/src/metrics/decorators/histogram.ts +10 -0
- package/src/metrics/decorators/observable.ts +28 -0
- package/src/metrics/metric-data.ts +89 -29
- package/src/metrics/metric.service.ts +28 -14
- package/src/middleware/api-metrics.middleware.ts +25 -29
- package/src/opentelemetry-core.module.ts +9 -4
- package/src/tracing/trace.service.ts +5 -2
- package/lib/metrics/decorators/value-recorder.d.ts +0 -1
- package/lib/metrics/decorators/value-recorder.js +0 -12
- package/lib/metrics/decorators/value-recorder.js.map +0 -1
- package/src/metrics/decorators/value-recorder.ts +0 -12
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,49 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
### [3.0.1](https://www.github.com/pragmaticivan/nestjs-otel/compare/v3.0.0...v3.0.1) (2022-01-03)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* **#171:** fixes missing observation callback for observable metrics ([7d89c1f](https://www.github.com/pragmaticivan/nestjs-otel/commit/7d89c1f910b28d0661da6f2989ddea4b9bdcc643)), closes [#171](https://www.github.com/pragmaticivan/nestjs-otel/issues/171)
|
|
9
|
+
|
|
10
|
+
## [3.0.0](https://www.github.com/pragmaticivan/nestjs-otel/compare/v2.6.1...v3.0.0) (2021-12-30)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### ⚠ BREAKING CHANGES
|
|
14
|
+
|
|
15
|
+
* Anything related to metrics sdk has changed. OTEL now has a stable spec and all the projects are moving towards new interfaces.
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* ename value recorder on decorators and update readme ([646e2ea](https://www.github.com/pragmaticivan/nestjs-otel/commit/646e2eacd07127f9658b302c09d3056b3b2e1771))
|
|
20
|
+
* support all metric types from otel spec ([36a7c5f](https://www.github.com/pragmaticivan/nestjs-otel/commit/36a7c5f2f895157b3e675a7a6ff6693fea6cc8f2))
|
|
21
|
+
* update metric spec to the latest otel lib ([6ed63ae](https://www.github.com/pragmaticivan/nestjs-otel/commit/6ed63aefbc1e39da9659d6e232a4883f7ed93dac))
|
|
22
|
+
* update packages to compply with latest otel metric spec ([943ca06](https://www.github.com/pragmaticivan/nestjs-otel/commit/943ca06ea62e95d8a07af63030609f226b78c4b8))
|
|
23
|
+
|
|
24
|
+
### [2.6.1](https://www.github.com/pragmaticivan/nestjs-otel/compare/v2.6.0...v2.6.1) (2021-10-13)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Reverts
|
|
28
|
+
|
|
29
|
+
* replace arrow function back with unnamed function ([3e7ac1f](https://www.github.com/pragmaticivan/nestjs-otel/commit/3e7ac1f160e1454f7c36470aafd7e8bfa7ee47b5))
|
|
30
|
+
|
|
31
|
+
## [2.6.0](https://www.github.com/pragmaticivan/nestjs-otel/compare/v2.5.2...v2.6.0) (2021-10-12)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
### Features
|
|
35
|
+
|
|
36
|
+
* **metrics:** option for ignoring undefined routes ([15577e8](https://www.github.com/pragmaticivan/nestjs-otel/commit/15577e83c7b3ea7642dc7eba65517361edfe3a54))
|
|
37
|
+
* **metrics:** option to ignore specific routes ([b8a05f1](https://www.github.com/pragmaticivan/nestjs-otel/commit/b8a05f1ef46b9e077f8c4edbad59f91b00d3a49e))
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
### Bug Fixes
|
|
41
|
+
|
|
42
|
+
* eslint setup ([14d9870](https://www.github.com/pragmaticivan/nestjs-otel/commit/14d9870d9aacee325a7338dd764ccfef404b7ad5))
|
|
43
|
+
* linting ([1961f18](https://www.github.com/pragmaticivan/nestjs-otel/commit/1961f18ae1203a4e721e72caeb9f425f1937d918))
|
|
44
|
+
* **linting:** replace unnamed function with arrow function ([12fa02c](https://www.github.com/pragmaticivan/nestjs-otel/commit/12fa02c081ef85ddde7208c7b865efcaa05bab6f))
|
|
45
|
+
* **metrics:** add missing commas in example config in README.md ([7b159c6](https://www.github.com/pragmaticivan/nestjs-otel/commit/7b159c603bc9655b270f9447414cdab473b31526))
|
|
46
|
+
|
|
3
47
|
### [2.5.2](https://www.github.com/pragmaticivan/nestjs-otel/compare/v2.5.1...v2.5.2) (2021-10-07)
|
|
4
48
|
|
|
5
49
|
|
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
|
|
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
|
|
|
@@ -122,7 +122,9 @@ const OpenTelemetryModuleConfig = OpenTelemetryModule.forRoot({
|
|
|
122
122
|
timeBuckets: [], // You can change the default time buckets
|
|
123
123
|
defaultLabels: { // You can set default labels for api metrics
|
|
124
124
|
custom: 'label'
|
|
125
|
-
}
|
|
125
|
+
},
|
|
126
|
+
ignoreRoutes: ['/favicon.ico'], // You can ignore specific routes (See https://docs.nestjs.com/middleware#excluding-routes for options)
|
|
127
|
+
ignoreUndefinedRoutes: false, //Records metrics for all URLs, even undefined ones
|
|
126
128
|
},
|
|
127
129
|
},
|
|
128
130
|
});
|
|
@@ -177,7 +179,7 @@ export class BookService {
|
|
|
177
179
|
|
|
178
180
|
## Metric Service
|
|
179
181
|
|
|
180
|
-
[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.
|
|
181
183
|
|
|
182
184
|
```ts
|
|
183
185
|
import { MetricService } from 'nestjs-otel';
|
|
@@ -241,7 +243,10 @@ You have the following decorators:
|
|
|
241
243
|
|
|
242
244
|
* `@OtelCounter()`
|
|
243
245
|
* `@OtelUpDownCounter()`
|
|
244
|
-
* `@
|
|
246
|
+
* `@OtelHistogram()`
|
|
247
|
+
* `@OtelObservableGauge()`
|
|
248
|
+
* `@OtelObservableCounter()`
|
|
249
|
+
* `@OtelObservableUpDownCounter()`
|
|
245
250
|
|
|
246
251
|
Example of usage:
|
|
247
252
|
|
|
@@ -256,7 +261,7 @@ export class AppController {
|
|
|
256
261
|
home(
|
|
257
262
|
@OtelCounter('app_counter_1_inc', { description: 'counter 1 description' }) counter1: Counter,
|
|
258
263
|
) {
|
|
259
|
-
counter1.
|
|
264
|
+
counter1.add(1);
|
|
260
265
|
}
|
|
261
266
|
}
|
|
262
267
|
|
|
@@ -270,12 +275,12 @@ Impl |Metric |Description| Labels | Metric Type
|
|
|
270
275
|
| ✅ | http_response_total| Total number of HTTP responses.| method, status, path | Counter |
|
|
271
276
|
| ✅ | http_response_success_total| Total number of all successful responses.| - | Counter |
|
|
272
277
|
| ✅ | 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 |
|
|
278
|
+
| ✅ | http_request_duration_seconds | HTTP latency value recorder in seconds. | method, status, path | Histogram |
|
|
274
279
|
| ✅ | http_client_error_total | Total number of client error requests. | - | Counter |
|
|
275
280
|
| ✅ | http_server_error_total | Total number of server error requests. | - | Counter |
|
|
276
281
|
| ✅ | http_server_aborts_total | Total number of data transfers aborted. | - | Counter |
|
|
277
|
-
| ✅ | http_request_size_bytes | Current total of incoming bytes. | - |
|
|
278
|
-
| ✅ | http_response_size_bytes | Current total of outgoing bytes. | - |
|
|
282
|
+
| ✅ | http_request_size_bytes | Current total of incoming bytes. | - | Histogram|
|
|
283
|
+
| ✅ | http_response_size_bytes | Current total of outgoing bytes. | - | Histogram |
|
|
279
284
|
|
|
280
285
|
## Prometheus Metrics
|
|
281
286
|
|
|
@@ -283,7 +288,21 @@ When `metricExporter` is defined in otel SDK with a `PrometheusExporter`it will
|
|
|
283
288
|
|
|
284
289
|
## Using with a logger
|
|
285
290
|
|
|
286
|
-
### 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.
|
|
287
306
|
|
|
288
307
|
```ts
|
|
289
308
|
import Pino, { Logger } from 'pino';
|
|
@@ -21,50 +21,53 @@
|
|
|
21
21
|
"test:e2e": "jest --config ./test/jest-e2e.json"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@nestjs/common": "^8.
|
|
25
|
-
"@nestjs/core": "^8.
|
|
26
|
-
"@nestjs/platform-express": "^8.
|
|
27
|
-
"@nestjs/swagger": "^5.
|
|
28
|
-
"@opentelemetry/auto-instrumentations-node": "^0.
|
|
29
|
-
"@opentelemetry/core": "^0.
|
|
30
|
-
"@opentelemetry/exporter-jaeger": "^0.
|
|
31
|
-
"@opentelemetry/exporter-prometheus": "^0.
|
|
32
|
-
"@opentelemetry/host-metrics": "^0.
|
|
33
|
-
"@opentelemetry/
|
|
34
|
-
"@opentelemetry/propagator-b3": "^0.
|
|
35
|
-
"@opentelemetry/propagator-jaeger": "^0.
|
|
36
|
-
"@opentelemetry/sdk-node": "^0.
|
|
37
|
-
"@
|
|
38
|
-
"nestjs-otel": "^
|
|
39
|
-
"nestjs-pino": "^
|
|
40
|
-
"opentelemetry-node-metrics": "^1.0
|
|
41
|
-
"pino": "^6.
|
|
24
|
+
"@nestjs/common": "^8.2.4",
|
|
25
|
+
"@nestjs/core": "^8.2.4",
|
|
26
|
+
"@nestjs/platform-express": "^8.2.4",
|
|
27
|
+
"@nestjs/swagger": "^5.1.5",
|
|
28
|
+
"@opentelemetry/auto-instrumentations-node": "^0.27.1",
|
|
29
|
+
"@opentelemetry/core": "^1.0.1",
|
|
30
|
+
"@opentelemetry/exporter-jaeger": "^1.0.1",
|
|
31
|
+
"@opentelemetry/exporter-prometheus": "^0.27.0",
|
|
32
|
+
"@opentelemetry/host-metrics": "^0.27.0",
|
|
33
|
+
"@opentelemetry/instrumentation-graphql": "^0.27.1",
|
|
34
|
+
"@opentelemetry/propagator-b3": "^1.0.1",
|
|
35
|
+
"@opentelemetry/propagator-jaeger": "^1.0.1",
|
|
36
|
+
"@opentelemetry/sdk-node": "^0.27.0",
|
|
37
|
+
"@types/graphql": "^14.5.0",
|
|
38
|
+
"nestjs-otel": "^3.0.0",
|
|
39
|
+
"nestjs-pino": "^2.4.0",
|
|
40
|
+
"opentelemetry-node-metrics": "^1.1.0",
|
|
41
|
+
"pino": "^7.6.2",
|
|
42
|
+
"pino-http": "^6.5.0",
|
|
42
43
|
"reflect-metadata": "^0.1.13",
|
|
43
44
|
"rimraf": "^3.0.2",
|
|
44
|
-
"rxjs": "^7.
|
|
45
|
-
"swagger-ui-express": "^4.
|
|
45
|
+
"rxjs": "^7.5.1",
|
|
46
|
+
"swagger-ui-express": "^4.3.0"
|
|
46
47
|
},
|
|
47
48
|
"devDependencies": {
|
|
48
|
-
"@nestjs/cli": "^8.1.
|
|
49
|
-
"@nestjs/schematics": "^8.0.
|
|
50
|
-
"@nestjs/testing": "^8.
|
|
49
|
+
"@nestjs/cli": "^8.1.6",
|
|
50
|
+
"@nestjs/schematics": "^8.0.5",
|
|
51
|
+
"@nestjs/testing": "^8.2.4",
|
|
52
|
+
"@opentelemetry/api-metrics": "^0.27.0",
|
|
51
53
|
"@types/express": "^4.17.13",
|
|
52
|
-
"@types/jest": "^
|
|
53
|
-
"@types/node": "^
|
|
54
|
+
"@types/jest": "^27.0.3",
|
|
55
|
+
"@types/node": "^17.0.5",
|
|
56
|
+
"@types/pino-http": "^5.8.1",
|
|
54
57
|
"@types/supertest": "^2.0.11",
|
|
55
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
56
|
-
"@typescript-eslint/parser": "^
|
|
57
|
-
"eslint": "^
|
|
58
|
+
"@typescript-eslint/eslint-plugin": "^5.8.1",
|
|
59
|
+
"@typescript-eslint/parser": "^5.8.1",
|
|
60
|
+
"eslint": "^8.5.0",
|
|
58
61
|
"eslint-config-prettier": "8.3.0",
|
|
59
|
-
"eslint-plugin-prettier": "^
|
|
60
|
-
"jest": "^27.
|
|
61
|
-
"prettier": "^2.
|
|
62
|
-
"supertest": "^6.1.
|
|
63
|
-
"ts-jest": "^27.
|
|
64
|
-
"ts-loader": "^9.2.
|
|
65
|
-
"ts-node": "^10.
|
|
66
|
-
"tsconfig-paths": "^3.
|
|
67
|
-
"typescript": "^4.
|
|
62
|
+
"eslint-plugin-prettier": "^4.0.0",
|
|
63
|
+
"jest": "^27.4.5",
|
|
64
|
+
"prettier": "^2.5.1",
|
|
65
|
+
"supertest": "^6.1.6",
|
|
66
|
+
"ts-jest": "^27.1.2",
|
|
67
|
+
"ts-loader": "^9.2.6",
|
|
68
|
+
"ts-node": "^10.4.0",
|
|
69
|
+
"tsconfig-paths": "^3.12.0",
|
|
70
|
+
"typescript": "^4.5.4"
|
|
68
71
|
},
|
|
69
72
|
"jest": {
|
|
70
73
|
"moduleFileExtensions": [
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CompositePropagator,
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
W3CTraceContextPropagator,
|
|
4
|
+
W3CBaggagePropagator,
|
|
5
5
|
} from '@opentelemetry/core';
|
|
6
|
-
import { BatchSpanProcessor } from '@opentelemetry/
|
|
6
|
+
import { BatchSpanProcessor } from '@opentelemetry/sdk-trace-base';
|
|
7
7
|
import { JaegerExporter } from '@opentelemetry/exporter-jaeger';
|
|
8
8
|
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';
|
|
9
9
|
import { JaegerPropagator } from '@opentelemetry/propagator-jaeger';
|
|
@@ -23,8 +23,8 @@ const otelSDK = new NodeSDK({
|
|
|
23
23
|
textMapPropagator: new CompositePropagator({
|
|
24
24
|
propagators: [
|
|
25
25
|
new JaegerPropagator(),
|
|
26
|
-
new
|
|
27
|
-
new
|
|
26
|
+
new W3CTraceContextPropagator(),
|
|
27
|
+
new W3CBaggagePropagator(),
|
|
28
28
|
new B3Propagator(),
|
|
29
29
|
new B3Propagator({
|
|
30
30
|
injectEncoding: B3InjectEncoding.MULTI_HEADER,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ModuleMetadata, Type, Abstract } from '@nestjs/common';
|
|
2
|
-
import {
|
|
2
|
+
import { Attributes } from '@opentelemetry/api-metrics';
|
|
3
|
+
import { RouteInfo } from '@nestjs/common/interfaces';
|
|
3
4
|
export declare type OpenTelemetryModuleOptions = {
|
|
4
5
|
metrics?: OpenTelemetryMetrics;
|
|
5
6
|
};
|
|
@@ -21,6 +22,8 @@ export declare type OpenTelemetryMetrics = {
|
|
|
21
22
|
timeBuckets?: number[];
|
|
22
23
|
requestSizeBuckets?: number[];
|
|
23
24
|
responseSizeBuckets?: number[];
|
|
24
|
-
|
|
25
|
+
defaultAttributes?: Attributes;
|
|
26
|
+
ignoreRoutes?: (string | RouteInfo)[];
|
|
27
|
+
ignoreUndefinedRoutes?: boolean;
|
|
25
28
|
};
|
|
26
29
|
};
|
|
@@ -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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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"}
|
|
@@ -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("./
|
|
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,
|
|
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,
|
|
2
|
-
export declare type GenericMetric = Counter | UpDownCounter |
|
|
1
|
+
import { Counter, MetricOptions, UpDownCounter, Histogram, ObservableGauge, ObservableCounter, ObservableUpDownCounter, ObservableResult } 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
|
-
'
|
|
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
|
|
10
|
-
export declare function getOrCreateCounter(name: string,
|
|
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, 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;
|
|
@@ -1,47 +1,76 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getOrCreateCounter = exports.
|
|
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["
|
|
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
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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.
|
|
28
|
-
function
|
|
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
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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, callback) {
|
|
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, callback);
|
|
52
|
+
exports.meterData.set(name, observableGauge);
|
|
53
|
+
return observableGauge;
|
|
45
54
|
}
|
|
46
|
-
exports.
|
|
55
|
+
exports.getOrCreateObservableGauge = getOrCreateObservableGauge;
|
|
56
|
+
function getOrCreateObservableCounter(name, options, callback) {
|
|
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, callback);
|
|
62
|
+
exports.meterData.set(name, observableCounter);
|
|
63
|
+
return observableCounter;
|
|
64
|
+
}
|
|
65
|
+
exports.getOrCreateObservableCounter = getOrCreateObservableCounter;
|
|
66
|
+
function getOrCreateObservableUpDownCounter(name, options, callback) {
|
|
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, callback);
|
|
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,
|
|
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 {
|
|
1
|
+
import { MetricOptions, ObservableResult } from '@opentelemetry/api-metrics';
|
|
2
2
|
export declare class MetricService {
|
|
3
|
-
getCounter(name: string, options?: MetricOptions): Counter
|
|
4
|
-
getUpDownCounter(name: string, options?: MetricOptions):
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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, 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;
|
|
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
|
|
14
|
+
return (0, metric_data_1.getOrCreateCounter)(name, options);
|
|
15
15
|
}
|
|
16
16
|
getUpDownCounter(name, options) {
|
|
17
|
-
return
|
|
17
|
+
return (0, metric_data_1.getOrCreateUpDownCounter)(name, options);
|
|
18
18
|
}
|
|
19
|
-
|
|
20
|
-
return
|
|
19
|
+
getHistogram(name, options) {
|
|
20
|
+
return (0, metric_data_1.getOrCreateHistogram)(name, options);
|
|
21
21
|
}
|
|
22
|
-
|
|
23
|
-
return (0, metric_data_1.
|
|
22
|
+
getObservableCounter(name, options, callback) {
|
|
23
|
+
return (0, metric_data_1.getOrCreateObservableCounter)(name, options, callback);
|
|
24
24
|
}
|
|
25
|
-
|
|
26
|
-
return (0, metric_data_1.
|
|
25
|
+
getObservableGauge(name, options, callback) {
|
|
26
|
+
return (0, metric_data_1.getOrCreateObservableGauge)(name, options, callback);
|
|
27
|
+
}
|
|
28
|
+
getObservableUpDownCounter(name, options, callback) {
|
|
29
|
+
return (0, metric_data_1.getOrCreateObservableUpDownCounter)(name, options, callback);
|
|
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,+
|
|
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"}
|