Skip to content

Commit 92f2e42

Browse files
authored
Merge branch 'main' into feat/transformer-serializer
2 parents dfffc23 + 3a426e8 commit 92f2e42

File tree

10 files changed

+29
-11
lines changed

10 files changed

+29
-11
lines changed

experimental/CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ All notable changes to experimental packages in this project will be documented
2929

3030
### :bug: (Bug Fix)
3131

32+
* fix(exporter-*-otlp-*): use parseHeaders() to ensure header-values are not 'undefined' #4540
33+
* Fixes a bug where passing `undefined` as a header value would crash the end-user app after the export timeout elapsed.
34+
3235
### :books: (Refine Doc)
3336

3437
### :house: (Internal)

experimental/packages/exporter-logs-otlp-http/src/platform/node/OTLPLogExporter.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,13 @@ import type {
2424
IExportLogsServiceResponse,
2525
} from '@opentelemetry/otlp-transformer';
2626
import { getEnv, baggageUtils } from '@opentelemetry/core';
27-
import { OTLPExporterNodeBase } from '@opentelemetry/otlp-exporter-base';
27+
import {
28+
OTLPExporterNodeBase,
29+
parseHeaders,
30+
} from '@opentelemetry/otlp-exporter-base';
2831
import { JsonLogsSerializer } from '@opentelemetry/otlp-transformer';
32+
import { createExportLogsServiceRequest } from '@opentelemetry/otlp-transformer';
33+
2934

3035
import { getDefaultUrl } from '../config';
3136
import { VERSION } from '../../version';
@@ -61,7 +66,7 @@ export class OTLPLogExporter
6166
...baggageUtils.parseKeyPairsIntoRecord(
6267
getEnv().OTEL_EXPORTER_OTLP_LOGS_HEADERS
6368
),
64-
...config.headers,
69+
...parseHeaders(config?.headers),
6570
};
6671
}
6772

experimental/packages/exporter-logs-otlp-proto/src/platform/node/OTLPLogExporter.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import {
2020
appendResourcePathToUrl,
2121
appendRootPathToUrlIfNeeded,
2222
OTLPExporterNodeBase,
23+
parseHeaders,
2324
} from '@opentelemetry/otlp-exporter-base';
2425
import { ServiceClientType } from '@opentelemetry/otlp-proto-exporter-base';
2526
import {
@@ -57,7 +58,7 @@ export class OTLPLogExporter
5758
...baggageUtils.parseKeyPairsIntoRecord(
5859
getEnv().OTEL_EXPORTER_OTLP_LOGS_HEADERS
5960
),
60-
...config.headers,
61+
...parseHeaders(config?.headers),
6162
};
6263
}
6364

experimental/packages/exporter-trace-otlp-http/src/platform/node/OTLPTraceExporter.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@
1616

1717
import { ReadableSpan, SpanExporter } from '@opentelemetry/sdk-trace-base';
1818
import { getEnv, baggageUtils } from '@opentelemetry/core';
19-
import { OTLPExporterNodeBase } from '@opentelemetry/otlp-exporter-base';
19+
import {
20+
OTLPExporterNodeBase,
21+
parseHeaders,
22+
} from '@opentelemetry/otlp-exporter-base';
2023
import {
2124
OTLPExporterNodeConfigBase,
2225
appendResourcePathToUrl,
@@ -54,7 +57,7 @@ export class OTLPTraceExporter
5457
...baggageUtils.parseKeyPairsIntoRecord(
5558
getEnv().OTEL_EXPORTER_OTLP_TRACES_HEADERS
5659
),
57-
...config.headers,
60+
...parseHeaders(config?.headers),
5861
};
5962
}
6063

experimental/packages/exporter-trace-otlp-proto/src/platform/node/OTLPTraceExporter.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import {
2121
appendResourcePathToUrl,
2222
appendRootPathToUrlIfNeeded,
2323
OTLPExporterNodeBase,
24+
parseHeaders,
2425
} from '@opentelemetry/otlp-exporter-base';
2526
import { ServiceClientType } from '@opentelemetry/otlp-proto-exporter-base';
2627
import {
@@ -55,7 +56,7 @@ export class OTLPTraceExporter
5556
...baggageUtils.parseKeyPairsIntoRecord(
5657
getEnv().OTEL_EXPORTER_OTLP_TRACES_HEADERS
5758
),
58-
...config.headers,
59+
...parseHeaders(config?.headers),
5960
};
6061
}
6162

experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/src/OTLPMetricExporter.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import {
3232
ProtobufMetricsSerializer,
3333
} from '@opentelemetry/otlp-transformer';
3434
import { VERSION } from './version';
35+
import { parseHeaders } from '@opentelemetry/otlp-exporter-base';
3536

3637
const USER_AGENT = {
3738
'User-Agent': `OTel-OTLP-Exporter-JavaScript/${VERSION}`,
@@ -48,7 +49,7 @@ class OTLPMetricExporterProxy extends OTLPGRPCExporterNodeBase<
4849
...baggageUtils.parseKeyPairsIntoRecord(
4950
getEnv().OTEL_EXPORTER_OTLP_METRICS_HEADERS
5051
),
51-
...config?.headers,
52+
...parseHeaders(config?.headers),
5253
};
5354
super(
5455
config,

experimental/packages/opentelemetry-exporter-metrics-otlp-http/src/platform/node/OTLPMetricExporter.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import {
2323
OTLPExporterNodeConfigBase,
2424
appendResourcePathToUrl,
2525
appendRootPathToUrlIfNeeded,
26+
parseHeaders,
2627
} from '@opentelemetry/otlp-exporter-base';
2728
import {
2829
IExportMetricsServiceRequest,
@@ -50,7 +51,7 @@ class OTLPExporterNodeProxy extends OTLPExporterNodeBase<
5051
...baggageUtils.parseKeyPairsIntoRecord(
5152
getEnv().OTEL_EXPORTER_OTLP_METRICS_HEADERS
5253
),
53-
...config?.headers,
54+
...parseHeaders(config?.headers),
5455
};
5556
}
5657

experimental/packages/opentelemetry-exporter-metrics-otlp-proto/src/OTLPMetricExporter.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import {
2424
appendResourcePathToUrl,
2525
appendRootPathToUrlIfNeeded,
2626
OTLPExporterNodeBase,
27+
parseHeaders,
2728
} from '@opentelemetry/otlp-exporter-base';
2829
import {
2930
IExportMetricsServiceRequest,
@@ -51,7 +52,7 @@ class OTLPMetricExporterNodeProxy extends OTLPExporterNodeBase<
5152
...baggageUtils.parseKeyPairsIntoRecord(
5253
getEnv().OTEL_EXPORTER_OTLP_METRICS_HEADERS
5354
),
54-
...config?.headers,
55+
...parseHeaders(config?.headers),
5556
};
5657
}
5758

experimental/packages/otlp-exporter-base/src/util.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@ export function parseHeaders(
3535
if (typeof value !== 'undefined') {
3636
headers[key] = String(value);
3737
} else {
38-
diag.warn(`Header "${key}" has wrong value and will be ignored`);
38+
diag.warn(
39+
`Header "${key}" has invalid value (${value}) and will be ignored`
40+
);
3941
}
4042
});
4143
return headers;

experimental/packages/otlp-exporter-base/test/common/util.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ describe('utils', () => {
4646
const args = spyWarn.args[0];
4747
assert.strictEqual(
4848
args[0],
49-
'Header "foo1" has wrong value and will be ignored'
49+
'Header "foo1" has invalid value (undefined) and will be ignored'
5050
);
5151
});
5252

0 commit comments

Comments
 (0)