nestjs-otel 2.6.1 → 3.0.2
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 +28 -0
- package/README.md +50 -39
- 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 +2 -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 +5 -5
- package/lib/middleware/api-metrics.middleware.js +17 -17
- package/lib/middleware/api-metrics.middleware.js.map +1 -1
- package/lib/opentelemetry-core.module.js.map +1 -1
- package/lib/tracing/decorators/span.js +2 -3
- package/lib/tracing/decorators/span.js.map +1 -1
- package/lib/tracing/decorators/span.spec.d.ts +1 -0
- package/lib/tracing/decorators/span.spec.js +58 -0
- package/lib/tracing/decorators/span.spec.js.map +1 -0
- 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 +31 -32
- package/src/interfaces/opentelemetry-options.interface.ts +3 -3
- package/src/metrics/decorators/common.ts +6 -4
- 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 +19 -19
- package/src/opentelemetry-core.module.ts +3 -3
- package/src/tracing/decorators/span.spec.ts +48 -0
- package/src/tracing/decorators/span.ts +4 -11
- 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
|
@@ -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"}
|
|
@@ -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
|
|
22
|
-
private
|
|
23
|
-
private
|
|
21
|
+
private requestSizeHistogram;
|
|
22
|
+
private responseSizeHistogram;
|
|
23
|
+
private defaultAttributes;
|
|
24
24
|
private readonly ignoreUndefinedRoutes;
|
|
25
|
-
constructor(
|
|
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 = {}
|
|
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 = [],
|
|
58
|
-
this.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
91
|
-
method, status, path, ...this.
|
|
90
|
+
const attributes = {
|
|
91
|
+
method, status, path, ...this.defaultAttributes,
|
|
92
92
|
};
|
|
93
|
-
this.
|
|
94
|
-
this.
|
|
95
|
-
this.responseTotal.
|
|
96
|
-
this.requestDuration.
|
|
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)(
|
|
136
|
-
__param(1, (0, common_1.Inject)(
|
|
137
|
-
__metadata("design:paramtypes", [
|
|
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":";;;;;;;;;;;;;;;AAAA,2CAAoE;AACpE,8CAA8C;AAC9C,iCAAiC;AAGjC,8DAA0D;AAC1D,wEAA0E;AAE7D,QAAA,oCAAoC,GAAG;IAClD,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;IACvD,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;CACtB,CAAC;AACW,QAAA,4BAA4B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACvF,QAAA,6BAA6B,GAAG;IAC3C,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK;CACtD,CAAC;AAGF,IAAa,oBAAoB,GAAjC,MAAa,oBAAoB;IA+B/B,
|
|
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;
|
|
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;IAIxD,CAAC;IAOL,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,GAAY,KAAK,CAAC;QACpC,IAAI,WAAW,GAAY,KAAK,CAAC;QAEjC,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"}
|
|
@@ -6,10 +6,9 @@ function Span(name) {
|
|
|
6
6
|
return (target, propertyKey, propertyDescriptor) => {
|
|
7
7
|
const method = propertyDescriptor.value;
|
|
8
8
|
propertyDescriptor.value = function PropertyDescriptor(...args) {
|
|
9
|
-
const currentSpan = api_1.trace.getSpan(api_1.context.active());
|
|
10
9
|
const tracer = api_1.trace.getTracer('default');
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
const spanName = name || `${target.constructor.name}.${propertyKey}`;
|
|
11
|
+
return tracer.startActiveSpan(spanName, span => {
|
|
13
12
|
if (method.constructor.name === 'AsyncFunction') {
|
|
14
13
|
return method.apply(this, args).finally(() => {
|
|
15
14
|
span.end();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"span.js","sourceRoot":"","sources":["../../../src/tracing/decorators/span.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"span.js","sourceRoot":"","sources":["../../../src/tracing/decorators/span.ts"],"names":[],"mappings":";;;AAAA,4CAA2C;AAE3C,SAAgB,IAAI,CAAC,IAAa;IAChC,OAAO,CAAC,MAAW,EAAE,WAAmB,EAAE,kBAAsC,EAAE,EAAE;QAClF,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC;QAExC,kBAAkB,CAAC,KAAK,GAAG,SAAS,kBAAkB,CAAC,GAAG,IAAW;YACnE,MAAM,MAAM,GAAG,WAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC1C,MAAM,QAAQ,GAAG,IAAI,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC;YAErE,OAAO,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE;gBAC7C,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,eAAe,EAAE;oBAC/C,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;wBAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;oBACb,CAAC,CAAC,CAAC;iBACJ;gBACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACxC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACX,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AApBD,oBAoBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const api_1 = require("@opentelemetry/api");
|
|
13
|
+
const sdk_node_1 = require("@opentelemetry/sdk-node");
|
|
14
|
+
const span_1 = require("./span");
|
|
15
|
+
class TestSpan {
|
|
16
|
+
singleSpan() {
|
|
17
|
+
return api_1.trace.getSpan(api_1.context.active());
|
|
18
|
+
}
|
|
19
|
+
doubleSpan() {
|
|
20
|
+
return this.singleSpan();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
__decorate([
|
|
24
|
+
(0, span_1.Span)(),
|
|
25
|
+
__metadata("design:type", Function),
|
|
26
|
+
__metadata("design:paramtypes", []),
|
|
27
|
+
__metadata("design:returntype", void 0)
|
|
28
|
+
], TestSpan.prototype, "singleSpan", null);
|
|
29
|
+
__decorate([
|
|
30
|
+
(0, span_1.Span)(),
|
|
31
|
+
__metadata("design:type", Function),
|
|
32
|
+
__metadata("design:paramtypes", []),
|
|
33
|
+
__metadata("design:returntype", void 0)
|
|
34
|
+
], TestSpan.prototype, "doubleSpan", null);
|
|
35
|
+
describe('Span', () => {
|
|
36
|
+
let instance;
|
|
37
|
+
let otelSdk;
|
|
38
|
+
beforeEach(async () => {
|
|
39
|
+
instance = new TestSpan();
|
|
40
|
+
otelSdk = new sdk_node_1.NodeSDK({
|
|
41
|
+
traceExporter: new sdk_node_1.tracing.ConsoleSpanExporter(),
|
|
42
|
+
spanProcessor: new sdk_node_1.tracing.NoopSpanProcessor(),
|
|
43
|
+
});
|
|
44
|
+
await otelSdk.start();
|
|
45
|
+
});
|
|
46
|
+
afterEach(async () => {
|
|
47
|
+
await otelSdk.shutdown();
|
|
48
|
+
});
|
|
49
|
+
it('should set correct span', async () => {
|
|
50
|
+
const response = instance.singleSpan();
|
|
51
|
+
expect(response.name).toEqual('TestSpan.singleSpan');
|
|
52
|
+
});
|
|
53
|
+
it('should set correct span even when calling other method with Span decorator', async () => {
|
|
54
|
+
const response = instance.doubleSpan();
|
|
55
|
+
expect(response.name).toEqual('TestSpan.singleSpan');
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=span.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"span.spec.js","sourceRoot":"","sources":["../../../src/tracing/decorators/span.spec.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,4CAAoD;AACpD,sDAA2D;AAC3D,iCAA8B;AAE9B,MAAM,QAAQ;IAEZ,UAAU;QACR,OAAO,WAAK,CAAC,OAAO,CAAC,aAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAGD,UAAU;QACR,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;CACF;AARC;IADC,IAAA,WAAI,GAAE;;;;0CAGN;AAGD;IADC,IAAA,WAAI,GAAE;;;;0CAGN;AAGH,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,IAAI,QAAkB,CAAC;IACvB,IAAI,OAAgB,CAAC;IAErB,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAE1B,OAAO,GAAG,IAAI,kBAAO,CAAC;YACpB,aAAa,EAAE,IAAI,kBAAO,CAAC,mBAAmB,EAAE;YAIhD,aAAa,EAAE,IAAI,kBAAO,CAAC,iBAAiB,EAAE;SAC/C,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,CAAE,QAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QAC1F,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,CAAE,QAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -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
|
-
|
|
18
|
-
return tracer.startSpan(name);
|
|
20
|
+
return this.getTracer().startSpan(name);
|
|
19
21
|
}
|
|
20
22
|
};
|
|
21
23
|
TraceService = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace.service.js","sourceRoot":"","sources":["../../src/tracing/trace.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4CAA0D;AAC1D,2CAA4C;AAG5C,IAAa,YAAY,GAAzB,MAAa,YAAY;IAChB,OAAO;QACZ,OAAO,WAAK,CAAC,OAAO,CAAC,aAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAEM,SAAS,CAAC,IAAY;QAC3B,
|
|
1
|
+
{"version":3,"file":"trace.service.js","sourceRoot":"","sources":["../../src/tracing/trace.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4CAA0D;AAC1D,2CAA4C;AAG5C,IAAa,YAAY,GAAzB,MAAa,YAAY;IAChB,SAAS;QACd,OAAO,WAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAEM,OAAO;QACZ,OAAO,WAAK,CAAC,OAAO,CAAC,aAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAEM,SAAS,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF,CAAA;AAZY,YAAY;IADxB,IAAA,mBAAU,GAAE;GACA,YAAY,CAYxB;AAZY,oCAAY"}
|