From 022eb63800fcd07674089e617c94a828bea525ff Mon Sep 17 00:00:00 2001 From: Douglas Q Hawkins Date: Thu, 29 Jan 2026 17:14:38 -0500 Subject: [PATCH] Caching the primaryInstrumentationName Caching the primaryInstrumentationName to avoid repeatedly calling instrumentationNames() and constantly allocating a String[] --- .../decorator/HttpServerDecorator.java | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/decorator/HttpServerDecorator.java b/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/decorator/HttpServerDecorator.java index 6073da7ea2a..22045ad058f 100644 --- a/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/decorator/HttpServerDecorator.java +++ b/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/decorator/HttpServerDecorator.java @@ -81,6 +81,30 @@ public abstract class HttpServerDecorator 0 + ? instrumentationNames[0] + : DEFAULT_INSTRUMENTATION_NAME; + + cachedPrimaryInstrumentationName = primaryName; + + return primaryName; + } + protected abstract AgentPropagation.ContextVisitor getter(); protected abstract AgentPropagation.ContextVisitor responseGetter(); @@ -153,11 +177,7 @@ public Context extract(REQUEST_CARRIER carrier) { * @return A new context bundling the span, child of the given parent context. */ public Context startSpan(REQUEST_CARRIER carrier, Context parentContext) { - String[] instrumentationNames = instrumentationNames(); - String instrumentationName = - instrumentationNames != null && instrumentationNames.length > 0 - ? instrumentationNames[0] - : DEFAULT_INSTRUMENTATION_NAME; + String instrumentationName = primaryInstrumentationName(); AgentSpanContext extracted = getExtractedSpanContext(parentContext); // Call IG callbacks extracted = callIGCallbackStart(extracted);