Skip to content

Commit 3c3fce9

Browse files
committed
Upgrade to OpenTelemetry v2 SDKs
Necessitated by our minor version upgrade of @opentelemetry/exporter-trace-otlp-http.
1 parent 7eae5b0 commit 3c3fce9

File tree

4 files changed

+38
-79
lines changed

4 files changed

+38
-79
lines changed

package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,11 @@
4343
"@livekit/track-processors": "^0.5.5",
4444
"@mediapipe/tasks-vision": "^0.10.18",
4545
"@opentelemetry/api": "^1.4.0",
46-
"@opentelemetry/core": "^1.25.1",
46+
"@opentelemetry/core": "^2.0.0",
4747
"@opentelemetry/exporter-trace-otlp-http": "^0.201.0",
48-
"@opentelemetry/resources": "^1.25.1",
49-
"@opentelemetry/sdk-trace-base": "^1.25.1",
50-
"@opentelemetry/sdk-trace-web": "^1.9.1",
48+
"@opentelemetry/resources": "^2.0.0",
49+
"@opentelemetry/sdk-trace-base": "^2.0.0",
50+
"@opentelemetry/sdk-trace-web": "^2.0.0",
5151
"@opentelemetry/semantic-conventions": "^1.25.1",
5252
"@playwright/test": "^1.52.0",
5353
"@radix-ui/react-dialog": "^1.0.4",

src/analytics/RageshakeSpanProcessor.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,13 +107,13 @@ export class RageshakeSpanProcessor implements SpanProcessor {
107107
startTime,
108108
duration,
109109
references:
110-
span.parentSpanId === undefined
110+
span.parentSpanContext?.spanId === undefined
111111
? []
112112
: [
113113
{
114114
refType: "CHILD_OF",
115115
traceID: traceId,
116-
spanID: span.parentSpanId,
116+
spanID: span.parentSpanContext?.spanId,
117117
},
118118
],
119119
tags: dumpAttributes(span.attributes),

src/otel/otel.ts

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,15 @@ SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
55
Please see LICENSE in the repository root for full details.
66
*/
77

8-
import { SimpleSpanProcessor } from "@opentelemetry/sdk-trace-base";
8+
import {
9+
SimpleSpanProcessor,
10+
type SpanProcessor,
11+
} from "@opentelemetry/sdk-trace-base";
912
import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
1013
import { WebTracerProvider } from "@opentelemetry/sdk-trace-web";
1114
import opentelemetry, { type Tracer } from "@opentelemetry/api";
12-
import { Resource } from "@opentelemetry/resources";
13-
import { SemanticResourceAttributes } from "@opentelemetry/semantic-conventions";
15+
import { resourceFromAttributes } from "@opentelemetry/resources";
16+
import { ATTR_SERVICE_NAME } from "@opentelemetry/semantic-conventions";
1417
import { logger } from "matrix-js-sdk/lib/logger";
1518

1619
import { PosthogSpanProcessor } from "../analytics/PosthogSpanProcessor";
@@ -59,34 +62,34 @@ export class ElementCallOpenTelemetry {
5962
collectorUrl: string | undefined,
6063
rageshakeUrl: string | undefined,
6164
) {
62-
// This is how we can make Jaeger show a reasonable service in the dropdown on the left.
63-
const providerConfig = {
64-
resource: new Resource({
65-
[SemanticResourceAttributes.SERVICE_NAME]: SERVICE_NAME,
66-
}),
67-
};
68-
this._provider = new WebTracerProvider(providerConfig);
65+
const spanProcessors: SpanProcessor[] = [];
6966

7067
if (collectorUrl) {
7168
logger.info("Enabling OTLP collector with URL " + collectorUrl);
7269
this.otlpExporter = new OTLPTraceExporter({
7370
url: collectorUrl,
7471
});
75-
this._provider.addSpanProcessor(
76-
new SimpleSpanProcessor(this.otlpExporter),
77-
);
72+
spanProcessors.push(new SimpleSpanProcessor(this.otlpExporter));
7873
} else {
7974
logger.info("OTLP collector disabled");
8075
}
8176

8277
if (rageshakeUrl) {
8378
this.rageshakeProcessor = new RageshakeSpanProcessor();
84-
this._provider.addSpanProcessor(this.rageshakeProcessor);
79+
spanProcessors.push(this.rageshakeProcessor);
8580
}
8681

87-
this._provider.addSpanProcessor(new PosthogSpanProcessor());
88-
opentelemetry.trace.setGlobalTracerProvider(this._provider);
82+
spanProcessors.push(new PosthogSpanProcessor());
8983

84+
this._provider = new WebTracerProvider({
85+
resource: resourceFromAttributes({
86+
// This is how we can make Jaeger show a reasonable service in the dropdown on the left.
87+
[ATTR_SERVICE_NAME]: SERVICE_NAME,
88+
}),
89+
spanProcessors,
90+
});
91+
92+
opentelemetry.trace.setGlobalTracerProvider(this._provider);
9093
this._tracer = opentelemetry.trace.getTracer(
9194
// This is not the serviceName shown in jaeger
9295
"my-element-call-otl-tracer",

yarn.lock

Lines changed: 13 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -2932,18 +2932,7 @@ __metadata:
29322932
languageName: node
29332933
linkType: hard
29342934

2935-
"@opentelemetry/core@npm:1.30.1, @opentelemetry/core@npm:^1.25.1":
2936-
version: 1.30.1
2937-
resolution: "@opentelemetry/core@npm:1.30.1"
2938-
dependencies:
2939-
"@opentelemetry/semantic-conventions": "npm:1.28.0"
2940-
peerDependencies:
2941-
"@opentelemetry/api": ">=1.0.0 <1.10.0"
2942-
checksum: 10c0/4c25ba50a6137c2ba9ca563fb269378f3c9ca6fd1b3f15dbb6eff78eebf5656f281997cbb7be8e51c01649fd6ad091083fcd8a42dd9b5dfac907dc06d7cfa092
2943-
languageName: node
2944-
linkType: hard
2945-
2946-
"@opentelemetry/core@npm:2.0.1":
2935+
"@opentelemetry/core@npm:2.0.1, @opentelemetry/core@npm:^2.0.0":
29472936
version: 2.0.1
29482937
resolution: "@opentelemetry/core@npm:2.0.1"
29492938
dependencies:
@@ -2998,19 +2987,7 @@ __metadata:
29982987
languageName: node
29992988
linkType: hard
30002989

3001-
"@opentelemetry/resources@npm:1.30.1, @opentelemetry/resources@npm:^1.25.1":
3002-
version: 1.30.1
3003-
resolution: "@opentelemetry/resources@npm:1.30.1"
3004-
dependencies:
3005-
"@opentelemetry/core": "npm:1.30.1"
3006-
"@opentelemetry/semantic-conventions": "npm:1.28.0"
3007-
peerDependencies:
3008-
"@opentelemetry/api": ">=1.0.0 <1.10.0"
3009-
checksum: 10c0/688e73258283c80662bfa9a858aaf73bf3b832a18d96e546d0dddfa6dcec556cdfa087a1d0df643435293406009e4122d7fb7eeea69aa87b539d3bab756fba74
3010-
languageName: node
3011-
linkType: hard
3012-
3013-
"@opentelemetry/resources@npm:2.0.1":
2990+
"@opentelemetry/resources@npm:2.0.1, @opentelemetry/resources@npm:^2.0.0":
30142991
version: 2.0.1
30152992
resolution: "@opentelemetry/resources@npm:2.0.1"
30162993
dependencies:
@@ -3047,20 +3024,7 @@ __metadata:
30473024
languageName: node
30483025
linkType: hard
30493026

3050-
"@opentelemetry/sdk-trace-base@npm:1.30.1, @opentelemetry/sdk-trace-base@npm:^1.25.1":
3051-
version: 1.30.1
3052-
resolution: "@opentelemetry/sdk-trace-base@npm:1.30.1"
3053-
dependencies:
3054-
"@opentelemetry/core": "npm:1.30.1"
3055-
"@opentelemetry/resources": "npm:1.30.1"
3056-
"@opentelemetry/semantic-conventions": "npm:1.28.0"
3057-
peerDependencies:
3058-
"@opentelemetry/api": ">=1.0.0 <1.10.0"
3059-
checksum: 10c0/77019dc3efaeceb41b4c54dd83b92f0ccd81ecceca544cbbe8e0aee4b2c8727724bdb9dcecfe00622c16d60946ae4beb69a5c0e7d85c4bc7ef425bd84f8b970c
3060-
languageName: node
3061-
linkType: hard
3062-
3063-
"@opentelemetry/sdk-trace-base@npm:2.0.1":
3027+
"@opentelemetry/sdk-trace-base@npm:2.0.1, @opentelemetry/sdk-trace-base@npm:^2.0.0":
30643028
version: 2.0.1
30653029
resolution: "@opentelemetry/sdk-trace-base@npm:2.0.1"
30663030
dependencies:
@@ -3073,23 +3037,15 @@ __metadata:
30733037
languageName: node
30743038
linkType: hard
30753039

3076-
"@opentelemetry/sdk-trace-web@npm:^1.9.1":
3077-
version: 1.30.1
3078-
resolution: "@opentelemetry/sdk-trace-web@npm:1.30.1"
3040+
"@opentelemetry/sdk-trace-web@npm:^2.0.0":
3041+
version: 2.0.1
3042+
resolution: "@opentelemetry/sdk-trace-web@npm:2.0.1"
30793043
dependencies:
3080-
"@opentelemetry/core": "npm:1.30.1"
3081-
"@opentelemetry/sdk-trace-base": "npm:1.30.1"
3082-
"@opentelemetry/semantic-conventions": "npm:1.28.0"
3044+
"@opentelemetry/core": "npm:2.0.1"
3045+
"@opentelemetry/sdk-trace-base": "npm:2.0.1"
30833046
peerDependencies:
30843047
"@opentelemetry/api": ">=1.0.0 <1.10.0"
3085-
checksum: 10c0/8dd2901b5eef68a5896da0ad11f04c8990ce4ef2dcbec27bbc02d7e193097c270ba5f4c9ca363ea10fb53ca7cc515f18d9dc383a69a17720cd0590474c0ffdaf
3086-
languageName: node
3087-
linkType: hard
3088-
3089-
"@opentelemetry/semantic-conventions@npm:1.28.0":
3090-
version: 1.28.0
3091-
resolution: "@opentelemetry/semantic-conventions@npm:1.28.0"
3092-
checksum: 10c0/deb8a0f744198071e70fea27143cf7c9f7ecb7e4d7b619488c917834ea09b31543c1c2bcea4ec5f3cf68797f0ef3549609c14e859013d9376400ac1499c2b9cb
3048+
checksum: 10c0/48821b91430e24378b0b5b2632e78efdd018a3f840462a6aeba6ce318a6480bad2f623cc7f7f625a9266028ad44b78eb8456181778de6cb18725f26c44e2729b
30933049
languageName: node
30943050
linkType: hard
30953051

@@ -7392,11 +7348,11 @@ __metadata:
73927348
"@livekit/track-processors": "npm:^0.5.5"
73937349
"@mediapipe/tasks-vision": "npm:^0.10.18"
73947350
"@opentelemetry/api": "npm:^1.4.0"
7395-
"@opentelemetry/core": "npm:^1.25.1"
7351+
"@opentelemetry/core": "npm:^2.0.0"
73967352
"@opentelemetry/exporter-trace-otlp-http": "npm:^0.201.0"
7397-
"@opentelemetry/resources": "npm:^1.25.1"
7398-
"@opentelemetry/sdk-trace-base": "npm:^1.25.1"
7399-
"@opentelemetry/sdk-trace-web": "npm:^1.9.1"
7353+
"@opentelemetry/resources": "npm:^2.0.0"
7354+
"@opentelemetry/sdk-trace-base": "npm:^2.0.0"
7355+
"@opentelemetry/sdk-trace-web": "npm:^2.0.0"
74007356
"@opentelemetry/semantic-conventions": "npm:^1.25.1"
74017357
"@playwright/test": "npm:^1.52.0"
74027358
"@radix-ui/react-dialog": "npm:^1.0.4"

0 commit comments

Comments
 (0)