Skip to content

Commit c574b40

Browse files
EmrysMyrddinenisdenjo
authored andcommitted
fix(opentelemetry): Patch @opentelemetry/sdk-trace-base for nanosecond span start time
1 parent d44e0ca commit c574b40

File tree

7 files changed

+91
-6
lines changed

7 files changed

+91
-6
lines changed

.changeset/strong-paws-complain.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@graphql-mesh/plugin-opentelemetry': patch
3+
'@graphql-hive/gateway': patch
4+
---
5+
6+
Patch the `@opentelemetry/sdk-trace-base` package to fix span start time precision being millisecond instead of nanosecond.
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
diff --git a/build/esm/Span.js b/build/esm/Span.js
2+
index 185835fdc5667eddb072891618607ce213bb6625..5554c8bde3f6f44504587a88e115104a01d39ec4 100644
3+
--- a/build/esm/Span.js
4+
+++ b/build/esm/Span.js
5+
@@ -66,7 +66,7 @@ export class SpanImpl {
6+
this.parentSpanContext = opts.parentSpanContext;
7+
this.kind = opts.kind;
8+
this.links = opts.links || [];
9+
- this.startTime = this._getTime(opts.startTime ?? now);
10+
+ this.startTime = this._getTime(opts.startTime ?? hrTime(this._performanceStartTime + this._performanceOffset));
11+
this.resource = opts.resource;
12+
this.instrumentationScope = opts.scope;
13+
if (opts.attributes != null) {
14+
diff --git a/build/esnext/Span.js b/build/esnext/Span.js
15+
index 185835fdc5667eddb072891618607ce213bb6625..5554c8bde3f6f44504587a88e115104a01d39ec4 100644
16+
--- a/build/esnext/Span.js
17+
+++ b/build/esnext/Span.js
18+
@@ -66,7 +66,7 @@ export class SpanImpl {
19+
this.parentSpanContext = opts.parentSpanContext;
20+
this.kind = opts.kind;
21+
this.links = opts.links || [];
22+
- this.startTime = this._getTime(opts.startTime ?? now);
23+
+ this.startTime = this._getTime(opts.startTime ?? hrTime(this._performanceStartTime + this._performanceOffset));
24+
this.resource = opts.resource;
25+
this.instrumentationScope = opts.scope;
26+
if (opts.attributes != null) {
27+
diff --git a/build/src/Span.js b/build/src/Span.js
28+
index 5a807fe223a70e5e077b66ad74b8efe2eaabd8fa..6388deff9c1e83946f16b04cbfaf884b6f350d29 100644
29+
--- a/build/src/Span.js
30+
+++ b/build/src/Span.js
31+
@@ -69,7 +69,7 @@ class SpanImpl {
32+
this.parentSpanContext = opts.parentSpanContext;
33+
this.kind = opts.kind;
34+
this.links = opts.links || [];
35+
- this.startTime = this._getTime(opts.startTime ?? now);
36+
+ this.startTime = this._getTime(opts.startTime ?? hrTime(this._performanceStartTime + this._performanceOffset));
37+
this.resource = opts.resource;
38+
this.instrumentationScope = opts.scope;
39+
if (opts.attributes != null) {
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
diff --git a/build/src/Span.js b/build/src/Span.js
2+
index 12c33551fa559f3657e1d9074cadb34b7e73a675..63ac0075b94eae4c519d94c5c141c7002d21e412 100644
3+
--- a/build/src/Span.js
4+
+++ b/build/src/Span.js
5+
@@ -69,7 +69,7 @@ class SpanImpl {
6+
this.parentSpanContext = opts.parentSpanContext;
7+
this.kind = opts.kind;
8+
this.links = opts.links || [];
9+
- this.startTime = this._getTime(opts.startTime ?? hrTime(this._performanceStartTime + this._performanceOffset));
10+
+ this.startTime = this._getTime(opts.startTime ?? core_1.hrTime(this._performanceStartTime + this._performanceOffset));
11+
this.resource = opts.resource;
12+
this.instrumentationScope = opts.scope;
13+
if (opts.attributes != null) {

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@
8181
"pkgroll": "patch:pkgroll@npm:2.5.1#~/.yarn/patches/pkgroll-npm-2.5.1-9b062c22ca.patch",
8282
"tar-fs": "3.0.10",
8383
"tsx": "patch:tsx@npm%3A4.20.3#~/.yarn/patches/tsx-npm-4.20.3-7de67a623f.patch",
84-
"vite": "6.3.5"
84+
"vite": "6.3.5",
85+
"@opentelemetry/sdk-trace-base@npm:2.0.1": "patch:@opentelemetry/sdk-trace-base@patch%3A@opentelemetry/sdk-trace-base@npm%253A2.0.1%23~/.yarn/patches/@opentelemetry-sdk-trace-base-npm-2.0.1-ebe4f8e34e.patch%3A%3Aversion=2.0.1&hash=212481#~/.yarn/patches/@opentelemetry-sdk-trace-base-patch-0b7dbf6a30.patch"
8586
}
8687
}

packages/gateway/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@
9494
"@opentelemetry/sampler-jaeger-remote": "^0.203.0",
9595
"@opentelemetry/sdk-logs": "^0.203.0",
9696
"@opentelemetry/sdk-metrics": "^2.0.1",
97-
"@opentelemetry/sdk-trace-base": "^2.0.1",
97+
"@opentelemetry/sdk-trace-base": "patch:@opentelemetry/sdk-trace-base@patch%3A@opentelemetry/sdk-trace-base@npm%253A2.0.1%23~/.yarn/patches/@opentelemetry-sdk-trace-base-npm-2.0.1-ebe4f8e34e.patch%3A%3Aversion=2.0.1&hash=212481#~/.yarn/patches/@opentelemetry-sdk-trace-base-patch-0b7dbf6a30.patch",
9898
"commander": "^13.1.0",
9999
"dotenv": "^17.2.1",
100100
"graphql-ws": "^6.0.6",

packages/plugins/opentelemetry/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@
7171
"@opentelemetry/resources": "^2.0.1",
7272
"@opentelemetry/sdk-logs": "^0.203.0",
7373
"@opentelemetry/sdk-node": "^0.203.0",
74-
"@opentelemetry/sdk-trace-base": "^2.0.1",
74+
"@opentelemetry/sdk-trace-base": "patch:@opentelemetry/sdk-trace-base@patch%3A@opentelemetry/sdk-trace-base@npm%253A2.0.1%23~/.yarn/patches/@opentelemetry-sdk-trace-base-npm-2.0.1-ebe4f8e34e.patch%3A%3Aversion=2.0.1&hash=212481#~/.yarn/patches/@opentelemetry-sdk-trace-base-patch-0b7dbf6a30.patch",
7575
"@opentelemetry/semantic-conventions": "^1.36.0",
7676
"@whatwg-node/promise-helpers": "1.3.0",
7777
"tslib": "^2.8.1"

yarn.lock

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4212,7 +4212,7 @@ __metadata:
42124212
"@opentelemetry/sampler-jaeger-remote": "npm:^0.203.0"
42134213
"@opentelemetry/sdk-logs": "npm:^0.203.0"
42144214
"@opentelemetry/sdk-metrics": "npm:^2.0.1"
4215-
"@opentelemetry/sdk-trace-base": "npm:^2.0.1"
4215+
"@opentelemetry/sdk-trace-base": "patch:@opentelemetry/sdk-trace-base@patch%3A@opentelemetry/sdk-trace-base@npm%253A2.0.1%23~/.yarn/patches/@opentelemetry-sdk-trace-base-npm-2.0.1-ebe4f8e34e.patch%3A%3Aversion=2.0.1&hash=212481#~/.yarn/patches/@opentelemetry-sdk-trace-base-patch-0b7dbf6a30.patch"
42164216
"@rollup/plugin-commonjs": "npm:^28.0.0"
42174217
"@rollup/plugin-json": "npm:^6.1.0"
42184218
"@rollup/plugin-node-resolve": "patch:@rollup/plugin-node-resolve@npm%3A16.0.1#~/.yarn/patches/@rollup-plugin-node-resolve-npm-16.0.1-2936474bab.patch"
@@ -4707,7 +4707,7 @@ __metadata:
47074707
"@opentelemetry/resources": "npm:^2.0.1"
47084708
"@opentelemetry/sdk-logs": "npm:^0.203.0"
47094709
"@opentelemetry/sdk-node": "npm:^0.203.0"
4710-
"@opentelemetry/sdk-trace-base": "npm:^2.0.1"
4710+
"@opentelemetry/sdk-trace-base": "patch:@opentelemetry/sdk-trace-base@patch%3A@opentelemetry/sdk-trace-base@npm%253A2.0.1%23~/.yarn/patches/@opentelemetry-sdk-trace-base-npm-2.0.1-ebe4f8e34e.patch%3A%3Aversion=2.0.1&hash=212481#~/.yarn/patches/@opentelemetry-sdk-trace-base-patch-0b7dbf6a30.patch"
47114711
"@opentelemetry/semantic-conventions": "npm:^1.36.0"
47124712
"@whatwg-node/promise-helpers": "npm:1.3.0"
47134713
"@whatwg-node/server": "npm:^0.10.0"
@@ -7985,7 +7985,7 @@ __metadata:
79857985
languageName: node
79867986
linkType: hard
79877987

7988-
"@opentelemetry/sdk-trace-base@npm:2.0.1, @opentelemetry/sdk-trace-base@npm:^2.0.1":
7988+
"@opentelemetry/sdk-trace-base@npm:2.0.1":
79897989
version: 2.0.1
79907990
resolution: "@opentelemetry/sdk-trace-base@npm:2.0.1"
79917991
dependencies:
@@ -7998,6 +7998,32 @@ __metadata:
79987998
languageName: node
79997999
linkType: hard
80008000

8001+
"@opentelemetry/sdk-trace-base@patch:@opentelemetry/sdk-trace-base@npm%3A2.0.1#~/.yarn/patches/@opentelemetry-sdk-trace-base-npm-2.0.1-ebe4f8e34e.patch::version=2.0.1&hash=212481":
8002+
version: 2.0.1
8003+
resolution: "@opentelemetry/sdk-trace-base@patch:@opentelemetry/sdk-trace-base@npm%3A2.0.1#~/.yarn/patches/@opentelemetry-sdk-trace-base-npm-2.0.1-ebe4f8e34e.patch::version=2.0.1&hash=212481"
8004+
dependencies:
8005+
"@opentelemetry/core": "npm:2.0.1"
8006+
"@opentelemetry/resources": "npm:2.0.1"
8007+
"@opentelemetry/semantic-conventions": "npm:^1.29.0"
8008+
peerDependencies:
8009+
"@opentelemetry/api": ">=1.3.0 <1.10.0"
8010+
checksum: 10c0/1eeddf77153d7f374e57c1033e0971a7aa27e489e17d5679368ccd39b71eb4c467516859e93b627f9bbe3b7af839db44c4de727d1c17bffd3775dd288e64974d
8011+
languageName: node
8012+
linkType: hard
8013+
8014+
"@opentelemetry/sdk-trace-base@patch:@opentelemetry/sdk-trace-base@patch%3A@opentelemetry/sdk-trace-base@npm%253A2.0.1%23~/.yarn/patches/@opentelemetry-sdk-trace-base-npm-2.0.1-ebe4f8e34e.patch%3A%3Aversion=2.0.1&hash=212481#~/.yarn/patches/@opentelemetry-sdk-trace-base-patch-0b7dbf6a30.patch":
8015+
version: 2.0.1
8016+
resolution: "@opentelemetry/sdk-trace-base@patch:@opentelemetry/sdk-trace-base@patch%3A@opentelemetry/sdk-trace-base@npm%253A2.0.1%23~/.yarn/patches/@opentelemetry-sdk-trace-base-npm-2.0.1-ebe4f8e34e.patch%3A%3Aversion=2.0.1&hash=212481#~/.yarn/patches/@opentelemetry-sdk-trace-base-patch-0b7dbf6a30.patch::version=2.0.1&hash=9e89a6"
8017+
dependencies:
8018+
"@opentelemetry/core": "npm:2.0.1"
8019+
"@opentelemetry/resources": "npm:2.0.1"
8020+
"@opentelemetry/semantic-conventions": "npm:^1.29.0"
8021+
peerDependencies:
8022+
"@opentelemetry/api": ">=1.3.0 <1.10.0"
8023+
checksum: 10c0/8dd7c5266da16f3eebe37a2d158c17394b8abfb078b7276600e158d2af280778b77eadc980b91a8ac8b5a3d30e8ebe3bf07308c8e8a859254e0a2c9d61d7d2cf
8024+
languageName: node
8025+
linkType: hard
8026+
80018027
"@opentelemetry/sdk-trace-node@npm:2.0.1":
80028028
version: 2.0.1
80038029
resolution: "@opentelemetry/sdk-trace-node@npm:2.0.1"

0 commit comments

Comments
 (0)