Skip to content

Commit

Permalink
feat(otlp-trace-exporter): update to newest proto versions.
Browse files Browse the repository at this point in the history
  • Loading branch information
pichlermarc committed Apr 26, 2022
1 parent 15b6bd0 commit dd69e8e
Show file tree
Hide file tree
Showing 25 changed files with 136 additions and 1,044 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@
"@opentelemetry/core": "1.2.0",
"@grpc/grpc-js": "^1.5.9",
"@grpc/proto-loader": "^0.6.9",
"@opentelemetry/exporter-trace-otlp-http": "0.28.0",
"@opentelemetry/otlp-transformer": "0.28.0",
"@opentelemetry/otlp-grpc-exporter-base": "0.28.0",
"@opentelemetry/resources": "1.2.0",
"@opentelemetry/sdk-trace-base": "1.2.0"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,6 @@
*/

import { ReadableSpan, SpanExporter } from '@opentelemetry/sdk-trace-base';
import {
otlpTypes,
toOTLPExportTraceServiceRequest,
} from '@opentelemetry/exporter-trace-otlp-http';
import { baggageUtils, getEnv } from '@opentelemetry/core';
import { Metadata } from '@grpc/grpc-js';
import {
Expand All @@ -27,6 +23,7 @@ import {
ServiceClientType,
validateAndNormalizeUrl
} from '@opentelemetry/otlp-grpc-exporter-base';
import { createExportTraceServiceRequest, IExportTraceServiceRequest } from '@opentelemetry/otlp-transformer';

const DEFAULT_COLLECTOR_URL = 'localhost:4317';

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

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

convert(
spans: ReadableSpan[]
): otlpTypes.opentelemetryProto.collector.trace.v1.ExportTraceServiceRequest {
return toOTLPExportTraceServiceRequest(spans, this);
): IExportTraceServiceRequest {
return createExportTraceServiceRequest(spans);
}

getDefaultUrl(config: OTLPGRPCExporterConfigNode) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
*/

import * as protoLoader from '@grpc/proto-loader';
import { otlpTypes } from '@opentelemetry/exporter-trace-otlp-http';
import { diag } from '@opentelemetry/api';
import {
BasicTracerProvider,
Expand All @@ -37,6 +36,7 @@ import {
} from './traceHelper';
import { CompressionAlgorithm } from '@opentelemetry/otlp-exporter-base';
import { GrpcCompressionAlgorithm } from '@opentelemetry/otlp-grpc-exporter-base';
import { IExportTraceServiceRequest, IResourceSpans } from '@opentelemetry/otlp-transformer';

const traceServiceProtoPath =
'opentelemetry/proto/collector/trace/v1/trace_service.proto';
Expand All @@ -59,7 +59,7 @@ const testCollectorExporter = (params: TestParams) =>
let collectorExporter: OTLPTraceExporter;
let server: grpc.Server;
let exportedData:
| otlpTypes.opentelemetryProto.trace.v1.ResourceSpans
| IResourceSpans
| undefined;
let reqMetadata: grpc.Metadata | undefined;

Expand All @@ -83,28 +83,26 @@ const testCollectorExporter = (params: TestParams) =>
.service,
{
Export: (data: {
request: otlpTypes.opentelemetryProto.collector.trace.v1.ExportTraceServiceRequest;
request: IExportTraceServiceRequest;
metadata: grpc.Metadata;
}) => {
try {
if (data.request.resourceSpans != null) {
exportedData = data.request.resourceSpans[0];
reqMetadata = data.metadata;
} catch (e) {
exportedData = undefined;
}
reqMetadata = data.metadata;
},
}
);
const credentials = params.useTLS
? grpc.ServerCredentials.createSsl(
fs.readFileSync('./test/certs/ca.crt'),
[
{
cert_chain: fs.readFileSync('./test/certs/server.crt'),
private_key: fs.readFileSync('./test/certs/server.key'),
},
]
)
fs.readFileSync('./test/certs/ca.crt'),
[
{
cert_chain: fs.readFileSync('./test/certs/server.crt'),
private_key: fs.readFileSync('./test/certs/server.key'),
},
]
)
: grpc.ServerCredentials.createInsecure();
server.bindAsync(address, credentials, () => {
server.start();
Expand All @@ -120,10 +118,10 @@ const testCollectorExporter = (params: TestParams) =>
beforeEach(done => {
const credentials = params.useTLS
? grpc.credentials.createSsl(
fs.readFileSync('./test/certs/ca.crt'),
fs.readFileSync('./test/certs/client.key'),
fs.readFileSync('./test/certs/client.crt')
)
fs.readFileSync('./test/certs/ca.crt'),
fs.readFileSync('./test/certs/client.key'),
fs.readFileSync('./test/certs/client.crt')
)
: undefined;
collectorExporter = new OTLPTraceExporter({
url: 'grpcs://' + address,
Expand Down Expand Up @@ -180,8 +178,9 @@ const testCollectorExporter = (params: TestParams) =>
);
let spans;
let resource;
if (exportedData) {
if (exportedData && exportedData.instrumentationLibrarySpans[0].spans) {
spans = exportedData.instrumentationLibrarySpans[0].spans;

resource = exportedData.resource;
ensureExportedSpanIsCorrect(spans[0]);

Expand All @@ -203,12 +202,12 @@ const testCollectorExporter = (params: TestParams) =>
describe('export - with gzip compression', () => {
beforeEach(() => {
const credentials = params.useTLS
? grpc.credentials.createSsl(
? grpc.credentials.createSsl(
fs.readFileSync('./test/certs/ca.crt'),
fs.readFileSync('./test/certs/client.key'),
fs.readFileSync('./test/certs/client.crt')
)
: undefined;
: undefined;
collectorExporter = new OTLPTraceExporter({
url: 'grpcs://' + address,
credentials,
Expand All @@ -230,7 +229,7 @@ const testCollectorExporter = (params: TestParams) =>
);
let spans;
let resource;
if (exportedData) {
if (exportedData && exportedData.instrumentationLibrarySpans[0].spans) {
spans = exportedData.instrumentationLibrarySpans[0].spans;
resource = exportedData.resource;
ensureExportedSpanIsCorrect(spans[0]);
Expand All @@ -254,14 +253,14 @@ const testCollectorExporter = (params: TestParams) =>
const envSource = process.env;
it('should return gzip compression algorithm on exporter', () => {
const credentials = params.useTLS
? grpc.credentials.createSsl(
? grpc.credentials.createSsl(
fs.readFileSync('./test/certs/ca.crt'),
fs.readFileSync('./test/certs/client.key'),
fs.readFileSync('./test/certs/client.crt')
)
: undefined;
: undefined;

envSource.OTEL_EXPORTER_OTLP_COMPRESSION='gzip';
envSource.OTEL_EXPORTER_OTLP_COMPRESSION = 'gzip';
collectorExporter = new OTLPTraceExporter({
url: 'grpcs://' + address,
credentials,
Expand Down Expand Up @@ -334,8 +333,10 @@ describe('when configuring via environment', () => {
});
});

testCollectorExporter({ useTLS: true });
testCollectorExporter({ useTLS: false });
testCollectorExporter({ metadata });
describe('', () => {
testCollectorExporter({ useTLS: true });
testCollectorExporter({ useTLS: false });
testCollectorExporter({ metadata });
});


Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@
*/

import { SpanStatusCode, TraceFlags } from '@opentelemetry/api';
import { otlpTypes } from '@opentelemetry/exporter-trace-otlp-http';
import { Resource } from '@opentelemetry/resources';
import { ReadableSpan } from '@opentelemetry/sdk-trace-base';
import * as assert from 'assert';
import * as grpc from '@grpc/grpc-js';
import { VERSION } from '@opentelemetry/core';
import { IEvent, IKeyValue, ILink, IResource, ISpan } from '@opentelemetry/otlp-transformer';

const traceIdArr = [
31,
Expand Down Expand Up @@ -101,7 +101,7 @@ export const mockedReadableSpan: ReadableSpan = {
};

export function ensureExportedEventsAreCorrect(
events: otlpTypes.opentelemetryProto.trace.v1.Span.Event[]
events: IEvent[]
) {
assert.deepStrictEqual(
events,
Expand Down Expand Up @@ -160,7 +160,7 @@ export function ensureExportedEventsAreCorrect(
}

export function ensureExportedAttributesAreCorrect(
attributes: otlpTypes.opentelemetryProto.common.v1.KeyValue[]
attributes: IKeyValue[]
) {
assert.deepStrictEqual(
attributes,
Expand All @@ -178,7 +178,7 @@ export function ensureExportedAttributesAreCorrect(
}

export function ensureExportedLinksAreCorrect(
attributes: otlpTypes.opentelemetryProto.trace.v1.Span.Link[]
attributes: ILink[]
) {
assert.deepStrictEqual(
attributes,
Expand All @@ -204,7 +204,7 @@ export function ensureExportedLinksAreCorrect(
}

export function ensureExportedSpanIsCorrect(
span: otlpTypes.opentelemetryProto.trace.v1.Span
span: ISpan
) {
if (span.attributes) {
ensureExportedAttributesAreCorrect(span.attributes);
Expand Down Expand Up @@ -254,15 +254,14 @@ export function ensureExportedSpanIsCorrect(
span.status,
{
code: 'STATUS_CODE_OK',
deprecatedCode: 'DEPRECATED_STATUS_CODE_OK',
message: '',
},
'status is wrong'
);
}

export function ensureResourceIsCorrect(
resource: otlpTypes.opentelemetryProto.resource.v1.Resource
resource: IResource
) {
assert.deepStrictEqual(resource, {
attributes: [
Expand Down
6 changes: 3 additions & 3 deletions experimental/packages/exporter-trace-otlp-grpc/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,14 @@
{
"path": "../../../packages/opentelemetry-sdk-trace-base"
},
{
"path": "../exporter-trace-otlp-http"
},
{
"path": "../otlp-exporter-base"
},
{
"path": "../otlp-grpc-exporter-base"
},
{
"path": "../otlp-transformer"
}
]
}
3 changes: 2 additions & 1 deletion experimental/packages/exporter-trace-otlp-http/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@
"@opentelemetry/core": "1.2.0",
"@opentelemetry/resources": "1.2.0",
"@opentelemetry/sdk-trace-base": "1.2.0",
"@opentelemetry/otlp-exporter-base": "0.28.0"
"@opentelemetry/otlp-exporter-base": "0.28.0",
"@opentelemetry/otlp-transformer": "0.28.0"
}
}
2 changes: 0 additions & 2 deletions experimental/packages/exporter-trace-otlp-http/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,3 @@
*/

export * from './platform';
export * as otlpTypes from './types';
export { toCollectorResource, toOTLPExportTraceServiceRequest } from './transform';
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,9 @@

import { appendResourcePathToUrlIfNotPresent, OTLPExporterBrowserBase } from '@opentelemetry/otlp-exporter-base';
import { ReadableSpan, SpanExporter } from '@opentelemetry/sdk-trace-base';
import { toOTLPExportTraceServiceRequest } from '../../transform';
import * as otlpTypes from '../../types';
import { getEnv, baggageUtils } from '@opentelemetry/core';
import { OTLPExporterConfigBase } from '@opentelemetry/otlp-exporter-base';
import { createExportTraceServiceRequest, IExportTraceServiceRequest } from '@opentelemetry/otlp-transformer';

const DEFAULT_COLLECTOR_RESOURCE_PATH = '/v1/traces';
const DEFAULT_COLLECTOR_URL=`http://localhost:4318${DEFAULT_COLLECTOR_RESOURCE_PATH}`;
Expand All @@ -30,7 +29,7 @@ const DEFAULT_COLLECTOR_URL=`http://localhost:4318${DEFAULT_COLLECTOR_RESOURCE_P
export class OTLPTraceExporter
extends OTLPExporterBrowserBase<
ReadableSpan,
otlpTypes.opentelemetryProto.collector.trace.v1.ExportTraceServiceRequest
IExportTraceServiceRequest
>
implements SpanExporter {
constructor(config: OTLPExporterConfigBase = {}) {
Expand All @@ -44,8 +43,8 @@ export class OTLPTraceExporter
}
convert(
spans: ReadableSpan[]
): otlpTypes.opentelemetryProto.collector.trace.v1.ExportTraceServiceRequest {
return toOTLPExportTraceServiceRequest(spans, this, true);
): IExportTraceServiceRequest {
return createExportTraceServiceRequest(spans);
}

getDefaultUrl(config: OTLPExporterConfigBase): string {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,13 @@
*/

import { ReadableSpan, SpanExporter } from '@opentelemetry/sdk-trace-base';
import * as otlpTypes from '../../types';
import { toOTLPExportTraceServiceRequest } from '../../transform';
import { getEnv, baggageUtils } from '@opentelemetry/core';
import { OTLPExporterNodeBase } from '@opentelemetry/otlp-exporter-base';
import {
OTLPExporterNodeConfigBase,
appendResourcePathToUrlIfNotPresent
} from '@opentelemetry/otlp-exporter-base';
import { createExportTraceServiceRequest, IExportTraceServiceRequest } from '@opentelemetry/otlp-transformer';

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

convert(
spans: ReadableSpan[]
): otlpTypes.opentelemetryProto.collector.trace.v1.ExportTraceServiceRequest {
return toOTLPExportTraceServiceRequest(spans, this, true);
): IExportTraceServiceRequest {
return createExportTraceServiceRequest(spans, true);
}

getDefaultUrl(config: OTLPExporterNodeConfigBase): string {
Expand Down
Loading

0 comments on commit dd69e8e

Please sign in to comment.