From 9568ba079b9f75531dfb783439047c6113ff8049 Mon Sep 17 00:00:00 2001 From: Pontus Rydin Date: Mon, 27 Apr 2020 16:51:34 -0400 Subject: [PATCH] Use Builder::setAttribute whenever possible (#348) --- .../DropwizardViewInstrumentation.java | 7 +++++-- .../geode/GeodeInstrumentation.java | 18 +++++++++++++----- .../jul/JavaUtilLoggingSpans.java | 11 +++++++---- .../jdbc/PreparedStatementInstrumentation.java | 2 +- .../jdbc/StatementInstrumentation.java | 7 +++++-- .../jms/JMSMessageConsumerInstrumentation.java | 4 ++-- .../jms/JMSMessageListenerInstrumentation.java | 4 ++-- .../jms/JMSMessageProducerInstrumentation.java | 4 ++-- .../jsp/JSPInstrumentation.java | 9 ++++++--- .../instrumentation/log4j/v2_0/Log4jSpans.java | 11 +++++++---- .../instrumentation/logback/LogbackSpans.java | 11 +++++++---- .../amqp/TracedDelegatingConsumer.java | 8 +++++--- .../rmi/client/RmiClientInstrumentation.java | 8 +++++--- .../rmi/server/RmiServerInstrumentation.java | 6 ++++-- .../servlet/v2_3/Servlet2Advice.java | 4 ++-- .../servlet/v3_0/Servlet3Advice.java | 4 ++-- .../RequestDispatcherInstrumentation.java | 11 +++++++---- 17 files changed, 82 insertions(+), 47 deletions(-) diff --git a/instrumentation/dropwizard-views-0.7/src/main/java/io/opentelemetry/auto/instrumentation/dropwizardviews/DropwizardViewInstrumentation.java b/instrumentation/dropwizard-views-0.7/src/main/java/io/opentelemetry/auto/instrumentation/dropwizardviews/DropwizardViewInstrumentation.java index 1abb0c839d..891a2431bb 100644 --- a/instrumentation/dropwizard-views-0.7/src/main/java/io/opentelemetry/auto/instrumentation/dropwizardviews/DropwizardViewInstrumentation.java +++ b/instrumentation/dropwizard-views-0.7/src/main/java/io/opentelemetry/auto/instrumentation/dropwizardviews/DropwizardViewInstrumentation.java @@ -82,8 +82,11 @@ public final class DropwizardViewInstrumentation extends Instrumenter.Default { if (!TRACER.getCurrentSpan().getContext().isValid()) { return null; } - final Span span = TRACER.spanBuilder("Render " + view.getTemplateName()).startSpan(); - span.setAttribute("span.origin.type", obj.getClass().getSimpleName()); + final Span span = + TRACER + .spanBuilder("Render " + view.getTemplateName()) + .setAttribute("span.origin.type", obj.getClass().getSimpleName()) + .startSpan(); return new SpanWithScope(span, currentContextWith(span)); } diff --git a/instrumentation/geode-1.4/src/main/java/io/opentelemetry/auto/instrumentation/geode/GeodeInstrumentation.java b/instrumentation/geode-1.4/src/main/java/io/opentelemetry/auto/instrumentation/geode/GeodeInstrumentation.java index eb45bababd..bbaf8dd38a 100644 --- a/instrumentation/geode-1.4/src/main/java/io/opentelemetry/auto/instrumentation/geode/GeodeInstrumentation.java +++ b/instrumentation/geode-1.4/src/main/java/io/opentelemetry/auto/instrumentation/geode/GeodeInstrumentation.java @@ -92,9 +92,13 @@ public class GeodeInstrumentation extends Instrumenter.Default { if (CallDepthThreadLocalMap.incrementCallDepth(Region.class) > 0) { return null; } - final Span span = TRACER.spanBuilder(method.getName()).setSpanKind(CLIENT).startSpan(); + final Span span = + TRACER + .spanBuilder(method.getName()) + .setSpanKind(CLIENT) + .setAttribute(Tags.DB_INSTANCE, thiz.getName()) + .startSpan(); DECORATE.afterStart(span); - span.setAttribute(Tags.DB_INSTANCE, thiz.getName()); return new SpanWithScope(span, currentContextWith(span)); } @@ -125,10 +129,14 @@ public class GeodeInstrumentation extends Instrumenter.Default { if (CallDepthThreadLocalMap.incrementCallDepth(Region.class) > 0) { return null; } - final Span span = TRACER.spanBuilder(method.getName()).setSpanKind(CLIENT).startSpan(); + final Span span = + TRACER + .spanBuilder(method.getName()) + .setSpanKind(CLIENT) + .setAttribute(Tags.DB_INSTANCE, thiz.getName()) + .setAttribute(Tags.DB_STATEMENT, query) + .startSpan(); DECORATE.afterStart(span); - span.setAttribute(Tags.DB_INSTANCE, thiz.getName()); - span.setAttribute(Tags.DB_STATEMENT, query); return new SpanWithScope(span, currentContextWith(span)); } diff --git a/instrumentation/java-util-logging/src/main/java/io/opentelemetry/auto/instrumentation/jul/JavaUtilLoggingSpans.java b/instrumentation/java-util-logging/src/main/java/io/opentelemetry/auto/instrumentation/jul/JavaUtilLoggingSpans.java index 1b11821e0e..da01d19568 100644 --- a/instrumentation/java-util-logging/src/main/java/io/opentelemetry/auto/instrumentation/jul/JavaUtilLoggingSpans.java +++ b/instrumentation/java-util-logging/src/main/java/io/opentelemetry/auto/instrumentation/jul/JavaUtilLoggingSpans.java @@ -47,10 +47,13 @@ public class JavaUtilLoggingSpans { } final Throwable t = logRecord.getThrown(); - final Span span = TRACER.spanBuilder("log.message").startSpan(); - span.setAttribute("message", FORMATTER.formatMessage(logRecord)); - span.setAttribute("level", level.getName()); - span.setAttribute("loggerName", logger.getName()); + final Span span = + TRACER + .spanBuilder("log.message") + .setAttribute("message", FORMATTER.formatMessage(logRecord)) + .setAttribute("level", level.getName()) + .setAttribute("loggerName", logger.getName()) + .startSpan(); if (t != null) { span.setAttribute("error.stack", toString(t)); } diff --git a/instrumentation/jdbc/src/main/java/io/opentelemetry/auto/instrumentation/jdbc/PreparedStatementInstrumentation.java b/instrumentation/jdbc/src/main/java/io/opentelemetry/auto/instrumentation/jdbc/PreparedStatementInstrumentation.java index d1af998efd..32d3b359ca 100644 --- a/instrumentation/jdbc/src/main/java/io/opentelemetry/auto/instrumentation/jdbc/PreparedStatementInstrumentation.java +++ b/instrumentation/jdbc/src/main/java/io/opentelemetry/auto/instrumentation/jdbc/PreparedStatementInstrumentation.java @@ -84,11 +84,11 @@ public final class PreparedStatementInstrumentation extends Instrumenter.Default TRACER .spanBuilder(DECORATE.spanNameOnPreparedStatement(statement)) .setSpanKind(CLIENT) + .setAttribute("span.origin.type", statement.getClass().getName()) .startSpan(); DECORATE.afterStart(span); DECORATE.onConnection(span, connection); DECORATE.onPreparedStatement(span, statement); - span.setAttribute("span.origin.type", statement.getClass().getName()); return new SpanWithScope(span, currentContextWith(span)); } diff --git a/instrumentation/jdbc/src/main/java/io/opentelemetry/auto/instrumentation/jdbc/StatementInstrumentation.java b/instrumentation/jdbc/src/main/java/io/opentelemetry/auto/instrumentation/jdbc/StatementInstrumentation.java index b50bbedb73..d00b2d8b40 100644 --- a/instrumentation/jdbc/src/main/java/io/opentelemetry/auto/instrumentation/jdbc/StatementInstrumentation.java +++ b/instrumentation/jdbc/src/main/java/io/opentelemetry/auto/instrumentation/jdbc/StatementInstrumentation.java @@ -82,11 +82,14 @@ public final class StatementInstrumentation extends Instrumenter.Default { } final Span span = - TRACER.spanBuilder(DECORATE.spanNameOnStatement(sql)).setSpanKind(CLIENT).startSpan(); + TRACER + .spanBuilder(DECORATE.spanNameOnStatement(sql)) + .setSpanKind(CLIENT) + .setAttribute("span.origin.type", statement.getClass().getName()) + .startSpan(); DECORATE.afterStart(span); DECORATE.onConnection(span, connection); DECORATE.onStatement(span, sql); - span.setAttribute("span.origin.type", statement.getClass().getName()); return new SpanWithScope(span, currentContextWith(span)); } diff --git a/instrumentation/jms-1.1/src/main/java/io/opentelemetry/auto/instrumentation/jms/JMSMessageConsumerInstrumentation.java b/instrumentation/jms-1.1/src/main/java/io/opentelemetry/auto/instrumentation/jms/JMSMessageConsumerInstrumentation.java index e108765a6b..f5860ae1ff 100644 --- a/instrumentation/jms-1.1/src/main/java/io/opentelemetry/auto/instrumentation/jms/JMSMessageConsumerInstrumentation.java +++ b/instrumentation/jms-1.1/src/main/java/io/opentelemetry/auto/instrumentation/jms/JMSMessageConsumerInstrumentation.java @@ -113,8 +113,8 @@ public final class JMSMessageConsumerInstrumentation extends Instrumenter.Defaul spanBuilder.addLink(spanContext); } } - final Span span = spanBuilder.startSpan(); - span.setAttribute("span.origin.type", consumer.getClass().getName()); + final Span span = + spanBuilder.setAttribute("span.origin.type", consumer.getClass().getName()).startSpan(); try (final Scope scope = currentContextWith(span)) { DECORATE.afterStart(span); diff --git a/instrumentation/jms-1.1/src/main/java/io/opentelemetry/auto/instrumentation/jms/JMSMessageListenerInstrumentation.java b/instrumentation/jms-1.1/src/main/java/io/opentelemetry/auto/instrumentation/jms/JMSMessageListenerInstrumentation.java index d3b56c0b91..2c6ebf9b55 100644 --- a/instrumentation/jms-1.1/src/main/java/io/opentelemetry/auto/instrumentation/jms/JMSMessageListenerInstrumentation.java +++ b/instrumentation/jms-1.1/src/main/java/io/opentelemetry/auto/instrumentation/jms/JMSMessageListenerInstrumentation.java @@ -84,8 +84,8 @@ public final class JMSMessageListenerInstrumentation extends Instrumenter.Defaul TRACER.spanBuilder(DECORATE.spanNameForConsumer(message)).setSpanKind(CONSUMER); spanBuilder.setParent(extract(message, GETTER)); - final Span span = spanBuilder.startSpan(); - span.setAttribute("span.origin.type", listener.getClass().getName()); + final Span span = + spanBuilder.setAttribute("span.origin.type", listener.getClass().getName()).startSpan(); DECORATE.afterStart(span); return new SpanWithScope(span, currentContextWith(span)); diff --git a/instrumentation/jms-1.1/src/main/java/io/opentelemetry/auto/instrumentation/jms/JMSMessageProducerInstrumentation.java b/instrumentation/jms-1.1/src/main/java/io/opentelemetry/auto/instrumentation/jms/JMSMessageProducerInstrumentation.java index 0dbd8df759..316210ebca 100644 --- a/instrumentation/jms-1.1/src/main/java/io/opentelemetry/auto/instrumentation/jms/JMSMessageProducerInstrumentation.java +++ b/instrumentation/jms-1.1/src/main/java/io/opentelemetry/auto/instrumentation/jms/JMSMessageProducerInstrumentation.java @@ -108,8 +108,8 @@ public final class JMSMessageProducerInstrumentation extends Instrumenter.Defaul TRACER .spanBuilder(DECORATE.spanNameForProducer(message, defaultDestination)) .setSpanKind(PRODUCER) + .setAttribute("span.origin.type", producer.getClass().getName()) .startSpan(); - span.setAttribute("span.origin.type", producer.getClass().getName()); DECORATE.afterStart(span); final Context context = withSpan(span, Context.current()); @@ -151,8 +151,8 @@ public final class JMSMessageProducerInstrumentation extends Instrumenter.Defaul TRACER .spanBuilder(DECORATE.spanNameForProducer(message, destination)) .setSpanKind(PRODUCER) + .setAttribute("span.origin.type", producer.getClass().getName()) .startSpan(); - span.setAttribute("span.origin.type", producer.getClass().getName()); DECORATE.afterStart(span); final Context context = withSpan(span, Context.current()); diff --git a/instrumentation/jsp-2.3/src/main/java/io/opentelemetry/auto/instrumentation/jsp/JSPInstrumentation.java b/instrumentation/jsp-2.3/src/main/java/io/opentelemetry/auto/instrumentation/jsp/JSPInstrumentation.java index dba826f43c..1f0d2e8a51 100644 --- a/instrumentation/jsp-2.3/src/main/java/io/opentelemetry/auto/instrumentation/jsp/JSPInstrumentation.java +++ b/instrumentation/jsp-2.3/src/main/java/io/opentelemetry/auto/instrumentation/jsp/JSPInstrumentation.java @@ -76,9 +76,12 @@ public final class JSPInstrumentation extends Instrumenter.Default { @Advice.OnMethodEnter(suppress = Throwable.class) public static SpanWithScope onEnter( @Advice.This final Object obj, @Advice.Argument(0) final HttpServletRequest req) { - final Span span = TRACER.spanBuilder(DECORATE.spanNameOnRender(req)).startSpan(); - span.setAttribute("span.origin.type", obj.getClass().getSimpleName()); - span.setAttribute("servlet.context", req.getContextPath()); + final Span span = + TRACER + .spanBuilder(DECORATE.spanNameOnRender(req)) + .setAttribute("span.origin.type", obj.getClass().getSimpleName()) + .setAttribute("servlet.context", req.getContextPath()) + .startSpan(); DECORATE.afterStart(span); DECORATE.onRender(span, req); return new SpanWithScope(span, currentContextWith(span)); diff --git a/instrumentation/log4j/log4j-2.0/src/main/java/io/opentelemetry/auto/instrumentation/log4j/v2_0/Log4jSpans.java b/instrumentation/log4j/log4j-2.0/src/main/java/io/opentelemetry/auto/instrumentation/log4j/v2_0/Log4jSpans.java index 2daf6f3fd5..f20656dcc3 100644 --- a/instrumentation/log4j/log4j-2.0/src/main/java/io/opentelemetry/auto/instrumentation/log4j/v2_0/Log4jSpans.java +++ b/instrumentation/log4j/log4j-2.0/src/main/java/io/opentelemetry/auto/instrumentation/log4j/v2_0/Log4jSpans.java @@ -39,10 +39,13 @@ public class Log4jSpans { return; } - final Span span = TRACER.spanBuilder("log.message").startSpan(); - span.setAttribute("message", message.getFormattedMessage()); - span.setAttribute("level", level.toString()); - span.setAttribute("loggerName", logger.getName()); + final Span span = + TRACER + .spanBuilder("log.message") + .setAttribute("message", message.getFormattedMessage()) + .setAttribute("level", level.toString()) + .setAttribute("loggerName", logger.getName()) + .startSpan(); if (t != null) { span.setAttribute("error.stack", toString(t)); } diff --git a/instrumentation/logback-1.0/src/main/java/io/opentelemetry/auto/instrumentation/logback/LogbackSpans.java b/instrumentation/logback-1.0/src/main/java/io/opentelemetry/auto/instrumentation/logback/LogbackSpans.java index 587c98352a..e441499baa 100644 --- a/instrumentation/logback-1.0/src/main/java/io/opentelemetry/auto/instrumentation/logback/LogbackSpans.java +++ b/instrumentation/logback-1.0/src/main/java/io/opentelemetry/auto/instrumentation/logback/LogbackSpans.java @@ -48,10 +48,13 @@ public class LogbackSpans { t = ((ThrowableProxy) throwableProxy).getThrowable(); } - final Span span = TRACER.spanBuilder("log.message").startSpan(); - span.setAttribute("message", event.getFormattedMessage()); - span.setAttribute("level", level.toString()); - span.setAttribute("loggerName", event.getLoggerName()); + final Span span = + TRACER + .spanBuilder("log.message") + .setAttribute("message", event.getFormattedMessage()) + .setAttribute("level", level.toString()) + .setAttribute("loggerName", event.getLoggerName()) + .startSpan(); if (t != null) { span.setAttribute("error.stack", toString(t)); } diff --git a/instrumentation/rabbitmq-amqp-2.7/src/main/java/io/opentelemetry/auto/instrumentation/rabbitmq/amqp/TracedDelegatingConsumer.java b/instrumentation/rabbitmq-amqp-2.7/src/main/java/io/opentelemetry/auto/instrumentation/rabbitmq/amqp/TracedDelegatingConsumer.java index ccbd983ef5..6f4b86a0ec 100644 --- a/instrumentation/rabbitmq-amqp-2.7/src/main/java/io/opentelemetry/auto/instrumentation/rabbitmq/amqp/TracedDelegatingConsumer.java +++ b/instrumentation/rabbitmq-amqp-2.7/src/main/java/io/opentelemetry/auto/instrumentation/rabbitmq/amqp/TracedDelegatingConsumer.java @@ -90,9 +90,11 @@ public class TracedDelegatingConsumer implements Consumer { spanBuilder.setNoParent(); } - span = spanBuilder.startSpan(); - span.setAttribute("message.size", body == null ? 0 : body.length); - span.setAttribute("span.origin.type", delegate.getClass().getName()); + span = + spanBuilder + .setAttribute("message.size", body == null ? 0 : body.length) + .setAttribute("span.origin.type", delegate.getClass().getName()) + .startSpan(); DECORATE.afterStart(span); DECORATE.onDeliver(span, envelope); diff --git a/instrumentation/rmi/src/main/java/io/opentelemetry/auto/instrumentation/rmi/client/RmiClientInstrumentation.java b/instrumentation/rmi/src/main/java/io/opentelemetry/auto/instrumentation/rmi/client/RmiClientInstrumentation.java index 02c4bd0e61..49043adfb0 100644 --- a/instrumentation/rmi/src/main/java/io/opentelemetry/auto/instrumentation/rmi/client/RmiClientInstrumentation.java +++ b/instrumentation/rmi/src/main/java/io/opentelemetry/auto/instrumentation/rmi/client/RmiClientInstrumentation.java @@ -70,9 +70,11 @@ public final class RmiClientInstrumentation extends Instrumenter.Default { return null; } final Span span = - TRACER.spanBuilder(DECORATE.spanNameForMethod(method)).setSpanKind(CLIENT).startSpan(); - span.setAttribute("span.origin.type", method.getDeclaringClass().getCanonicalName()); - + TRACER + .spanBuilder(DECORATE.spanNameForMethod(method)) + .setSpanKind(CLIENT) + .setAttribute("span.origin.type", method.getDeclaringClass().getCanonicalName()) + .startSpan(); DECORATE.afterStart(span); return new SpanWithScope(span, currentContextWith(span)); } diff --git a/instrumentation/rmi/src/main/java/io/opentelemetry/auto/instrumentation/rmi/server/RmiServerInstrumentation.java b/instrumentation/rmi/src/main/java/io/opentelemetry/auto/instrumentation/rmi/server/RmiServerInstrumentation.java index 8ddcee80e3..db5003db39 100644 --- a/instrumentation/rmi/src/main/java/io/opentelemetry/auto/instrumentation/rmi/server/RmiServerInstrumentation.java +++ b/instrumentation/rmi/src/main/java/io/opentelemetry/auto/instrumentation/rmi/server/RmiServerInstrumentation.java @@ -82,8 +82,10 @@ public final class RmiServerInstrumentation extends Instrumenter.Default { } else { spanBuilder.setNoParent(); } - final Span span = spanBuilder.startSpan(); - span.setAttribute("span.origin.type", thiz.getClass().getCanonicalName()); + final Span span = + spanBuilder + .setAttribute("span.origin.type", thiz.getClass().getCanonicalName()) + .startSpan(); DECORATE.afterStart(span); return new SpanWithScope(span, currentContextWith(span)); diff --git a/instrumentation/servlet/request-2.3/src/main/java/io/opentelemetry/auto/instrumentation/servlet/v2_3/Servlet2Advice.java b/instrumentation/servlet/request-2.3/src/main/java/io/opentelemetry/auto/instrumentation/servlet/v2_3/Servlet2Advice.java index 7059a3190b..617ed30e82 100644 --- a/instrumentation/servlet/request-2.3/src/main/java/io/opentelemetry/auto/instrumentation/servlet/v2_3/Servlet2Advice.java +++ b/instrumentation/servlet/request-2.3/src/main/java/io/opentelemetry/auto/instrumentation/servlet/v2_3/Servlet2Advice.java @@ -66,8 +66,8 @@ public class Servlet2Advice { TRACER.spanBuilder(DECORATE.spanNameForRequest(httpServletRequest)).setSpanKind(SERVER); builder.setParent(extract(httpServletRequest, GETTER)); - final Span span = builder.startSpan(); - span.setAttribute("span.origin.type", servlet.getClass().getName()); + final Span span = + builder.setAttribute("span.origin.type", servlet.getClass().getName()).startSpan(); DECORATE.afterStart(span); DECORATE.onConnection(span, httpServletRequest); diff --git a/instrumentation/servlet/request-3.0/src/main/java/io/opentelemetry/auto/instrumentation/servlet/v3_0/Servlet3Advice.java b/instrumentation/servlet/request-3.0/src/main/java/io/opentelemetry/auto/instrumentation/servlet/v3_0/Servlet3Advice.java index b6dde721e3..8f1cca4f87 100644 --- a/instrumentation/servlet/request-3.0/src/main/java/io/opentelemetry/auto/instrumentation/servlet/v3_0/Servlet3Advice.java +++ b/instrumentation/servlet/request-3.0/src/main/java/io/opentelemetry/auto/instrumentation/servlet/v3_0/Servlet3Advice.java @@ -77,8 +77,8 @@ public class Servlet3Advice { final Span.Builder builder = TRACER.spanBuilder(DECORATE.spanNameForRequest(httpServletRequest)).setSpanKind(SERVER); builder.setParent(extract(httpServletRequest, GETTER)); - final Span span = builder.startSpan(); - span.setAttribute("span.origin.type", servlet.getClass().getName()); + final Span span = + builder.setAttribute("span.origin.type", servlet.getClass().getName()).startSpan(); DECORATE.afterStart(span); DECORATE.onConnection(span, httpServletRequest); diff --git a/instrumentation/servlet/src/main/java/io/opentelemetry/auto/instrumentation/servlet/dispatcher/RequestDispatcherInstrumentation.java b/instrumentation/servlet/src/main/java/io/opentelemetry/auto/instrumentation/servlet/dispatcher/RequestDispatcherInstrumentation.java index 761fe24454..65793186f7 100644 --- a/instrumentation/servlet/src/main/java/io/opentelemetry/auto/instrumentation/servlet/dispatcher/RequestDispatcherInstrumentation.java +++ b/instrumentation/servlet/src/main/java/io/opentelemetry/auto/instrumentation/servlet/dispatcher/RequestDispatcherInstrumentation.java @@ -113,12 +113,15 @@ public final class RequestDispatcherInstrumentation extends Instrumenter.Default parent = servletSpan; } - final Span span = TRACER.spanBuilder("servlet." + method).setParent(parent).startSpan(); - DECORATE.afterStart(span); - final String target = InstrumentationContext.get(RequestDispatcher.class, String.class).get(dispatcher); - span.setAttribute("dispatcher.target", target); + final Span span = + TRACER + .spanBuilder("servlet." + method) + .setParent(parent) + .setAttribute("dispatcher.target", target) + .startSpan(); + DECORATE.afterStart(span); // save the original servlet span before overwriting the request attribute, so that it can be // restored on method exit