Skip to content

Commit 6f0465f

Browse files
feat: Implement event loop instrumentation (#14956)
## Summary Add Event loop instrumentation support. This should make it easier to detect a common issue - the event loop getting blocked resulting in 503s and restarts. I still need to do some testing, but code-wise it can be reviewed. Co-authored-by: Shahed Nasser <[email protected]>
1 parent c6ed2af commit 6f0465f

13 files changed

+647
-316
lines changed

.changeset/dry-clowns-write.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
"@medusajs/framework": patch
3+
"@medusajs/medusa": patch
4+
"@medusajs/deps": patch
5+
---
6+
7+
feat: Implement event loop instrumentation

packages/core/framework/package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@
4343
"./mikro-orm/migrations": "./dist/deps/mikro-orm-migrations.js",
4444
"./mikro-orm/postgresql": "./dist/deps/mikro-orm-postgresql.js",
4545
"./opentelemetry/instrumentation-pg": "./dist/deps/opentelemetry-instrumentation-pg.js",
46+
"./opentelemetry/exporter-trace-otlp-http": "./dist/deps/opentelemetry-exporter-trace-otlp-http.js",
47+
"./opentelemetry/exporter-metrics-otlp-http": "./dist/deps/opentelemetry-exporter-metrics-otlp-http.js",
48+
"./opentelemetry/sdk-metrics": "./dist/deps/opentelemetry-sdk-metrics.js",
4649
"./opentelemetry/sdk-node": "./dist/deps/opentelemetry-sdk-node.js",
4750
"./opentelemetry/sdk-trace-node": "./dist/deps/opentelemetry-sdk-trace-node.js",
4851
"./opentelemetry/resources": "./dist/deps/opentelemetry-resources.js",
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from "@medusajs/deps/opentelemetry/exporter-metrics-otlp-http"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from "@medusajs/deps/opentelemetry/exporter-trace-otlp-http"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from "@medusajs/deps/opentelemetry/sdk-metrics"

packages/deps/package.json

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,13 @@
2020
"exports": {
2121
".": "./dist/index.js",
2222
"./opentelemetry/instrumentation-pg": "./dist/opentelemetry-instrumentation-pg.js",
23+
"./opentelemetry/sdk-metrics": "./dist/opentelemetry-sdk-metrics.js",
2324
"./opentelemetry/sdk-node": "./dist/opentelemetry-sdk-node.js",
2425
"./opentelemetry/sdk-trace-node": "./dist/opentelemetry-sdk-trace-node.js",
2526
"./opentelemetry/resources": "./dist/opentelemetry-resources.js",
2627
"./opentelemetry/api": "./dist/opentelemetry-api.js",
28+
"./opentelemetry/exporter-trace-otlp-http": "./dist/opentelemetry-exporter-trace-otlp-http.js",
29+
"./opentelemetry/exporter-metrics-otlp-http": "./dist/opentelemetry-exporter-metrics-otlp-http.js",
2730
"./mikro-orm/cli": "./dist/mikro-orm-cli.js",
2831
"./mikro-orm/core": "./dist/mikro-orm-core.js",
2932
"./mikro-orm/knex": "./dist/mikro-orm-knex.js",
@@ -44,11 +47,14 @@
4447
"@mikro-orm/knex": "6.6.12",
4548
"@mikro-orm/migrations": "6.6.12",
4649
"@mikro-orm/postgresql": "6.6.12",
47-
"@opentelemetry/api": "^1.9.0",
48-
"@opentelemetry/instrumentation-pg": "^0.52.0",
49-
"@opentelemetry/resources": "^2.0.0",
50-
"@opentelemetry/sdk-node": "^0.200.0",
51-
"@opentelemetry/sdk-trace-node": "^2.0.0",
50+
"@opentelemetry/api": "^1.9.1",
51+
"@opentelemetry/exporter-metrics-otlp-http": "^0.214.0",
52+
"@opentelemetry/exporter-trace-otlp-http": "^0.214.0",
53+
"@opentelemetry/instrumentation-pg": "^0.56.0",
54+
"@opentelemetry/resources": "^2.6.1",
55+
"@opentelemetry/sdk-metrics": "^2.6.1",
56+
"@opentelemetry/sdk-node": "^0.214.0",
57+
"@opentelemetry/sdk-trace-node": "^2.6.1",
5258
"awilix": "^8.0.1",
5359
"pg": "^8.16.3",
5460
"zod": "3.25.76"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from "@opentelemetry/exporter-metrics-otlp-http"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from "@opentelemetry/exporter-trace-otlp-http"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from "@opentelemetry/sdk-metrics"

packages/medusa/src/commands/start.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ export async function registerInstrumentation(directory: string) {
6969
skipDbConnection: true,
7070
})
7171
const logger = container.resolve(ContainerRegistrationKeys.LOGGER)
72-
7372
const fileSystem = new FileSystem(directory)
7473
const exists =
7574
(await fileSystem.exists(`${INSTRUMENTATION_FILE}.ts`)) ||

0 commit comments

Comments
 (0)