Upgrade to OpenTelemetry v2 SDKs

Necessitated by our minor version upgrade of @opentelemetry/exporter-trace-otlp-http.
This commit is contained in:
Robin
2025-05-28 16:50:03 -04:00
parent 7eae5b0ffb
commit 3c3fce96e7
4 changed files with 38 additions and 79 deletions

View File

@@ -43,11 +43,11 @@
"@livekit/track-processors": "^0.5.5",
"@mediapipe/tasks-vision": "^0.10.18",
"@opentelemetry/api": "^1.4.0",
"@opentelemetry/core": "^1.25.1",
"@opentelemetry/core": "^2.0.0",
"@opentelemetry/exporter-trace-otlp-http": "^0.201.0",
"@opentelemetry/resources": "^1.25.1",
"@opentelemetry/sdk-trace-base": "^1.25.1",
"@opentelemetry/sdk-trace-web": "^1.9.1",
"@opentelemetry/resources": "^2.0.0",
"@opentelemetry/sdk-trace-base": "^2.0.0",
"@opentelemetry/sdk-trace-web": "^2.0.0",
"@opentelemetry/semantic-conventions": "^1.25.1",
"@playwright/test": "^1.52.0",
"@radix-ui/react-dialog": "^1.0.4",

View File

@@ -107,13 +107,13 @@ export class RageshakeSpanProcessor implements SpanProcessor {
startTime,
duration,
references:
span.parentSpanId === undefined
span.parentSpanContext?.spanId === undefined
? []
: [
{
refType: "CHILD_OF",
traceID: traceId,
spanID: span.parentSpanId,
spanID: span.parentSpanContext?.spanId,
},
],
tags: dumpAttributes(span.attributes),

View File

@@ -5,12 +5,15 @@ SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE in the repository root for full details.
*/
import { SimpleSpanProcessor } from "@opentelemetry/sdk-trace-base";
import {
SimpleSpanProcessor,
type SpanProcessor,
} from "@opentelemetry/sdk-trace-base";
import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
import { WebTracerProvider } from "@opentelemetry/sdk-trace-web";
import opentelemetry, { type Tracer } from "@opentelemetry/api";
import { Resource } from "@opentelemetry/resources";
import { SemanticResourceAttributes } from "@opentelemetry/semantic-conventions";
import { resourceFromAttributes } from "@opentelemetry/resources";
import { ATTR_SERVICE_NAME } from "@opentelemetry/semantic-conventions";
import { logger } from "matrix-js-sdk/lib/logger";
import { PosthogSpanProcessor } from "../analytics/PosthogSpanProcessor";
@@ -59,34 +62,34 @@ export class ElementCallOpenTelemetry {
collectorUrl: string | undefined,
rageshakeUrl: string | undefined,
) {
// This is how we can make Jaeger show a reasonable service in the dropdown on the left.
const providerConfig = {
resource: new Resource({
[SemanticResourceAttributes.SERVICE_NAME]: SERVICE_NAME,
}),
};
this._provider = new WebTracerProvider(providerConfig);
const spanProcessors: SpanProcessor[] = [];
if (collectorUrl) {
logger.info("Enabling OTLP collector with URL " + collectorUrl);
this.otlpExporter = new OTLPTraceExporter({
url: collectorUrl,
});
this._provider.addSpanProcessor(
new SimpleSpanProcessor(this.otlpExporter),
);
spanProcessors.push(new SimpleSpanProcessor(this.otlpExporter));
} else {
logger.info("OTLP collector disabled");
}
if (rageshakeUrl) {
this.rageshakeProcessor = new RageshakeSpanProcessor();
this._provider.addSpanProcessor(this.rageshakeProcessor);
spanProcessors.push(this.rageshakeProcessor);
}
this._provider.addSpanProcessor(new PosthogSpanProcessor());
opentelemetry.trace.setGlobalTracerProvider(this._provider);
spanProcessors.push(new PosthogSpanProcessor());
this._provider = new WebTracerProvider({
resource: resourceFromAttributes({
// This is how we can make Jaeger show a reasonable service in the dropdown on the left.
[ATTR_SERVICE_NAME]: SERVICE_NAME,
}),
spanProcessors,
});
opentelemetry.trace.setGlobalTracerProvider(this._provider);
this._tracer = opentelemetry.trace.getTracer(
// This is not the serviceName shown in jaeger
"my-element-call-otl-tracer",

View File

@@ -2932,18 +2932,7 @@ __metadata:
languageName: node
linkType: hard
"@opentelemetry/core@npm:1.30.1, @opentelemetry/core@npm:^1.25.1":
version: 1.30.1
resolution: "@opentelemetry/core@npm:1.30.1"
dependencies:
"@opentelemetry/semantic-conventions": "npm:1.28.0"
peerDependencies:
"@opentelemetry/api": ">=1.0.0 <1.10.0"
checksum: 10c0/4c25ba50a6137c2ba9ca563fb269378f3c9ca6fd1b3f15dbb6eff78eebf5656f281997cbb7be8e51c01649fd6ad091083fcd8a42dd9b5dfac907dc06d7cfa092
languageName: node
linkType: hard
"@opentelemetry/core@npm:2.0.1":
"@opentelemetry/core@npm:2.0.1, @opentelemetry/core@npm:^2.0.0":
version: 2.0.1
resolution: "@opentelemetry/core@npm:2.0.1"
dependencies:
@@ -2998,19 +2987,7 @@ __metadata:
languageName: node
linkType: hard
"@opentelemetry/resources@npm:1.30.1, @opentelemetry/resources@npm:^1.25.1":
version: 1.30.1
resolution: "@opentelemetry/resources@npm:1.30.1"
dependencies:
"@opentelemetry/core": "npm:1.30.1"
"@opentelemetry/semantic-conventions": "npm:1.28.0"
peerDependencies:
"@opentelemetry/api": ">=1.0.0 <1.10.0"
checksum: 10c0/688e73258283c80662bfa9a858aaf73bf3b832a18d96e546d0dddfa6dcec556cdfa087a1d0df643435293406009e4122d7fb7eeea69aa87b539d3bab756fba74
languageName: node
linkType: hard
"@opentelemetry/resources@npm:2.0.1":
"@opentelemetry/resources@npm:2.0.1, @opentelemetry/resources@npm:^2.0.0":
version: 2.0.1
resolution: "@opentelemetry/resources@npm:2.0.1"
dependencies:
@@ -3047,20 +3024,7 @@ __metadata:
languageName: node
linkType: hard
"@opentelemetry/sdk-trace-base@npm:1.30.1, @opentelemetry/sdk-trace-base@npm:^1.25.1":
version: 1.30.1
resolution: "@opentelemetry/sdk-trace-base@npm:1.30.1"
dependencies:
"@opentelemetry/core": "npm:1.30.1"
"@opentelemetry/resources": "npm:1.30.1"
"@opentelemetry/semantic-conventions": "npm:1.28.0"
peerDependencies:
"@opentelemetry/api": ">=1.0.0 <1.10.0"
checksum: 10c0/77019dc3efaeceb41b4c54dd83b92f0ccd81ecceca544cbbe8e0aee4b2c8727724bdb9dcecfe00622c16d60946ae4beb69a5c0e7d85c4bc7ef425bd84f8b970c
languageName: node
linkType: hard
"@opentelemetry/sdk-trace-base@npm:2.0.1":
"@opentelemetry/sdk-trace-base@npm:2.0.1, @opentelemetry/sdk-trace-base@npm:^2.0.0":
version: 2.0.1
resolution: "@opentelemetry/sdk-trace-base@npm:2.0.1"
dependencies:
@@ -3073,23 +3037,15 @@ __metadata:
languageName: node
linkType: hard
"@opentelemetry/sdk-trace-web@npm:^1.9.1":
version: 1.30.1
resolution: "@opentelemetry/sdk-trace-web@npm:1.30.1"
"@opentelemetry/sdk-trace-web@npm:^2.0.0":
version: 2.0.1
resolution: "@opentelemetry/sdk-trace-web@npm:2.0.1"
dependencies:
"@opentelemetry/core": "npm:1.30.1"
"@opentelemetry/sdk-trace-base": "npm:1.30.1"
"@opentelemetry/semantic-conventions": "npm:1.28.0"
"@opentelemetry/core": "npm:2.0.1"
"@opentelemetry/sdk-trace-base": "npm:2.0.1"
peerDependencies:
"@opentelemetry/api": ">=1.0.0 <1.10.0"
checksum: 10c0/8dd2901b5eef68a5896da0ad11f04c8990ce4ef2dcbec27bbc02d7e193097c270ba5f4c9ca363ea10fb53ca7cc515f18d9dc383a69a17720cd0590474c0ffdaf
languageName: node
linkType: hard
"@opentelemetry/semantic-conventions@npm:1.28.0":
version: 1.28.0
resolution: "@opentelemetry/semantic-conventions@npm:1.28.0"
checksum: 10c0/deb8a0f744198071e70fea27143cf7c9f7ecb7e4d7b619488c917834ea09b31543c1c2bcea4ec5f3cf68797f0ef3549609c14e859013d9376400ac1499c2b9cb
checksum: 10c0/48821b91430e24378b0b5b2632e78efdd018a3f840462a6aeba6ce318a6480bad2f623cc7f7f625a9266028ad44b78eb8456181778de6cb18725f26c44e2729b
languageName: node
linkType: hard
@@ -7392,11 +7348,11 @@ __metadata:
"@livekit/track-processors": "npm:^0.5.5"
"@mediapipe/tasks-vision": "npm:^0.10.18"
"@opentelemetry/api": "npm:^1.4.0"
"@opentelemetry/core": "npm:^1.25.1"
"@opentelemetry/core": "npm:^2.0.0"
"@opentelemetry/exporter-trace-otlp-http": "npm:^0.201.0"
"@opentelemetry/resources": "npm:^1.25.1"
"@opentelemetry/sdk-trace-base": "npm:^1.25.1"
"@opentelemetry/sdk-trace-web": "npm:^1.9.1"
"@opentelemetry/resources": "npm:^2.0.0"
"@opentelemetry/sdk-trace-base": "npm:^2.0.0"
"@opentelemetry/sdk-trace-web": "npm:^2.0.0"
"@opentelemetry/semantic-conventions": "npm:^1.25.1"
"@playwright/test": "npm:^1.52.0"
"@radix-ui/react-dialog": "npm:^1.0.4"