diff --git a/src/preset/node/providers/telemetry-tracer-span-exporter.ts b/src/preset/node/providers/telemetry-tracer-span-exporter.ts index 407695b..918b891 100644 --- a/src/preset/node/providers/telemetry-tracer-span-exporter.ts +++ b/src/preset/node/providers/telemetry-tracer-span-exporter.ts @@ -1,9 +1,9 @@ -import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-grpc"; -import { KnownToken } from "../../../tokens"; +import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc'; +import { KnownToken } from '../../../tokens'; -import type { Resolve } from "../../../di"; +import type { Resolve } from '../../../di'; -const envPrefix = "OTEL_EXPORTER_OTLP_"; +const envPrefix = 'OTEL_EXPORTER_OTLP_'; /** * Провайдер объекта SpanExporter. @@ -13,17 +13,14 @@ const envPrefix = "OTEL_EXPORTER_OTLP_"; export function provideSpanExporter(resolve: Resolve): OTLPTraceExporter { const source = resolve(KnownToken.Config.source); const headers = source.has(`${envPrefix}REQUEST_HEADERS`) - ? JSON.parse(source.get(`${envPrefix}REQUEST_HEADERS`, "{}")) + ? JSON.parse(source.get(`${envPrefix}REQUEST_HEADERS`, '{}')) : undefined; - const url = [ - `${envPrefix}PROTOCOL`, - `${envPrefix}HOSTNAME`, - `${envPrefix}PORT`, - ].reduce((acc, envPart) => acc + source.get(envPart, ""), ""); + const url = new URL(source.get(`${envPrefix}ENTRYPOINT`) || `${source.get(`${envPrefix}PROTOCOL`, 'https')}://${source.get(`${envPrefix}HOSTNAME`, 'localhost')}`); + url.port = source.get(`${envPrefix}PORT`, '4317'); return new OTLPTraceExporter({ - ...(url && { url }), + url: url.toString(), ...(headers && { headers }), }); }