From 1b10595ed9cb4c235040a76f3d7f3bdc9a5861ae Mon Sep 17 00:00:00 2001 From: Liz Fong-Jones Date: Tue, 20 Apr 2021 13:29:52 -0700 Subject: [PATCH] fix tests by moving serverAddress checks earlier --- .../src/CollectorExporterNodeBase.ts | 4 ++++ .../src/util.ts | 16 ++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/opentelemetry-exporter-collector-grpc/src/CollectorExporterNodeBase.ts b/packages/opentelemetry-exporter-collector-grpc/src/CollectorExporterNodeBase.ts index c01264cb945..ec993b29610 100644 --- a/packages/opentelemetry-exporter-collector-grpc/src/CollectorExporterNodeBase.ts +++ b/packages/opentelemetry-exporter-collector-grpc/src/CollectorExporterNodeBase.ts @@ -26,6 +26,7 @@ import { ServiceClientType, } from './types'; import { ServiceClient } from './types'; +import { fixUrl } from './util'; /** * Collector Metric Exporter abstract base class @@ -41,6 +42,7 @@ export abstract class CollectorExporterNodeBase< grpcQueue: GRPCQueueItem[] = []; metadata?: Metadata; serviceClient?: ServiceClient = undefined; + private serverAddress!: string; private _send!: Function; constructor(config: CollectorExporterConfigNode = {}) { @@ -48,6 +50,8 @@ export abstract class CollectorExporterNodeBase< if (config.headers) { diag.warn('Headers cannot be set when using grpc'); } + + this.serverAddress = fixUrl(this.url); this.metadata = config.metadata; } private _sendPromise( diff --git a/packages/opentelemetry-exporter-collector-grpc/src/util.ts b/packages/opentelemetry-exporter-collector-grpc/src/util.ts index 3cc14248471..1ac2b75b15d 100644 --- a/packages/opentelemetry-exporter-collector-grpc/src/util.ts +++ b/packages/opentelemetry-exporter-collector-grpc/src/util.ts @@ -32,10 +32,6 @@ export function onInit( config: CollectorExporterConfigNode ): void { collector.grpcQueue = []; - const serverAddress = removeProtocol(collector.url); - if (collector.url.includes('/')) { - diag.warn('URL path cannot be set when using grpc'); - } const credentials: grpc.ChannelCredentials = config.credentials || grpc.credentials.createInsecure(); @@ -55,12 +51,12 @@ export function onInit( if (collector.getServiceClientType() === ServiceClientType.SPANS) { collector.serviceClient = new packageObject.opentelemetry.proto.collector.trace.v1.TraceService( - serverAddress, + collector.serverAddress, credentials ); } else { collector.serviceClient = new packageObject.opentelemetry.proto.collector.metrics.v1.MetricsService( - serverAddress, + collector.serverAddress, credentials ); } @@ -108,6 +104,10 @@ export function send( } } -function removeProtocol(url: string): string { - return url.replace(/^(http|grpc)s?:\/\//, ''); +export function fixUrl(url: string): string { + const serverAddress = url.replace(/^(http|grpc)s?:\/\//, ''); + if (serverAddress.includes('/')) { + diag.warn('URL path cannot be set when using grpc'); + } + return serverAddress; }