@rsdk/core 5.0.0-next.1 → 5.0.0-next.3
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 +14 -0
- package/dist/config/metadata/decorators/inject-property.decorator.d.ts +1 -1
- package/dist/config/metadata/decorators/property.decorator.d.ts +1 -1
- package/dist/config/parsers/url/exception.d.ts +0 -1
- package/dist/config/parsers/url/url.parser.d.ts +0 -1
- package/dist/config/reload/config-reload.events.d.ts +0 -1
- package/dist/exceptions.handling/global-exceptions.filter.d.ts +1 -1
- package/dist/exceptions.handling/global-exceptions.filter.js +2 -5
- package/dist/exceptions.handling/global-exceptions.filter.js.map +1 -1
- package/dist/health/indicators.abstract/ping.indicator.d.ts +0 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.js +4 -7
- package/dist/index.js.map +1 -1
- package/dist/logging/logger-initializing.module.d.ts +1 -1
- package/dist/logging/logger-initializing.module.js +1 -1
- package/dist/logging/logger-initializing.module.js.map +1 -1
- package/dist/metrics/metadata/decorators/metric.decorator.js +1 -2
- package/dist/metrics/metadata/decorators/metric.decorator.js.map +1 -1
- package/dist/metrics/metric-initializing.module.d.ts +1 -1
- package/dist/metrics/metric-initializing.module.js +1 -1
- package/dist/metrics/metric-initializing.module.js.map +1 -1
- package/dist/platform.context.d.ts +5 -5
- package/dist/platform.context.js +28 -24
- package/dist/platform.context.js.map +1 -1
- package/dist/platform.module.d.ts +1 -1
- package/dist/platform.module.js +10 -9
- package/dist/platform.module.js.map +1 -1
- package/dist/tracing/constants.d.ts +12 -9
- package/dist/tracing/constants.js +13 -11
- package/dist/tracing/constants.js.map +1 -1
- package/dist/tracing/index.d.ts +3 -3
- package/dist/tracing/index.js +3 -3
- package/dist/tracing/index.js.map +1 -1
- package/dist/tracing/opentelemetry/decorators/index.js.map +1 -0
- package/dist/tracing/{decorators → opentelemetry/decorators}/no-span.decorator.d.ts +1 -1
- package/dist/tracing/{decorators → opentelemetry/decorators}/no-span.decorator.js +3 -3
- package/dist/tracing/opentelemetry/decorators/no-span.decorator.js.map +1 -0
- package/dist/tracing/{decorators → opentelemetry/decorators}/span.decorator.js +5 -4
- package/dist/tracing/opentelemetry/decorators/span.decorator.js.map +1 -0
- package/dist/tracing/opentelemetry/index.d.ts +1 -0
- package/dist/tracing/{services → opentelemetry}/index.js +1 -1
- package/dist/tracing/opentelemetry/index.js.map +1 -0
- package/dist/tracing/opentelemetry/opentelemetry.helpers.d.ts +28 -0
- package/dist/tracing/opentelemetry/opentelemetry.helpers.js +77 -0
- package/dist/tracing/opentelemetry/opentelemetry.helpers.js.map +1 -0
- package/dist/tracing/opentelemetry/opentelemetry.metadata.d.ts +7 -0
- package/dist/tracing/opentelemetry/opentelemetry.metadata.js +27 -0
- package/dist/tracing/opentelemetry/opentelemetry.metadata.js.map +1 -0
- package/dist/tracing/opentelemetry/opentelemetry.wrapper.d.ts +6 -0
- package/dist/tracing/opentelemetry/opentelemetry.wrapper.js +71 -0
- package/dist/tracing/opentelemetry/opentelemetry.wrapper.js.map +1 -0
- package/dist/tracing/tracing.actx.d.ts +1 -0
- package/dist/tracing/tracing.actx.js +9 -0
- package/dist/tracing/tracing.actx.js.map +1 -0
- package/dist/tracing/tracing.interceptor.d.ts +20 -4
- package/dist/tracing/tracing.interceptor.js +59 -9
- package/dist/tracing/tracing.interceptor.js.map +1 -1
- package/dist/tracing/tracing.module.d.ts +10 -4
- package/dist/tracing/tracing.module.js +63 -21
- package/dist/tracing/tracing.module.js.map +1 -1
- package/dist/tracing/types.d.ts +9 -11
- package/dist/tracing/types.js +0 -20
- package/dist/tracing/types.js.map +1 -1
- package/dist/transport/protocol.detector.d.ts +13 -1
- package/dist/transport/protocol.detector.js +17 -24
- package/dist/transport/protocol.detector.js.map +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.js +1 -4
- package/dist/types/index.js.map +1 -1
- package/dist/types/options.d.ts +2 -0
- package/dist/types/plugins.d.ts +8 -3
- package/dist/types/plugins.js.map +1 -1
- package/dist/types/transports.d.ts +19 -9
- package/dist/types/transports.js +3 -1
- package/dist/types/transports.js.map +1 -1
- package/package.json +9 -4
- package/src/exceptions.handling/global-exceptions.filter.ts +5 -6
- package/src/index.ts +3 -3
- package/src/logging/logger-initializing.module.ts +2 -2
- package/src/metrics/metric-initializing.module.ts +2 -2
- package/src/platform.context.ts +41 -32
- package/src/platform.module.ts +9 -8
- package/src/tracing/constants.ts +15 -9
- package/src/tracing/index.ts +3 -3
- package/src/tracing/opentelemetry/decorators/no-span.decorator.ts +10 -0
- package/src/tracing/{decorators → opentelemetry/decorators}/span.decorator.ts +8 -4
- package/src/tracing/opentelemetry/index.ts +1 -0
- package/src/tracing/opentelemetry/opentelemetry.helpers.ts +89 -0
- package/src/tracing/opentelemetry/opentelemetry.metadata.ts +24 -0
- package/src/tracing/opentelemetry/opentelemetry.wrapper.ts +90 -0
- package/src/tracing/tracing.actx.ts +8 -0
- package/src/tracing/tracing.interceptor.ts +65 -8
- package/src/tracing/tracing.module.ts +64 -23
- package/src/tracing/types.ts +9 -28
- package/src/transport/protocol.detector.ts +19 -25
- package/src/types/index.ts +0 -2
- package/src/types/options.ts +3 -0
- package/src/types/plugins.ts +9 -2
- package/src/types/transports.ts +27 -11
- package/dist/tracing/decorators/index.js.map +0 -1
- package/dist/tracing/decorators/no-span.decorator.js.map +0 -1
- package/dist/tracing/decorators/span.decorator.js.map +0 -1
- package/dist/tracing/request-metadata.module.d.ts +0 -5
- package/dist/tracing/request-metadata.module.js +0 -21
- package/dist/tracing/request-metadata.module.js.map +0 -1
- package/dist/tracing/services/index.d.ts +0 -1
- package/dist/tracing/services/index.js.map +0 -1
- package/dist/tracing/services/trace.injector.d.ts +0 -12
- package/dist/tracing/services/trace.injector.js +0 -154
- package/dist/tracing/services/trace.injector.js.map +0 -1
- package/dist/tracing/tracing.config.d.ts +0 -6
- package/dist/tracing/tracing.config.js +0 -39
- package/dist/tracing/tracing.config.js.map +0 -1
- package/dist/tracing/utils/create-span.d.ts +0 -10
- package/dist/tracing/utils/create-span.js +0 -20
- package/dist/tracing/utils/create-span.js.map +0 -1
- package/dist/transport/get-transport-id.d.ts +0 -5
- package/dist/transport/get-transport-id.js +0 -14
- package/dist/transport/get-transport-id.js.map +0 -1
- package/dist/types/tracing.headers-extractor.d.ts +0 -15
- package/dist/types/tracing.headers-extractor.js +0 -67
- package/dist/types/tracing.headers-extractor.js.map +0 -1
- package/src/tracing/decorators/no-span.decorator.ts +0 -10
- package/src/tracing/request-metadata.module.ts +0 -8
- package/src/tracing/services/index.ts +0 -1
- package/src/tracing/services/trace.injector.ts +0 -190
- package/src/tracing/tracing.config.ts +0 -25
- package/src/tracing/utils/create-span.ts +0 -20
- package/src/transport/get-transport-id.ts +0 -20
- package/src/types/tracing.headers-extractor.ts +0 -51
- /package/dist/tracing/{decorators → opentelemetry/decorators}/index.d.ts +0 -0
- /package/dist/tracing/{decorators → opentelemetry/decorators}/index.js +0 -0
- /package/dist/tracing/{decorators → opentelemetry/decorators}/span.decorator.d.ts +0 -0
- /package/src/tracing/{decorators → opentelemetry/decorators}/index.ts +0 -0
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
BoolParser,
|
|
3
|
-
Config,
|
|
4
|
-
ConfigSection,
|
|
5
|
-
Property,
|
|
6
|
-
UrlParser,
|
|
7
|
-
} from '../config';
|
|
8
|
-
import { ConfigTag } from '../config/config.const';
|
|
9
|
-
|
|
10
|
-
@ConfigSection({
|
|
11
|
-
tags: [ConfigTag.infrastructure, ConfigTag.tracing],
|
|
12
|
-
})
|
|
13
|
-
export class TracingModuleConfig extends Config {
|
|
14
|
-
@Property('TRACING_ENABLED', new BoolParser(), {
|
|
15
|
-
defaultValue: false,
|
|
16
|
-
description: 'Enable application tracing',
|
|
17
|
-
})
|
|
18
|
-
enabled!: boolean;
|
|
19
|
-
|
|
20
|
-
@Property('TRACING_COLLECTOR_URL', new UrlParser(), {
|
|
21
|
-
defaultValue: new URL('http://localhost:4318/v1/traces'),
|
|
22
|
-
description: 'Url to jaeger/zipkin/otlp collector etc.',
|
|
23
|
-
})
|
|
24
|
-
collectorUrl!: URL;
|
|
25
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { getRandomBytes } from '@rsdk/common';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Функция для генерации корректного рандомного traceId и spanId
|
|
5
|
-
* алгоритм взят из: https://github.com/openzipkin/zipkin-js/blob/ec89188cf6a07e184ab886c1dfb6c9dc276ddfa4/packages/zipkin/src/tracer/randomTraceId.js
|
|
6
|
-
* спецификация по traceId: https://www.w3.org/TR/trace-context/#considerations-for-trace-id-field-generation
|
|
7
|
-
* @returns {traceId, spanId}
|
|
8
|
-
*/
|
|
9
|
-
export function createSpan(): {
|
|
10
|
-
traceId: string;
|
|
11
|
-
spanId: string;
|
|
12
|
-
} {
|
|
13
|
-
const rootSpanId = getRandomBytes(16);
|
|
14
|
-
const traceId = getRandomBytes(16) + rootSpanId;
|
|
15
|
-
|
|
16
|
-
return {
|
|
17
|
-
traceId,
|
|
18
|
-
spanId: rootSpanId,
|
|
19
|
-
};
|
|
20
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { ExecutionContext } from '@nestjs/common';
|
|
2
|
-
import { createParamDecorator } from '@nestjs/common';
|
|
3
|
-
import type { ExecutionContextHost } from '@nestjs/core/helpers/execution-context-host';
|
|
4
|
-
import type { Transport } from '@nestjs/microservices';
|
|
5
|
-
import { TRANSPORT_METADATA } from '@nestjs/microservices/constants';
|
|
6
|
-
|
|
7
|
-
export const TransportId = createParamDecorator(
|
|
8
|
-
(_data: unknown, ctx: ExecutionContext | ExecutionContextHost) => {
|
|
9
|
-
return getTransportId(ctx);
|
|
10
|
-
},
|
|
11
|
-
);
|
|
12
|
-
|
|
13
|
-
export function getTransportId(
|
|
14
|
-
context: ExecutionContext | ExecutionContextHost,
|
|
15
|
-
): Transport {
|
|
16
|
-
return (
|
|
17
|
-
Reflect.getMetadata(TRANSPORT_METADATA, context.getHandler()) ??
|
|
18
|
-
Reflect.getMetadata(TRANSPORT_METADATA, context.getClass())
|
|
19
|
-
);
|
|
20
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { type ExecutionContext, Inject, Injectable } from '@nestjs/common';
|
|
2
|
-
import { ILogger } from '@rsdk/logging';
|
|
3
|
-
|
|
4
|
-
import { InjectLogger } from '../logging';
|
|
5
|
-
import { TracingHeaders } from '../tracing/types';
|
|
6
|
-
import { ProtocolDetector } from '../transport/protocol.detector';
|
|
7
|
-
|
|
8
|
-
import { APP_PLUGINS, APP_TRANSPORTS } from './constants';
|
|
9
|
-
import type { PlatformAppPlugin } from './plugins';
|
|
10
|
-
import type { ITransport, ProtocolTracingHeadersExtractor } from './transports';
|
|
11
|
-
|
|
12
|
-
@Injectable()
|
|
13
|
-
export class TracingHeadersExtractor {
|
|
14
|
-
constructor(
|
|
15
|
-
@Inject(APP_PLUGINS)
|
|
16
|
-
private plugins: Set<PlatformAppPlugin>,
|
|
17
|
-
@Inject(APP_TRANSPORTS)
|
|
18
|
-
private transports: Set<ITransport>,
|
|
19
|
-
private protocolDetector: ProtocolDetector,
|
|
20
|
-
@InjectLogger(TracingHeadersExtractor) private logger: ILogger,
|
|
21
|
-
) {
|
|
22
|
-
this.extractors = new Map<string, ProtocolTracingHeadersExtractor>();
|
|
23
|
-
for (const transport of this.transports) {
|
|
24
|
-
const e = transport.getHeaderExtractor();
|
|
25
|
-
if (e) {
|
|
26
|
-
this.extractors.set(transport.getProtocol(), e);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
for (const plugin of this.plugins) {
|
|
30
|
-
for (const x of plugin.tracingHeadersExtractors?.() ?? []) {
|
|
31
|
-
this.extractors.set(x.protocol, x.extractor);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
extract(ctx: ExecutionContext): TracingHeaders {
|
|
37
|
-
const protocol = this.protocolDetector.getProtocol(ctx) ?? ctx.getType();
|
|
38
|
-
|
|
39
|
-
const extracted = this.extractors.get(protocol)?.extract(ctx);
|
|
40
|
-
|
|
41
|
-
if (extracted) {
|
|
42
|
-
this.logger.trace('Extracted TraceHeaders', extracted.getHeaders());
|
|
43
|
-
} else {
|
|
44
|
-
this.logger.warn('Unable to extract Tracing headers, return empty');
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return extracted ?? new TracingHeaders({});
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
private extractors: Map<string, ProtocolTracingHeadersExtractor>;
|
|
51
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|