Skip to content

Commit 3074445

Browse files
committed
feat(exporter): Support OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf for exporting traces via http
Closes #3412
1 parent b563a6e commit 3074445

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

autoinstrumentation/nodejs/src/autoinstrumentation.ts

+15-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';
22
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc';
3+
import { OTLPTraceExporter as OTLPTraceExporterHTTP } from '@opentelemetry/exporter-trace-otlp-http';
34
import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-grpc';
45
import { PrometheusExporter } from '@opentelemetry/exporter-prometheus';
56
import { PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics';
@@ -12,6 +13,19 @@ import { diag } from '@opentelemetry/api';
1213

1314
import { NodeSDK } from '@opentelemetry/sdk-node';
1415

16+
function getTraceExporter() {
17+
switch (process.env.OTEL_EXPORTER_OTLP_PROTOCOL) {
18+
case undefined:
19+
case '':
20+
case 'grpc':
21+
return new OTLPTraceExporter();
22+
case 'http/protobuf':
23+
return new OTLPTraceExporterHTTP();
24+
default:
25+
throw Error(`Using exporter based on environment variable OTEL_EXPORTER_OTLP_PROTOCOL: ${process.env.OTEL_EXPORTER_OTLP_PROTOCOL} is not implemented!`);
26+
}
27+
}
28+
1529
function getMetricReader() {
1630
switch (process.env.OTEL_METRICS_EXPORTER) {
1731
case undefined:
@@ -35,7 +49,7 @@ function getMetricReader() {
3549
const sdk = new NodeSDK({
3650
autoDetectResources: true,
3751
instrumentations: [getNodeAutoInstrumentations()],
38-
traceExporter: new OTLPTraceExporter(),
52+
traceExporter: getTraceExporter(),
3953
metricReader: getMetricReader(),
4054
resourceDetectors:
4155
[

0 commit comments

Comments
 (0)