Skip to content

Commit 176b776

Browse files
committed
feat(otlp-transformer)!: use factory functions over constants to better allow keeping state in the future
1 parent 445ff63 commit 176b776

File tree

35 files changed

+230
-176
lines changed

35 files changed

+230
-176
lines changed

experimental/CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,23 @@ All notable changes to experimental packages in this project will be documented
1010
### :rocket: (Enhancement)
1111

1212
* feat(opentelemetry-sdk-node): automatically configure metrics exporter based on environment variables [#5168](https://github.com/open-telemetry/opentelemetry-js/pull/5168) @bhaskarbanerjee
13+
* feat(oltp-transformer)!: move each serializer to its own entrypoint
14+
* This package depends on all signals, as well as `protobuf.js`, so some bundlers like rollup would issue warnings even if the user made a conscious decision to not use a protobuf exporter
15+
* (user-facing) All types except for `ISerializer` were removed from the main entrypoint, to get previously exported types, use the following entrypoints
16+
* `@opentelemetry/otlp-transformer/metrics`: metrics export service return types
17+
* `@opentelemetry/otlp-transformer/metrics/json`: metrics json serializer
18+
* `@opentelemetry/otlp-transformer/metrics/protobuf`: metrics protobuf serializer
19+
* `@opentelemetry/otlp-transformer/trace`: trace export service return types
20+
* `@opentelemetry/otlp-transformer/trace/trace`: trace json serializer
21+
* `@opentelemetry/otlp-transformer/trace/protobuf`: trace protobuf serializer
22+
* `@opentelemetry/otlp-transformer/logs`: logs export service return types
23+
* `@opentelemetry/otlp-transformer/logs/trace`: logs export service return types
24+
* `@opentelemetry/otlp-transformer/logs/protobuf`: logs export service return types
25+
* feat(otlp-transformer)!: change serializer acquisition from constant to factory function
26+
* (user-facing) serializer constant export have now been removed and replaced by factory functions
27+
* to acquire a serializer, replace `<ExportType><Signal>Serializer` with `create<ExportType><Signal>Serializer()`
28+
* example: `ProtobufMetricsSerializer` -> `createProtobufMetricsSerializer()`
29+
* this was done to simplify future performance improvements without having to introduce additional APIs
1330

1431
### :bug: (Bug Fix)
1532

experimental/packages/exporter-logs-otlp-grpc/src/OTLPLogExporter.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import {
2020
createOtlpGrpcExportDelegate,
2121
OTLPGRPCExporterConfigNode,
2222
} from '@opentelemetry/otlp-grpc-exporter-base';
23-
import { ProtobufLogsSerializer } from '@opentelemetry/otlp-transformer/experimental/logs/protobuf';
23+
import { createProtobufLogsSerializer } from '@opentelemetry/otlp-transformer/experimental/logs/protobuf';
2424
import { OTLPExporterBase } from '@opentelemetry/otlp-exporter-base';
2525

2626
/**
@@ -34,7 +34,7 @@ export class OTLPLogExporter
3434
super(
3535
createOtlpGrpcExportDelegate(
3636
convertLegacyOtlpGrpcOptions(config, 'LOGS'),
37-
ProtobufLogsSerializer,
37+
createProtobufLogsSerializer(),
3838
'LogsExportService',
3939
'/opentelemetry.proto.collector.logs.v1.LogsService/Export'
4040
)

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import type {
2121
import type { OTLPExporterConfigBase } from '@opentelemetry/otlp-exporter-base';
2222
import { OTLPExporterBase } from '@opentelemetry/otlp-exporter-base';
2323
import { createLegacyOtlpBrowserExportDelegate } from '@opentelemetry/otlp-exporter-base/browser-http';
24-
import { JsonLogsSerializer } from '@opentelemetry/otlp-transformer/experimental/logs/json';
24+
import { createJsonLogsSerializer } from '@opentelemetry/otlp-transformer/experimental/logs/json';
2525

2626
/**
2727
* Collector Logs Exporter for Web
@@ -34,7 +34,7 @@ export class OTLPLogExporter
3434
super(
3535
createLegacyOtlpBrowserExportDelegate(
3636
config,
37-
JsonLogsSerializer,
37+
createJsonLogsSerializer(),
3838
'v1/logs',
3939
{ 'Content-Type': 'application/json' }
4040
)

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import type {
2020
} from '@opentelemetry/sdk-logs';
2121
import type { OTLPExporterNodeConfigBase } from '@opentelemetry/otlp-exporter-base';
2222
import { OTLPExporterBase } from '@opentelemetry/otlp-exporter-base';
23-
import { JsonLogsSerializer } from '@opentelemetry/otlp-transformer/experimental/logs/json';
23+
import { createJsonLogsSerializer } from '@opentelemetry/otlp-transformer/experimental/logs/json';
2424
import { VERSION } from '../../version';
2525
import {
2626
convertLegacyHttpOptions,
@@ -41,7 +41,7 @@ export class OTLPLogExporter
4141
'User-Agent': `OTel-OTLP-Exporter-JavaScript/${VERSION}`,
4242
'Content-Type': 'application/json',
4343
}),
44-
JsonLogsSerializer
44+
createJsonLogsSerializer()
4545
)
4646
);
4747
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import {
1818
OTLPExporterConfigBase,
1919
OTLPExporterBase,
2020
} from '@opentelemetry/otlp-exporter-base';
21-
import { ProtobufLogsSerializer } from '@opentelemetry/otlp-transformer/experimental/logs/protobuf';
21+
import { createProtobufLogsSerializer } from '@opentelemetry/otlp-transformer/experimental/logs/protobuf';
2222

2323
import { ReadableLogRecord, LogRecordExporter } from '@opentelemetry/sdk-logs';
2424
import { createLegacyOtlpBrowserExportDelegate } from '@opentelemetry/otlp-exporter-base/browser-http';
@@ -34,7 +34,7 @@ export class OTLPLogExporter
3434
super(
3535
createLegacyOtlpBrowserExportDelegate(
3636
config,
37-
ProtobufLogsSerializer,
37+
createProtobufLogsSerializer(),
3838
'v1/logs',
3939
{ 'Content-Type': 'application/x-protobuf' }
4040
)

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import {
1818
OTLPExporterBase,
1919
OTLPExporterNodeConfigBase,
2020
} from '@opentelemetry/otlp-exporter-base';
21-
import { ProtobufLogsSerializer } from '@opentelemetry/otlp-transformer/experimental/logs/protobuf';
21+
import { createProtobufLogsSerializer } from '@opentelemetry/otlp-transformer/experimental/logs/protobuf';
2222
import {
2323
convertLegacyHttpOptions,
2424
createOtlpHttpExportDelegate,
@@ -41,7 +41,7 @@ export class OTLPLogExporter
4141
'User-Agent': `OTel-OTLP-Exporter-JavaScript/${VERSION}`,
4242
'Content-Type': 'application/x-protobuf',
4343
}),
44-
ProtobufLogsSerializer
44+
createProtobufLogsSerializer()
4545
)
4646
);
4747
}

experimental/packages/exporter-trace-otlp-grpc/src/OTLPTraceExporter.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import {
2020
createOtlpGrpcExportDelegate,
2121
OTLPGRPCExporterConfigNode,
2222
} from '@opentelemetry/otlp-grpc-exporter-base';
23-
import { ProtobufTraceSerializer } from '@opentelemetry/otlp-transformer/trace/protobuf';
23+
import { createProtobufTraceSerializer } from '@opentelemetry/otlp-transformer/trace/protobuf';
2424
import { OTLPExporterBase } from '@opentelemetry/otlp-exporter-base';
2525

2626
/**
@@ -34,7 +34,7 @@ export class OTLPTraceExporter
3434
super(
3535
createOtlpGrpcExportDelegate(
3636
convertLegacyOtlpGrpcOptions(config, 'TRACES'),
37-
ProtobufTraceSerializer,
37+
createProtobufTraceSerializer(),
3838
'TraceExportService',
3939
'/opentelemetry.proto.collector.trace.v1.TraceService/Export'
4040
)

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import {
1919
OTLPExporterConfigBase,
2020
OTLPExporterBase,
2121
} from '@opentelemetry/otlp-exporter-base';
22-
import { JsonTraceSerializer } from '@opentelemetry/otlp-transformer/trace/json';
22+
import { createJsonTraceSerializer } from '@opentelemetry/otlp-transformer/trace/json';
2323
import { createLegacyOtlpBrowserExportDelegate } from '@opentelemetry/otlp-exporter-base/browser-http';
2424

2525
/**
@@ -33,7 +33,7 @@ export class OTLPTraceExporter
3333
super(
3434
createLegacyOtlpBrowserExportDelegate(
3535
config,
36-
JsonTraceSerializer,
36+
createJsonTraceSerializer(),
3737
'v1/traces',
3838
{ 'Content-Type': 'application/json' }
3939
)

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import {
2020
OTLPExporterBase,
2121
} from '@opentelemetry/otlp-exporter-base';
2222
import { VERSION } from '../../version';
23-
import { JsonTraceSerializer } from '@opentelemetry/otlp-transformer/trace/json';
23+
import { createJsonTraceSerializer } from '@opentelemetry/otlp-transformer/trace/json';
2424
import {
2525
convertLegacyHttpOptions,
2626
createOtlpHttpExportDelegate,
@@ -40,7 +40,7 @@ export class OTLPTraceExporter
4040
'User-Agent': `OTel-OTLP-Exporter-JavaScript/${VERSION}`,
4141
'Content-Type': 'application/json',
4242
}),
43-
JsonTraceSerializer
43+
createJsonTraceSerializer()
4444
)
4545
);
4646
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import {
1919
OTLPExporterConfigBase,
2020
OTLPExporterBase,
2121
} from '@opentelemetry/otlp-exporter-base';
22-
import { ProtobufTraceSerializer } from '@opentelemetry/otlp-transformer/trace/protobuf';
22+
import { createProtobufTraceSerializer } from '@opentelemetry/otlp-transformer/trace/protobuf';
2323
import { createLegacyOtlpBrowserExportDelegate } from '@opentelemetry/otlp-exporter-base/browser-http';
2424

2525
const DEFAULT_COLLECTOR_RESOURCE_PATH = 'v1/traces';
@@ -35,7 +35,7 @@ export class OTLPTraceExporter
3535
super(
3636
createLegacyOtlpBrowserExportDelegate(
3737
config,
38-
ProtobufTraceSerializer,
38+
createProtobufTraceSerializer(),
3939
DEFAULT_COLLECTOR_RESOURCE_PATH,
4040
{ 'Content-Type': 'application/x-protobuf' }
4141
)

0 commit comments

Comments
 (0)