Skip to content

Commit dd69e8e

Browse files
committed
feat(otlp-trace-exporter): update to newest proto versions.
1 parent 15b6bd0 commit dd69e8e

25 files changed

Lines changed: 136 additions & 1044 deletions

experimental/packages/exporter-trace-otlp-grpc/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@
7070
"@opentelemetry/core": "1.2.0",
7171
"@grpc/grpc-js": "^1.5.9",
7272
"@grpc/proto-loader": "^0.6.9",
73-
"@opentelemetry/exporter-trace-otlp-http": "0.28.0",
73+
"@opentelemetry/otlp-transformer": "0.28.0",
7474
"@opentelemetry/otlp-grpc-exporter-base": "0.28.0",
7575
"@opentelemetry/resources": "1.2.0",
7676
"@opentelemetry/sdk-trace-base": "1.2.0"

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

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,6 @@
1515
*/
1616

1717
import { ReadableSpan, SpanExporter } from '@opentelemetry/sdk-trace-base';
18-
import {
19-
otlpTypes,
20-
toOTLPExportTraceServiceRequest,
21-
} from '@opentelemetry/exporter-trace-otlp-http';
2218
import { baggageUtils, getEnv } from '@opentelemetry/core';
2319
import { Metadata } from '@grpc/grpc-js';
2420
import {
@@ -27,6 +23,7 @@ import {
2723
ServiceClientType,
2824
validateAndNormalizeUrl
2925
} from '@opentelemetry/otlp-grpc-exporter-base';
26+
import { createExportTraceServiceRequest, IExportTraceServiceRequest } from '@opentelemetry/otlp-transformer';
3027

3128
const DEFAULT_COLLECTOR_URL = 'localhost:4317';
3229

@@ -35,7 +32,7 @@ const DEFAULT_COLLECTOR_URL = 'localhost:4317';
3532
*/
3633
export class OTLPTraceExporter
3734
extends OTLPGRPCExporterNodeBase<ReadableSpan,
38-
otlpTypes.opentelemetryProto.collector.trace.v1.ExportTraceServiceRequest>
35+
IExportTraceServiceRequest>
3936
implements SpanExporter {
4037

4138
constructor(config: OTLPGRPCExporterConfigNode = {}) {
@@ -49,8 +46,8 @@ export class OTLPTraceExporter
4946

5047
convert(
5148
spans: ReadableSpan[]
52-
): otlpTypes.opentelemetryProto.collector.trace.v1.ExportTraceServiceRequest {
53-
return toOTLPExportTraceServiceRequest(spans, this);
49+
): IExportTraceServiceRequest {
50+
return createExportTraceServiceRequest(spans);
5451
}
5552

5653
getDefaultUrl(config: OTLPGRPCExporterConfigNode) {

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

Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
*/
1616

1717
import * as protoLoader from '@grpc/proto-loader';
18-
import { otlpTypes } from '@opentelemetry/exporter-trace-otlp-http';
1918
import { diag } from '@opentelemetry/api';
2019
import {
2120
BasicTracerProvider,
@@ -37,6 +36,7 @@ import {
3736
} from './traceHelper';
3837
import { CompressionAlgorithm } from '@opentelemetry/otlp-exporter-base';
3938
import { GrpcCompressionAlgorithm } from '@opentelemetry/otlp-grpc-exporter-base';
39+
import { IExportTraceServiceRequest, IResourceSpans } from '@opentelemetry/otlp-transformer';
4040

4141
const traceServiceProtoPath =
4242
'opentelemetry/proto/collector/trace/v1/trace_service.proto';
@@ -59,7 +59,7 @@ const testCollectorExporter = (params: TestParams) =>
5959
let collectorExporter: OTLPTraceExporter;
6060
let server: grpc.Server;
6161
let exportedData:
62-
| otlpTypes.opentelemetryProto.trace.v1.ResourceSpans
62+
| IResourceSpans
6363
| undefined;
6464
let reqMetadata: grpc.Metadata | undefined;
6565

@@ -83,28 +83,26 @@ const testCollectorExporter = (params: TestParams) =>
8383
.service,
8484
{
8585
Export: (data: {
86-
request: otlpTypes.opentelemetryProto.collector.trace.v1.ExportTraceServiceRequest;
86+
request: IExportTraceServiceRequest;
8787
metadata: grpc.Metadata;
8888
}) => {
89-
try {
89+
if (data.request.resourceSpans != null) {
9090
exportedData = data.request.resourceSpans[0];
91-
reqMetadata = data.metadata;
92-
} catch (e) {
93-
exportedData = undefined;
9491
}
92+
reqMetadata = data.metadata;
9593
},
9694
}
9795
);
9896
const credentials = params.useTLS
9997
? grpc.ServerCredentials.createSsl(
100-
fs.readFileSync('./test/certs/ca.crt'),
101-
[
102-
{
103-
cert_chain: fs.readFileSync('./test/certs/server.crt'),
104-
private_key: fs.readFileSync('./test/certs/server.key'),
105-
},
106-
]
107-
)
98+
fs.readFileSync('./test/certs/ca.crt'),
99+
[
100+
{
101+
cert_chain: fs.readFileSync('./test/certs/server.crt'),
102+
private_key: fs.readFileSync('./test/certs/server.key'),
103+
},
104+
]
105+
)
108106
: grpc.ServerCredentials.createInsecure();
109107
server.bindAsync(address, credentials, () => {
110108
server.start();
@@ -120,10 +118,10 @@ const testCollectorExporter = (params: TestParams) =>
120118
beforeEach(done => {
121119
const credentials = params.useTLS
122120
? grpc.credentials.createSsl(
123-
fs.readFileSync('./test/certs/ca.crt'),
124-
fs.readFileSync('./test/certs/client.key'),
125-
fs.readFileSync('./test/certs/client.crt')
126-
)
121+
fs.readFileSync('./test/certs/ca.crt'),
122+
fs.readFileSync('./test/certs/client.key'),
123+
fs.readFileSync('./test/certs/client.crt')
124+
)
127125
: undefined;
128126
collectorExporter = new OTLPTraceExporter({
129127
url: 'grpcs://' + address,
@@ -180,8 +178,9 @@ const testCollectorExporter = (params: TestParams) =>
180178
);
181179
let spans;
182180
let resource;
183-
if (exportedData) {
181+
if (exportedData && exportedData.instrumentationLibrarySpans[0].spans) {
184182
spans = exportedData.instrumentationLibrarySpans[0].spans;
183+
185184
resource = exportedData.resource;
186185
ensureExportedSpanIsCorrect(spans[0]);
187186

@@ -203,12 +202,12 @@ const testCollectorExporter = (params: TestParams) =>
203202
describe('export - with gzip compression', () => {
204203
beforeEach(() => {
205204
const credentials = params.useTLS
206-
? grpc.credentials.createSsl(
205+
? grpc.credentials.createSsl(
207206
fs.readFileSync('./test/certs/ca.crt'),
208207
fs.readFileSync('./test/certs/client.key'),
209208
fs.readFileSync('./test/certs/client.crt')
210209
)
211-
: undefined;
210+
: undefined;
212211
collectorExporter = new OTLPTraceExporter({
213212
url: 'grpcs://' + address,
214213
credentials,
@@ -230,7 +229,7 @@ const testCollectorExporter = (params: TestParams) =>
230229
);
231230
let spans;
232231
let resource;
233-
if (exportedData) {
232+
if (exportedData && exportedData.instrumentationLibrarySpans[0].spans) {
234233
spans = exportedData.instrumentationLibrarySpans[0].spans;
235234
resource = exportedData.resource;
236235
ensureExportedSpanIsCorrect(spans[0]);
@@ -254,14 +253,14 @@ const testCollectorExporter = (params: TestParams) =>
254253
const envSource = process.env;
255254
it('should return gzip compression algorithm on exporter', () => {
256255
const credentials = params.useTLS
257-
? grpc.credentials.createSsl(
256+
? grpc.credentials.createSsl(
258257
fs.readFileSync('./test/certs/ca.crt'),
259258
fs.readFileSync('./test/certs/client.key'),
260259
fs.readFileSync('./test/certs/client.crt')
261260
)
262-
: undefined;
261+
: undefined;
263262

264-
envSource.OTEL_EXPORTER_OTLP_COMPRESSION='gzip';
263+
envSource.OTEL_EXPORTER_OTLP_COMPRESSION = 'gzip';
265264
collectorExporter = new OTLPTraceExporter({
266265
url: 'grpcs://' + address,
267266
credentials,
@@ -334,8 +333,10 @@ describe('when configuring via environment', () => {
334333
});
335334
});
336335

337-
testCollectorExporter({ useTLS: true });
338-
testCollectorExporter({ useTLS: false });
339-
testCollectorExporter({ metadata });
336+
describe('', () => {
337+
testCollectorExporter({ useTLS: true });
338+
testCollectorExporter({ useTLS: false });
339+
testCollectorExporter({ metadata });
340+
});
340341

341342

experimental/packages/exporter-trace-otlp-grpc/test/traceHelper.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@
1515
*/
1616

1717
import { SpanStatusCode, TraceFlags } from '@opentelemetry/api';
18-
import { otlpTypes } from '@opentelemetry/exporter-trace-otlp-http';
1918
import { Resource } from '@opentelemetry/resources';
2019
import { ReadableSpan } from '@opentelemetry/sdk-trace-base';
2120
import * as assert from 'assert';
2221
import * as grpc from '@grpc/grpc-js';
2322
import { VERSION } from '@opentelemetry/core';
23+
import { IEvent, IKeyValue, ILink, IResource, ISpan } from '@opentelemetry/otlp-transformer';
2424

2525
const traceIdArr = [
2626
31,
@@ -101,7 +101,7 @@ export const mockedReadableSpan: ReadableSpan = {
101101
};
102102

103103
export function ensureExportedEventsAreCorrect(
104-
events: otlpTypes.opentelemetryProto.trace.v1.Span.Event[]
104+
events: IEvent[]
105105
) {
106106
assert.deepStrictEqual(
107107
events,
@@ -160,7 +160,7 @@ export function ensureExportedEventsAreCorrect(
160160
}
161161

162162
export function ensureExportedAttributesAreCorrect(
163-
attributes: otlpTypes.opentelemetryProto.common.v1.KeyValue[]
163+
attributes: IKeyValue[]
164164
) {
165165
assert.deepStrictEqual(
166166
attributes,
@@ -178,7 +178,7 @@ export function ensureExportedAttributesAreCorrect(
178178
}
179179

180180
export function ensureExportedLinksAreCorrect(
181-
attributes: otlpTypes.opentelemetryProto.trace.v1.Span.Link[]
181+
attributes: ILink[]
182182
) {
183183
assert.deepStrictEqual(
184184
attributes,
@@ -204,7 +204,7 @@ export function ensureExportedLinksAreCorrect(
204204
}
205205

206206
export function ensureExportedSpanIsCorrect(
207-
span: otlpTypes.opentelemetryProto.trace.v1.Span
207+
span: ISpan
208208
) {
209209
if (span.attributes) {
210210
ensureExportedAttributesAreCorrect(span.attributes);
@@ -254,15 +254,14 @@ export function ensureExportedSpanIsCorrect(
254254
span.status,
255255
{
256256
code: 'STATUS_CODE_OK',
257-
deprecatedCode: 'DEPRECATED_STATUS_CODE_OK',
258257
message: '',
259258
},
260259
'status is wrong'
261260
);
262261
}
263262

264263
export function ensureResourceIsCorrect(
265-
resource: otlpTypes.opentelemetryProto.resource.v1.Resource
264+
resource: IResource
266265
) {
267266
assert.deepStrictEqual(resource, {
268267
attributes: [

experimental/packages/exporter-trace-otlp-grpc/tsconfig.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@
1818
{
1919
"path": "../../../packages/opentelemetry-sdk-trace-base"
2020
},
21-
{
22-
"path": "../exporter-trace-otlp-http"
23-
},
2421
{
2522
"path": "../otlp-exporter-base"
2623
},
2724
{
2825
"path": "../otlp-grpc-exporter-base"
26+
},
27+
{
28+
"path": "../otlp-transformer"
2929
}
3030
]
3131
}

experimental/packages/exporter-trace-otlp-http/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@
9797
"@opentelemetry/core": "1.2.0",
9898
"@opentelemetry/resources": "1.2.0",
9999
"@opentelemetry/sdk-trace-base": "1.2.0",
100-
"@opentelemetry/otlp-exporter-base": "0.28.0"
100+
"@opentelemetry/otlp-exporter-base": "0.28.0",
101+
"@opentelemetry/otlp-transformer": "0.28.0"
101102
}
102103
}

experimental/packages/exporter-trace-otlp-http/src/index.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,3 @@
1515
*/
1616

1717
export * from './platform';
18-
export * as otlpTypes from './types';
19-
export { toCollectorResource, toOTLPExportTraceServiceRequest } from './transform';

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

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

1717
import { appendResourcePathToUrlIfNotPresent, OTLPExporterBrowserBase } from '@opentelemetry/otlp-exporter-base';
1818
import { ReadableSpan, SpanExporter } from '@opentelemetry/sdk-trace-base';
19-
import { toOTLPExportTraceServiceRequest } from '../../transform';
20-
import * as otlpTypes from '../../types';
2119
import { getEnv, baggageUtils } from '@opentelemetry/core';
2220
import { OTLPExporterConfigBase } from '@opentelemetry/otlp-exporter-base';
21+
import { createExportTraceServiceRequest, IExportTraceServiceRequest } from '@opentelemetry/otlp-transformer';
2322

2423
const DEFAULT_COLLECTOR_RESOURCE_PATH = '/v1/traces';
2524
const DEFAULT_COLLECTOR_URL=`http://localhost:4318${DEFAULT_COLLECTOR_RESOURCE_PATH}`;
@@ -30,7 +29,7 @@ const DEFAULT_COLLECTOR_URL=`http://localhost:4318${DEFAULT_COLLECTOR_RESOURCE_P
3029
export class OTLPTraceExporter
3130
extends OTLPExporterBrowserBase<
3231
ReadableSpan,
33-
otlpTypes.opentelemetryProto.collector.trace.v1.ExportTraceServiceRequest
32+
IExportTraceServiceRequest
3433
>
3534
implements SpanExporter {
3635
constructor(config: OTLPExporterConfigBase = {}) {
@@ -44,8 +43,8 @@ export class OTLPTraceExporter
4443
}
4544
convert(
4645
spans: ReadableSpan[]
47-
): otlpTypes.opentelemetryProto.collector.trace.v1.ExportTraceServiceRequest {
48-
return toOTLPExportTraceServiceRequest(spans, this, true);
46+
): IExportTraceServiceRequest {
47+
return createExportTraceServiceRequest(spans);
4948
}
5049

5150
getDefaultUrl(config: OTLPExporterConfigBase): string {

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

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,13 @@
1515
*/
1616

1717
import { ReadableSpan, SpanExporter } from '@opentelemetry/sdk-trace-base';
18-
import * as otlpTypes from '../../types';
19-
import { toOTLPExportTraceServiceRequest } from '../../transform';
2018
import { getEnv, baggageUtils } from '@opentelemetry/core';
2119
import { OTLPExporterNodeBase } from '@opentelemetry/otlp-exporter-base';
2220
import {
2321
OTLPExporterNodeConfigBase,
2422
appendResourcePathToUrlIfNotPresent
2523
} from '@opentelemetry/otlp-exporter-base';
24+
import { createExportTraceServiceRequest, IExportTraceServiceRequest } from '@opentelemetry/otlp-transformer';
2625

2726
const DEFAULT_COLLECTOR_RESOURCE_PATH = '/v1/traces';
2827
const DEFAULT_COLLECTOR_URL = `http://localhost:4318${DEFAULT_COLLECTOR_RESOURCE_PATH}`;
@@ -32,7 +31,7 @@ const DEFAULT_COLLECTOR_URL = `http://localhost:4318${DEFAULT_COLLECTOR_RESOURCE
3231
*/
3332
export class OTLPTraceExporter
3433
extends OTLPExporterNodeBase<ReadableSpan,
35-
otlpTypes.opentelemetryProto.collector.trace.v1.ExportTraceServiceRequest>
34+
IExportTraceServiceRequest>
3635
implements SpanExporter {
3736
constructor(config: OTLPExporterNodeConfigBase = {}) {
3837
super(config);
@@ -46,8 +45,8 @@ export class OTLPTraceExporter
4645

4746
convert(
4847
spans: ReadableSpan[]
49-
): otlpTypes.opentelemetryProto.collector.trace.v1.ExportTraceServiceRequest {
50-
return toOTLPExportTraceServiceRequest(spans, this, true);
48+
): IExportTraceServiceRequest {
49+
return createExportTraceServiceRequest(spans, true);
5150
}
5251

5352
getDefaultUrl(config: OTLPExporterNodeConfigBase): string {

0 commit comments

Comments
 (0)