Skip to content
Merged
Show file tree
Hide file tree
Changes from 10 commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
f6e2f5f
chore: updating submodule for otlp-grpc-exporter-base
pichlermarc Apr 25, 2022
a8f045d
chore: updating submodule for otlp-proto-exporter-base
pichlermarc Apr 25, 2022
606870a
feat(otlp-metrics-exporter): update to proto 0.14.
pichlermarc Apr 27, 2022
ca54530
feat(otlp-trace-exporter): update to proto 0.14.
pichlermarc Apr 26, 2022
c801f42
fix(changelog): update changelog.
pichlermarc Apr 27, 2022
258e503
feat(exporter-trace-otlp-http): use hex representation for traceId an…
pichlermarc Apr 27, 2022
aed89cb
feat(otlp-transformer): update tests for base64 trace and span id rep…
pichlermarc Apr 27, 2022
78720de
feat(protos): update protos to 0.16
pichlermarc Apr 27, 2022
48b14af
fix(exporter): cleanup dependencies.
pichlermarc Apr 27, 2022
90eaaab
fix(exporters): cleanup.
pichlermarc Apr 27, 2022
f04dcb5
fix(otlp-transformer): rename IInstrumentationLibrarySpans to IScopeS…
pichlermarc Apr 29, 2022
dbc1a35
feat(otlp-exporter-example): update example to use new exporter version.
pichlermarc Apr 29, 2022
69110d7
Merge branch 'main' into use-updated-proto
pichlermarc Apr 29, 2022
7052b25
docs(exporters): update readme files.
pichlermarc Apr 29, 2022
d32f440
fix(otlp-metric-exporter): map over metrics directly.
pichlermarc Apr 29, 2022
e591ad3
fix(exporter-trace-otlp-proto): rename constant instrumentationLibrar…
pichlermarc Apr 29, 2022
87be662
fix(otlp-exporter): use assert.ok() instead of assert.strictEqual() i…
pichlermarc Apr 29, 2022
4eae398
feat(otlp-transformer): add support for instrumentationLibarary next …
pichlermarc May 2, 2022
4507c52
fix(otlp-transformer): change publish config from 'restricted' to 'pu…
pichlermarc May 2, 2022
993e1a3
Merge remote-tracking branch 'upstream/main' into use-updated-proto
pichlermarc May 2, 2022
6c77da9
docs(readme): add upgrade guidelines entries.
pichlermarc May 2, 2022
f0c4fc5
fix(otlp-transformer): cleanup.
pichlermarc May 2, 2022
3cd3a0e
docs(otlp-exporters): add compatible version range for opentelemetry-…
pichlermarc May 2, 2022
d7f400e
docs(exporter-metrics-otlp-http): remove double newline.
pichlermarc May 2, 2022
fbcf9c3
feat(otlp-transformer): revert to only publishing scopeMetrics.
pichlermarc May 3, 2022
00e7015
docs(otlp-exporter-node-example): fix links.
pichlermarc May 3, 2022
c33fbe1
fix(otlp-exporters): cleanup test assertions.
pichlermarc May 3, 2022
02c4c55
fix(otlp-exporters): cleanup tests.
pichlermarc May 3, 2022
35d9762
fix(exporter-trace-otlp-http): remove 'if' for undefined checks.
pichlermarc May 4, 2022
47aa7e4
fix(otlp-exporters): remove 'if' for undefined checks from tests.
pichlermarc May 4, 2022
2dcb4c1
fix(otlp-exporters): remove more 'if's for undefined checks from tests.
pichlermarc May 4, 2022
052eabb
Merge branch 'main' into use-updated-proto
pichlermarc May 4, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions experimental/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ All notable changes to experimental packages in this project will be documented

### :rocket: (Enhancement)

* feat(exporters): update proto version and use otlp-transformer #2929 @pichlermarc

### :bug: (Bug Fix)

### :books: (Refine Doc)
Expand Down
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 @@ -47,10 +44,8 @@ export class OTLPTraceExporter
}
}

convert(
spans: ReadableSpan[]
): otlpTypes.opentelemetryProto.collector.trace.v1.ExportTraceServiceRequest {
return toOTLPExportTraceServiceRequest(spans, this);
convert(spans: ReadableSpan[]): 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,15 +83,13 @@ 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;
},
}
);
Expand Down Expand Up @@ -181,9 +179,16 @@ const testCollectorExporter = (params: TestParams) =>
let spans;
let resource;
if (exportedData) {
spans = exportedData.instrumentationLibrarySpans[0].spans;
spans = exportedData.scopeSpans[0].spans;
resource = exportedData.resource;
ensureExportedSpanIsCorrect(spans[0]);

assert.ok(
typeof spans !== 'undefined',
'spans do not exist'
);
if(spans) {
ensureExportedSpanIsCorrect(spans[0]);
Comment thread
legendecas marked this conversation as resolved.
Outdated
}

assert.ok(
typeof resource !== 'undefined',
Expand Down Expand Up @@ -231,8 +236,13 @@ const testCollectorExporter = (params: TestParams) =>
let spans;
let resource;
if (exportedData) {
spans = exportedData.instrumentationLibrarySpans[0].spans;
spans = exportedData.scopeSpans[0].spans;
resource = exportedData.resource;

assert.ok(
typeof spans !== 'undefined',
'spans do not exist'
);
ensureExportedSpanIsCorrect(spans[0]);

assert.ok(
Expand Down Expand Up @@ -261,7 +271,7 @@ const testCollectorExporter = (params: TestParams) =>
)
: 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 +344,10 @@ describe('when configuring via environment', () => {
});
});

testCollectorExporter({ useTLS: true });
testCollectorExporter({ useTLS: false });
testCollectorExporter({ metadata });
describe('', () => {
Comment thread
legendecas marked this conversation as resolved.
Outdated
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
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"
}
]
}
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 @@ -42,10 +41,8 @@ export class OTLPTraceExporter
)
);
}
convert(
spans: ReadableSpan[]
): otlpTypes.opentelemetryProto.collector.trace.v1.ExportTraceServiceRequest {
return toOTLPExportTraceServiceRequest(spans, this, true);
convert(spans: ReadableSpan[]): IExportTraceServiceRequest {
return createExportTraceServiceRequest(spans, true);
}

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 @@ -44,10 +43,8 @@ export class OTLPTraceExporter
);
}

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

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