Skip to content

Commit ac8d65c

Browse files
authored
[core] Update @azure/core-tracing to use @opentelemetry/[email protected] (#15883)
Now that `@opentelemetry/api` GA'd at [1.0.0](https://www.npmjs.com/package/@opentelemetry/api) we can bump our own dependency to `@opentelemetry/[email protected]` Reminder: not _all_ packages are on the latest @opentelemetry/api... those that depend on @azure/core-rest-pipeline cannot be upgraded yet.
1 parent 8ab9b83 commit ac8d65c

File tree

9 files changed

+123
-92
lines changed

9 files changed

+123
-92
lines changed

common/config/rush/common-versions.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@
5656
// ]
5757
// Following is required to allow for backward compatibility with Event Processor Host Track 1
5858
"@azure/event-hubs": ["^2.1.4"],
59-
"@opentelemetry/api": ["^0.18.1"],
59+
// Monitor-opentelemetry-exporter and monitor-query both depend on different versions of @opentelemetry and need to be updated
60+
"@opentelemetry/api": ["^0.18.1", "0.21.0"],
6061
// Monitor: Allow node 10 types until Timeout / Timer conflict is resolved in OpenTelemetry repo
6162
// TODO: remove when released https://github.com/open-telemetry/opentelemetry-js/pull/1352
6263
// eslint v7.15 needs node v10.12
@@ -74,7 +75,8 @@
7475
// Issue #14771 tracks updating to these versions
7576
"@microsoft/api-extractor": ["7.13.2"],
7677
"prettier": ["2.2.1"],
77-
// All packages should move to 1.0.0-preview.12 once core-rest-pipeline 1.1.0 GAs
78+
// All packages should move to 1.0.0 once core-rest-pipeline 1.1.0 GAs
7879
"@azure/core-tracing": ["1.0.0-preview.11"]
80+
7981
}
8082
}

common/config/rush/pnpm-lock.yaml

Lines changed: 79 additions & 72 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sdk/core/core-rest-pipeline/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@
9393
"dependencies": {
9494
"@azure/abort-controller": "^1.0.0",
9595
"@azure/core-auth": "^1.3.0",
96-
"@azure/core-tracing": "1.0.0-preview.12",
96+
"@azure/core-tracing": "1.0.0-preview.11",
9797
"@azure/logger": "^1.0.0",
9898
"form-data": "^3.0.0",
9999
"tslib": "^2.2.0",

sdk/core/core-rest-pipeline/src/policies/tracingPolicy.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ export function tracingPolicy(options: TracingPolicyOptions = {}): PipelinePolic
7777

7878
try {
7979
// set headers
80-
const spanContext = span.spanContext();
80+
const spanContext = span.context();
8181
const traceParentHeader = getTraceParentHeader(spanContext);
8282
if (traceParentHeader) {
8383
request.headers.set("traceparent", traceParentHeader);

sdk/core/core-rest-pipeline/test/tracingPolicy.spec.ts

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,30 +14,47 @@ import {
1414
import {
1515
setTracer,
1616
NoOpTracer,
17-
NoOpSpan,
1817
SpanContext,
1918
TraceFlags,
19+
Span,
2020
TraceState,
2121
context,
2222
setSpan,
2323
SpanStatus,
24-
SpanStatusCode
24+
SpanStatusCode,
25+
SpanAttributes,
26+
Tracer,
27+
SpanAttributeValue
2528
} from "@azure/core-tracing";
2629

27-
class MockSpan extends NoOpSpan {
30+
class MockSpan implements Span {
2831
private _endCalled = false;
2932
private _status: SpanStatus = {
3033
code: SpanStatusCode.UNSET
3134
};
32-
private _attributes: { [s: string]: unknown } = {};
35+
private _attributes: SpanAttributes = {};
3336

3437
constructor(
3538
private traceId: string,
3639
private spanId: string,
3740
private flags: TraceFlags,
3841
private state: string
39-
) {
40-
super();
42+
) {}
43+
44+
addEvent(): this {
45+
throw new Error("Method not implemented.");
46+
}
47+
48+
isRecording(): boolean {
49+
return true;
50+
}
51+
52+
recordException(): void {
53+
throw new Error("Method not implemented.");
54+
}
55+
56+
updateName(): this {
57+
throw new Error("Method not implemented.");
4158
}
4259

4360
didEnd(): boolean {
@@ -57,7 +74,12 @@ class MockSpan extends NoOpSpan {
5774
return this;
5875
}
5976

60-
setAttribute(key: string, value: unknown) {
77+
setAttributes(attributes: SpanAttributes): this {
78+
this._attributes = attributes;
79+
return this;
80+
}
81+
82+
setAttribute(key: string, value: SpanAttributeValue) {
6183
this._attributes[key] = value;
6284
return this;
6385
}
@@ -66,7 +88,7 @@ class MockSpan extends NoOpSpan {
6688
return this._attributes[key];
6789
}
6890

69-
spanContext(): SpanContext {
91+
context(): SpanContext {
7092
const state = this.state;
7193

7294
const traceState = {
@@ -95,7 +117,7 @@ class MockSpan extends NoOpSpan {
95117
}
96118
}
97119

98-
class MockTracer extends NoOpTracer {
120+
class MockTracer implements Tracer {
99121
private spans: MockSpan[] = [];
100122
private _startSpanCalled = false;
101123

@@ -104,9 +126,7 @@ class MockTracer extends NoOpTracer {
104126
private spanId = "",
105127
private flags = TraceFlags.NONE,
106128
private state = ""
107-
) {
108-
super();
109-
}
129+
) {}
110130

111131
getStartedSpans(): MockSpan[] {
112132
return this.spans;

sdk/core/core-tracing/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
## 1.0.0-preview.12 (Unreleased)
44

5+
- Update `@opentelemetry/api` to version 1.0.0 [PR #15883](https://github.com/Azure/azure-sdk-for-js/pull/15883)
6+
57
### Breaking Changes
68

79
- Removed `OpenCensusSpanWrapper` and `OpenCensusTracerWrapper` from the public API. Customers using these wrappers should migrate to using `OpenTelemetry` directly. [PR #15770](https://github.com/Azure/azure-sdk-for-js/pull/15770)

sdk/core/core-tracing/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
"homepage": "https://github.com/Azure/azure-sdk-for-js/blob/master/sdk/core/core-tracing/README.md",
6161
"sideEffects": false,
6262
"dependencies": {
63-
"@opentelemetry/api": "0.20.0",
63+
"@opentelemetry/api": "^1.0.0",
6464
"tslib": "^2.2.0"
6565
},
6666
"devDependencies": {

sdk/core/core-tracing/test/cache.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import * as fs from "fs";
66
import { Context } from "mocha";
77
import * as path from "path";
88

9-
const validOpenTelemetryVersions = ["0.20.0"];
9+
const validOpenTelemetryVersions = ["^1.0.0"];
1010

1111
describe("cache", () => {
1212
it("ensure current @opentelemetry/api has been validated", function(this: Context) {

sdk/monitor/monitor-query/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,8 @@
111111
"@azure/monitor-opentelemetry-exporter": "1.0.0-beta.4",
112112
"@azure/test-utils-recorder": "^1.0.0",
113113
"@microsoft/api-extractor": "7.7.11",
114-
"@opentelemetry/api": "0.20.0",
115-
"@opentelemetry/node": "0.20.0",
114+
"@opentelemetry/api": "0.21.0",
115+
"@opentelemetry/node": "0.21.0",
116116
"@opentelemetry/tracing": "^0.18.2",
117117
"@types/chai-as-promised": "^7.1.0",
118118
"@types/chai": "^4.1.6",

0 commit comments

Comments
 (0)