diff --git a/experimental/packages/opentelemetry-exporter-trace-otlp-http/src/platform/node/OTLPExporterNodeBase.ts b/experimental/packages/opentelemetry-exporter-trace-otlp-http/src/platform/node/OTLPExporterNodeBase.ts index 03eb432b49..920f0ac043 100644 --- a/experimental/packages/opentelemetry-exporter-trace-otlp-http/src/platform/node/OTLPExporterNodeBase.ts +++ b/experimental/packages/opentelemetry-exporter-trace-otlp-http/src/platform/node/OTLPExporterNodeBase.ts @@ -90,5 +90,7 @@ export abstract class OTLPExporterNodeBase< promise.then(popPromise, popPromise); } + // TODO: end gzip stream from util.ts if not undefined + // It should perhaps be a class member here instead of a variable in util.ts onShutdown(): void {} } diff --git a/experimental/packages/opentelemetry-exporter-trace-otlp-http/src/platform/node/util.ts b/experimental/packages/opentelemetry-exporter-trace-otlp-http/src/platform/node/util.ts index 8c905c496d..0e40b585db 100644 --- a/experimental/packages/opentelemetry-exporter-trace-otlp-http/src/platform/node/util.ts +++ b/experimental/packages/opentelemetry-exporter-trace-otlp-http/src/platform/node/util.ts @@ -24,7 +24,7 @@ import { OTLPExporterNodeConfigBase } from '.'; import { diag } from '@opentelemetry/api'; import { CompressionAlgorithm } from './types'; -const gzip = zlib.createGzip(); +let gzip: zlib.Gzip | undefined; /** * Sends data using http @@ -83,6 +83,9 @@ export function sendWithHttp( switch (collector.compression) { case CompressionAlgorithm.GZIP: { + if (!gzip) { + gzip = zlib.createGzip(); + } req.setHeader('Content-Encoding', 'gzip'); const dataStream = readableFromBuffer(data); dataStream.on('error', onError)