From 7b82ec1c157b71804d8002397405f983873a44b5 Mon Sep 17 00:00:00 2001 From: George Gooden Date: Wed, 19 Aug 2020 22:08:04 +0800 Subject: [PATCH] feat: reduce root span cardinality in express plugin Signed-off-by: George Gooden --- .../node/opentelemetry-plugin-express/src/express.ts | 10 ++++++++++ .../opentelemetry-plugin-express/test/express.test.ts | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/plugins/node/opentelemetry-plugin-express/src/express.ts b/plugins/node/opentelemetry-plugin-express/src/express.ts index 3bcf44d78a..5b46821db5 100644 --- a/plugins/node/opentelemetry-plugin-express/src/express.ts +++ b/plugins/node/opentelemetry-plugin-express/src/express.ts @@ -187,6 +187,16 @@ export class ExpressPlugin extends BasePlugin { if (plugin._tracer.getCurrentSpan() === undefined) { return original.apply(this, arguments); } + // Rename the root http span once we reach the request handler + if ( + metadata.attributes[AttributeNames.EXPRESS_TYPE] === + ExpressLayerType.REQUEST_HANDLER + ) { + const parent = plugin._tracer.getCurrentSpan(); + if (parent) { + parent.updateName(`${req.method} ${route}`); + } + } const span = plugin._tracer.startSpan(metadata.name, { attributes: Object.assign(attributes, metadata.attributes), }); diff --git a/plugins/node/opentelemetry-plugin-express/test/express.test.ts b/plugins/node/opentelemetry-plugin-express/test/express.test.ts index c9cdf84276..b7ac26a35e 100644 --- a/plugins/node/opentelemetry-plugin-express/test/express.test.ts +++ b/plugins/node/opentelemetry-plugin-express/test/express.test.ts @@ -130,7 +130,7 @@ describe('Express Plugin', () => { ); const exportedRootSpan = memoryExporter .getFinishedSpans() - .find(span => span.name === 'rootSpan'); + .find(span => span.name === 'GET /toto/:id'); assert.notStrictEqual(exportedRootSpan, undefined); }); server.close();