Skip to content

Commit 8c8d607

Browse files
authored
Merge branch 'master' into Fix-for-issue-#1757
2 parents ea450e2 + c5cbc49 commit 8c8d607

File tree

8 files changed

+72
-9
lines changed

8 files changed

+72
-9
lines changed

examples/collector-exporter-node/docker/docker-compose.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ version: "3"
22
services:
33
# Collector
44
collector:
5-
image: otel/opentelemetry-collector:0.13.0
5+
image: otel/opentelemetry-collector:0.16.0
66
# image: otel/opentelemetry-collector:latest
77
command: ["--config=/conf/collector-config.yaml", "--log-level=DEBUG"]
88
volumes:

packages/opentelemetry-exporter-collector-grpc/test/helper.ts

+5-1
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,11 @@ export function ensureExportedSpanIsCorrect(
308308
assert.strictEqual(span.droppedLinksCount, 0, 'droppedLinksCount is wrong');
309309
assert.deepStrictEqual(
310310
span.status,
311-
{ code: 'STATUS_CODE_OK', message: '' },
311+
{
312+
code: 'STATUS_CODE_OK',
313+
deprecatedCode: 'DEPRECATED_STATUS_CODE_OK',
314+
message: '',
315+
},
312316
'status is wrong'
313317
);
314318
}

packages/opentelemetry-exporter-collector/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
[![devDependencies][devDependencies-image]][devDependencies-url]
77
[![Apache License][license-image]][license-image]
88

9-
This module provides exporter for web and node to be used with [opentelemetry-collector][opentelemetry-collector-url] - last tested with version **0.12.0**.
9+
This module provides exporter for web and node to be used with [opentelemetry-collector][opentelemetry-collector-url] - last tested with version **0.16.0**.
1010

1111
## Installation
1212

packages/opentelemetry-exporter-collector/src/transform.ts

+36-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ import {
1818
Attributes,
1919
Link,
2020
SpanKind,
21+
Status,
22+
StatusCode,
2123
TimedEvent,
2224
TraceState,
2325
} from '@opentelemetry/api';
@@ -184,12 +186,45 @@ export function toCollectorSpan(
184186
droppedAttributesCount: 0,
185187
events: toCollectorEvents(span.events),
186188
droppedEventsCount: 0,
187-
status: span.status,
189+
status: toCollectorStatus(span.status),
188190
links: toCollectorLinks(span, useHex),
189191
droppedLinksCount: 0,
190192
};
191193
}
192194

195+
/**
196+
* Converts StatusCode
197+
* @param code
198+
*/
199+
export function toCollectorCode(
200+
code: StatusCode
201+
): opentelemetryProto.trace.v1.StatusCode {
202+
switch (code) {
203+
case StatusCode.OK:
204+
return opentelemetryProto.trace.v1.StatusCode.OK;
205+
case StatusCode.UNSET:
206+
return opentelemetryProto.trace.v1.StatusCode.UNSET;
207+
default:
208+
return opentelemetryProto.trace.v1.StatusCode.ERROR;
209+
}
210+
}
211+
212+
/**
213+
* Converts status
214+
* @param status
215+
*/
216+
export function toCollectorStatus(
217+
status: Status
218+
): opentelemetryProto.trace.v1.Status {
219+
const spanStatus: opentelemetryProto.trace.v1.Status = {
220+
code: toCollectorCode(status.code),
221+
};
222+
if (typeof status.message !== 'undefined') {
223+
spanStatus.message = status.message;
224+
}
225+
return spanStatus;
226+
}
227+
193228
/**
194229
* Converts resource
195230
* @param resource

packages/opentelemetry-exporter-collector/src/types.ts

+26-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
*/
1616

1717
import { SpanKind, Logger, Attributes } from '@opentelemetry/api';
18-
import * as api from '@opentelemetry/api';
1918

2019
/* eslint-disable @typescript-eslint/no-namespace */
2120
export namespace opentelemetryProto {
@@ -254,7 +253,32 @@ export namespace opentelemetryProto {
254253
status?: Status;
255254
}
256255

257-
export type Status = api.Status;
256+
export interface Status {
257+
/** The status code of this message. */
258+
code: StatusCode;
259+
/** A developer-facing error message. */
260+
message?: string;
261+
}
262+
263+
/**
264+
* An enumeration of status codes.
265+
* https://github.com/open-telemetry/opentelemetry-proto/blob/master/opentelemetry/proto/trace/v1/trace.proto#L304
266+
*/
267+
export enum StatusCode {
268+
/**
269+
* The default status.
270+
*/
271+
UNSET = 0,
272+
/**
273+
* The operation has been validated by an Application developer or
274+
* Operator to have completed successfully.
275+
*/
276+
OK = 1,
277+
/**
278+
* The operation contains an error.
279+
*/
280+
ERROR = 2,
281+
}
258282

259283
export interface TraceConfig {
260284
constantSampler?: ConstantSampler | null;

packages/opentelemetry-exporter-collector/test/helper.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -507,7 +507,7 @@ export function ensureSpanIsCorrect(
507507
assert.strictEqual(span.droppedLinksCount, 0, 'droppedLinksCount is wrong');
508508
assert.deepStrictEqual(
509509
span.status,
510-
{ code: api.StatusCode.OK },
510+
{ code: opentelemetryProto.trace.v1.StatusCode.OK },
511511
'status is wrong'
512512
);
513513
}

0 commit comments

Comments
 (0)