diff --git a/plugins/node/opentelemetry-plugin-express/src/express.ts b/plugins/node/opentelemetry-plugin-express/src/express.ts index 3c95bbfb0b..2f5c136bb0 100644 --- a/plugins/node/opentelemetry-plugin-express/src/express.ts +++ b/plugins/node/opentelemetry-plugin-express/src/express.ts @@ -188,8 +188,11 @@ export class ExpressPlugin extends BasePlugin { ExpressLayerType.REQUEST_HANDLER ) { const parent = plugin._tracer.getCurrentSpan(); - if (parent) { - const parentRoute = parent.name.split(' ')[1]; + // eslint-disable-next-line @typescript-eslint/ban-ts-ignore + // @ts-ignore + const parentSpanName = parent && parent.name; + if (parent && parentSpanName) { + const parentRoute = parentSpanName.split(' ')[1]; if (!route.includes(parentRoute)) { parent.updateName(`${req.method} ${route}`); } diff --git a/plugins/node/opentelemetry-plugin-express/test/express.test.ts b/plugins/node/opentelemetry-plugin-express/test/express.test.ts index 69c6692eff..8515e35df2 100644 --- a/plugins/node/opentelemetry-plugin-express/test/express.test.ts +++ b/plugins/node/opentelemetry-plugin-express/test/express.test.ts @@ -102,6 +102,7 @@ describe('Express Plugin', () => { await tracer.withSpan(rootSpan, async () => { await httpRequest.get(`http://localhost:${port}/toto/tata`); rootSpan.end(); + // @ts-ignore assert.strictEqual(rootSpan.name, 'GET /toto/:id'); assert.notStrictEqual( memoryExporter @@ -240,7 +241,7 @@ describe('Express Plugin', () => { await tracer.withSpan(rootSpan, async () => { await httpRequest.get(`http://localhost:${port}/toto/tata`); rootSpan.end(); - + // @ts-ignore assert.strictEqual(rootSpan.name, 'GET /toto/:id'); assert.deepStrictEqual(