diff --git a/instrumentation/apache-camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/decorators/BaseSpanDecorator.java b/instrumentation/apache-camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/decorators/BaseSpanDecorator.java index 701cebd890..618ff25ec7 100644 --- a/instrumentation/apache-camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/decorators/BaseSpanDecorator.java +++ b/instrumentation/apache-camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/decorators/BaseSpanDecorator.java @@ -92,7 +92,7 @@ class BaseSpanDecorator implements SpanDecorator { @Override public void pre(Span span, Exchange exchange, Endpoint endpoint, CamelDirection camelDirection) { - span.setAttribute("camel.uri", URISupport.sanitizeUri(endpoint.getEndpointUri())); + span.setAttribute("apache-camel.uri", URISupport.sanitizeUri(endpoint.getEndpointUri())); } @Override diff --git a/instrumentation/apache-camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/decorators/KafkaSpanDecorator.java b/instrumentation/apache-camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/decorators/KafkaSpanDecorator.java index eba42bba0c..7a4ef59c21 100644 --- a/instrumentation/apache-camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/decorators/KafkaSpanDecorator.java +++ b/instrumentation/apache-camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/decorators/KafkaSpanDecorator.java @@ -59,24 +59,24 @@ class KafkaSpanDecorator extends MessagingSpanDecorator { span.setAttribute(SemanticAttributes.MESSAGING_OPERATION, "process"); span.setAttribute(SemanticAttributes.MESSAGING_DESTINATION_KIND, "topic"); - String partition = getValue(exchange, PARTITION, Integer.class); + Integer partition = exchange.getIn().getHeader(PARTITION, Integer.class); if (partition != null) { - span.setAttribute("partition", partition); + span.setAttribute(SemanticAttributes.MESSAGING_KAFKA_PARTITION, partition); } String partitionKey = (String) exchange.getIn().getHeader(PARTITION_KEY); if (partitionKey != null) { - span.setAttribute("partitionKey", partitionKey); + span.setAttribute("apache-camel.kafka.partitionKey", partitionKey); } String key = (String) exchange.getIn().getHeader(KEY); if (key != null) { - span.setAttribute("key", key); + span.setAttribute("apache-camel.kafka.key", key); } String offset = getValue(exchange, OFFSET, Long.class); if (offset != null) { - span.setAttribute("offset", offset); + span.setAttribute("apache-camel.kafka.offset", offset); } } diff --git a/instrumentation/apache-camel-2.20/javaagent/src/test/groovy/test/DirectCamelTest.groovy b/instrumentation/apache-camel-2.20/javaagent/src/test/groovy/test/DirectCamelTest.groovy index 371db0c7ce..68af7b7dd4 100644 --- a/instrumentation/apache-camel-2.20/javaagent/src/test/groovy/test/DirectCamelTest.groovy +++ b/instrumentation/apache-camel-2.20/javaagent/src/test/groovy/test/DirectCamelTest.groovy @@ -16,50 +16,50 @@ import spock.lang.Shared class DirectCamelTest extends AgentTestRunner { - @Shared - ConfigurableApplicationContext server + @Shared + ConfigurableApplicationContext server - def setupSpec() { - def app = new SpringApplication(DirectConfig) - server = app.run() - } - - def cleanupSpec() { - if (server != null) { - server.close() - server = null + def setupSpec() { + def app = new SpringApplication(DirectConfig) + server = app.run() } - } - def "simple direct to a single services"() { - setup: - def camelContext = server.getBean(CamelContext) - ProducerTemplate template = camelContext.createProducerTemplate() - - when: - template.sendBody("direct:input", "Example request") - - then: - assertTraces(1) { - trace(0, 2) { - def parent = it - it.span(0) { - name "input" - kind INTERNAL - hasNoParent() - attributes { - "camel.uri" "direct://input" - } + def cleanupSpec() { + if (server != null) { + server.close() + server = null + } + } + + def "simple direct to a single services"() { + setup: + def camelContext = server.getBean(CamelContext) + ProducerTemplate template = camelContext.createProducerTemplate() + + when: + template.sendBody("direct:input", "Example request") + + then: + assertTraces(1) { + trace(0, 2) { + def parent = it + it.span(0) { + name "input" + kind INTERNAL + hasNoParent() + attributes { + "apache-camel.uri" "direct://input" + } + } + it.span(1) { + name "receiver" + kind INTERNAL + parentSpanId parent.span(0).spanId + attributes { + "apache-camel.uri" "direct://receiver" + } + } + } } - it.span(1) { - name "receiver" - kind INTERNAL - parentSpanId parent.span(0).spanId - attributes { - "camel.uri" "direct://receiver" - } - } - } } - } } diff --git a/instrumentation/apache-camel-2.20/javaagent/src/test/groovy/test/MulticastDirectCamelTest.groovy b/instrumentation/apache-camel-2.20/javaagent/src/test/groovy/test/MulticastDirectCamelTest.groovy index 1e2b555394..bcf5309e3c 100644 --- a/instrumentation/apache-camel-2.20/javaagent/src/test/groovy/test/MulticastDirectCamelTest.groovy +++ b/instrumentation/apache-camel-2.20/javaagent/src/test/groovy/test/MulticastDirectCamelTest.groovy @@ -48,7 +48,7 @@ class MulticastDirectCamelTest extends AgentTestRunner { kind INTERNAL hasNoParent() attributes { - "camel.uri" "direct://input" + "apache-camel.uri" "direct://input" } } it.span(1) { @@ -56,7 +56,7 @@ class MulticastDirectCamelTest extends AgentTestRunner { kind INTERNAL parentSpanId parent.span(0).spanId attributes { - "camel.uri" "direct://second" + "apache-camel.uri" "direct://second" } } it.span(2) { @@ -64,7 +64,7 @@ class MulticastDirectCamelTest extends AgentTestRunner { kind INTERNAL parentSpanId parent.span(0).spanId attributes { - "camel.uri" "direct://first" + "apache-camel.uri" "direct://first" } } } diff --git a/instrumentation/apache-camel-2.20/javaagent/src/test/groovy/test/RestCamelTest.groovy b/instrumentation/apache-camel-2.20/javaagent/src/test/groovy/test/RestCamelTest.groovy index 4134e98309..7dcae71b14 100644 --- a/instrumentation/apache-camel-2.20/javaagent/src/test/groovy/test/RestCamelTest.groovy +++ b/instrumentation/apache-camel-2.20/javaagent/src/test/groovy/test/RestCamelTest.groovy @@ -69,7 +69,7 @@ class RestCamelTest extends AgentTestRunner { name "start" kind INTERNAL attributes { - "camel.uri" "direct://start" + "apache-camel.uri" "direct://start" } } it.span(1) { @@ -78,7 +78,7 @@ class RestCamelTest extends AgentTestRunner { attributes { "$SemanticAttributes.HTTP_METHOD.key" "GET" "$SemanticAttributes.HTTP_STATUS_CODE.key" 200 - "camel.uri" "rest://get:api/%7Bmodule%7D/unit/%7BunitId%7D" + "apache-camel.uri" "rest://get:api/%7Bmodule%7D/unit/%7BunitId%7D" } } it.span(2) { @@ -101,14 +101,14 @@ class RestCamelTest extends AgentTestRunner { attributes { "$SemanticAttributes.HTTP_METHOD.key" "GET" "$SemanticAttributes.HTTP_URL.key" "http://localhost:$port/api/firstModule/unit/unitOne" - "camel.uri" String + "apache-camel.uri" String } } it.span(4) { name "moduleUnit" kind INTERNAL attributes { - "camel.uri" "direct://moduleUnit" + "apache-camel.uri" "direct://moduleUnit" } } } diff --git a/instrumentation/apache-camel-2.20/javaagent/src/test/groovy/test/SingleServiceCamelTest.groovy b/instrumentation/apache-camel-2.20/javaagent/src/test/groovy/test/SingleServiceCamelTest.groovy index 8d1c16419c..ef66488df3 100644 --- a/instrumentation/apache-camel-2.20/javaagent/src/test/groovy/test/SingleServiceCamelTest.groovy +++ b/instrumentation/apache-camel-2.20/javaagent/src/test/groovy/test/SingleServiceCamelTest.groovy @@ -75,7 +75,7 @@ class SingleServiceCamelTest extends AgentTestRunner { attributes { "$SemanticAttributes.HTTP_METHOD.key" "POST" "$SemanticAttributes.HTTP_URL.key" "${address.resolve("/camelService")}" - "camel.uri" "${address.resolve("/camelService")}".replace("localhost", "0.0.0.0") + "apache-camel.uri" "${address.resolve("/camelService")}".replace("localhost", "0.0.0.0") } } } diff --git a/instrumentation/apache-camel-2.20/javaagent/src/test/groovy/test/TwoServicesWithDirectClientCamelTest.groovy b/instrumentation/apache-camel-2.20/javaagent/src/test/groovy/test/TwoServicesWithDirectClientCamelTest.groovy index 1134691278..34d3632cf9 100644 --- a/instrumentation/apache-camel-2.20/javaagent/src/test/groovy/test/TwoServicesWithDirectClientCamelTest.groovy +++ b/instrumentation/apache-camel-2.20/javaagent/src/test/groovy/test/TwoServicesWithDirectClientCamelTest.groovy @@ -23,149 +23,149 @@ import spock.lang.Shared class TwoServicesWithDirectClientCamelTest extends AgentTestRunner { - @Shared - int portOne - @Shared - int portTwo - @Shared - ConfigurableApplicationContext server - @Shared - CamelContext clientContext + @Shared + int portOne + @Shared + int portTwo + @Shared + ConfigurableApplicationContext server + @Shared + CamelContext clientContext - def setupSpec() { - withRetryOnAddressAlreadyInUse({ - setupSpecUnderRetry() - }) - } - - def setupSpecUnderRetry() { - portOne = PortUtils.randomOpenPort() - portTwo = PortUtils.randomOpenPort() - def app = new SpringApplication(TwoServicesConfig) - app.setDefaultProperties(ImmutableMap.of("service.one.port", portOne, "service.two.port", portTwo)) - server = app.run() - } - - def createAndStartClient() { - clientContext = new DefaultCamelContext() - clientContext.addRoutes(new RouteBuilder() { - void configure() { - from("direct:input") - .log("SENT Client request") - .to("http://localhost:$portOne/serviceOne") - .log("RECEIVED Client response") - } - }) - clientContext.start() - } - - def cleanupSpec() { - if (server != null) { - server.close() - server = null + def setupSpec() { + withRetryOnAddressAlreadyInUse({ + setupSpecUnderRetry() + }) } - } - def "two camel service spans"() { - setup: - createAndStartClient() - ProducerTemplate template = clientContext.createProducerTemplate() - - when: - template.sendBody("direct:input", "Example request") - - then: - assertTraces(1) { - trace(0, 8) { - it.span(0) { - name "input" - kind INTERNAL - attributes { - "camel.uri" "direct://input" - } - } - it.span(1) { - name "POST" - kind CLIENT - attributes { - "$SemanticAttributes.HTTP_METHOD.key" "POST" - "$SemanticAttributes.HTTP_URL.key" "http://localhost:$portOne/serviceOne" - "$SemanticAttributes.HTTP_STATUS_CODE.key" 200 - "camel.uri" "http://localhost:$portOne/serviceOne" - } - } - it.span(2) { - name "HTTP POST" - kind CLIENT - attributes { - "$SemanticAttributes.HTTP_METHOD.key" "POST" - "$SemanticAttributes.HTTP_URL.key" "http://localhost:$portOne/serviceOne" - "$SemanticAttributes.HTTP_STATUS_CODE.key" 200 - "$SemanticAttributes.NET_PEER_NAME.key" "localhost" - "$SemanticAttributes.NET_PEER_PORT.key" portOne - "$SemanticAttributes.NET_TRANSPORT.key" "IP.TCP" - "$SemanticAttributes.HTTP_FLAVOR.key" "1.1" - } - } - it.span(3) { - name "/serviceOne" - kind SERVER - attributes { - "$SemanticAttributes.HTTP_METHOD.key" "POST" - "$SemanticAttributes.HTTP_URL.key" "http://localhost:$portOne/serviceOne" - "$SemanticAttributes.HTTP_STATUS_CODE.key" 200 - "camel.uri" "http://0.0.0.0:$portOne/serviceOne" - } - } - it.span(4) { - name "POST" - kind CLIENT - attributes { - "$SemanticAttributes.HTTP_METHOD.key" "POST" - "$SemanticAttributes.HTTP_URL.key" "http://0.0.0.0:$portTwo/serviceTwo" - "$SemanticAttributes.HTTP_STATUS_CODE.key" 200 - "camel.uri" "http://0.0.0.0:$portTwo/serviceTwo" - } - } - it.span(5) { - name "HTTP POST" - kind CLIENT - attributes { - "$SemanticAttributes.HTTP_METHOD.key" "POST" - "$SemanticAttributes.HTTP_URL.key" "http://0.0.0.0:$portTwo/serviceTwo" - "$SemanticAttributes.HTTP_STATUS_CODE.key" 200 - "$SemanticAttributes.NET_PEER_NAME.key" "0.0.0.0" - "$SemanticAttributes.NET_PEER_PORT.key" portTwo - "$SemanticAttributes.NET_TRANSPORT.key" "IP.TCP" - "$SemanticAttributes.HTTP_FLAVOR.key" "1.1" - "$SemanticAttributes.HTTP_USER_AGENT.key" "Jakarta Commons-HttpClient/3.1" - } - } - it.span(6) { - name "/serviceTwo" - kind SERVER - attributes { - "$SemanticAttributes.HTTP_METHOD.key" "POST" - "$SemanticAttributes.HTTP_STATUS_CODE.key" 200 - "$SemanticAttributes.HTTP_URL.key" "http://0.0.0.0:$portTwo/serviceTwo" - "$SemanticAttributes.NET_PEER_PORT.key" Number - "$SemanticAttributes.NET_PEER_IP.key" InetAddress.getLocalHost().getHostAddress().toString() - "$SemanticAttributes.HTTP_USER_AGENT.key" "Jakarta Commons-HttpClient/3.1" - "$SemanticAttributes.HTTP_FLAVOR.key" "HTTP/1.1" - "$SemanticAttributes.HTTP_CLIENT_IP.key" InetAddress.getLocalHost().getHostAddress().toString() - - } - } - it.span(7) { - name "/serviceTwo" - kind INTERNAL - attributes { - "$SemanticAttributes.HTTP_METHOD.key" "POST" - "$SemanticAttributes.HTTP_URL.key" "http://0.0.0.0:$portTwo/serviceTwo" - "camel.uri" "jetty:http://0.0.0.0:$portTwo/serviceTwo?arg=value" - } - } - } + def setupSpecUnderRetry() { + portOne = PortUtils.randomOpenPort() + portTwo = PortUtils.randomOpenPort() + def app = new SpringApplication(TwoServicesConfig) + app.setDefaultProperties(ImmutableMap.of("service.one.port", portOne, "service.two.port", portTwo)) + server = app.run() + } + + def createAndStartClient() { + clientContext = new DefaultCamelContext() + clientContext.addRoutes(new RouteBuilder() { + void configure() { + from("direct:input") + .log("SENT Client request") + .to("http://localhost:$portOne/serviceOne") + .log("RECEIVED Client response") + } + }) + clientContext.start() + } + + def cleanupSpec() { + if (server != null) { + server.close() + server = null + } + } + + def "two camel service spans"() { + setup: + createAndStartClient() + ProducerTemplate template = clientContext.createProducerTemplate() + + when: + template.sendBody("direct:input", "Example request") + + then: + assertTraces(1) { + trace(0, 8) { + it.span(0) { + name "input" + kind INTERNAL + attributes { + "apache-camel.uri" "direct://input" + } + } + it.span(1) { + name "POST" + kind CLIENT + attributes { + "$SemanticAttributes.HTTP_METHOD.key" "POST" + "$SemanticAttributes.HTTP_URL.key" "http://localhost:$portOne/serviceOne" + "$SemanticAttributes.HTTP_STATUS_CODE.key" 200 + "apache-camel.uri" "http://localhost:$portOne/serviceOne" + } + } + it.span(2) { + name "HTTP POST" + kind CLIENT + attributes { + "$SemanticAttributes.HTTP_METHOD.key" "POST" + "$SemanticAttributes.HTTP_URL.key" "http://localhost:$portOne/serviceOne" + "$SemanticAttributes.HTTP_STATUS_CODE.key" 200 + "$SemanticAttributes.NET_PEER_NAME.key" "localhost" + "$SemanticAttributes.NET_PEER_PORT.key" portOne + "$SemanticAttributes.NET_TRANSPORT.key" "IP.TCP" + "$SemanticAttributes.HTTP_FLAVOR.key" "1.1" + } + } + it.span(3) { + name "/serviceOne" + kind SERVER + attributes { + "$SemanticAttributes.HTTP_METHOD.key" "POST" + "$SemanticAttributes.HTTP_URL.key" "http://localhost:$portOne/serviceOne" + "$SemanticAttributes.HTTP_STATUS_CODE.key" 200 + "apache-camel.uri" "http://0.0.0.0:$portOne/serviceOne" + } + } + it.span(4) { + name "POST" + kind CLIENT + attributes { + "$SemanticAttributes.HTTP_METHOD.key" "POST" + "$SemanticAttributes.HTTP_URL.key" "http://0.0.0.0:$portTwo/serviceTwo" + "$SemanticAttributes.HTTP_STATUS_CODE.key" 200 + "apache-camel.uri" "http://0.0.0.0:$portTwo/serviceTwo" + } + } + it.span(5) { + name "HTTP POST" + kind CLIENT + attributes { + "$SemanticAttributes.HTTP_METHOD.key" "POST" + "$SemanticAttributes.HTTP_URL.key" "http://0.0.0.0:$portTwo/serviceTwo" + "$SemanticAttributes.HTTP_STATUS_CODE.key" 200 + "$SemanticAttributes.NET_PEER_NAME.key" "0.0.0.0" + "$SemanticAttributes.NET_PEER_PORT.key" portTwo + "$SemanticAttributes.NET_TRANSPORT.key" "IP.TCP" + "$SemanticAttributes.HTTP_FLAVOR.key" "1.1" + "$SemanticAttributes.HTTP_USER_AGENT.key" "Jakarta Commons-HttpClient/3.1" + } + } + it.span(6) { + name "/serviceTwo" + kind SERVER + attributes { + "$SemanticAttributes.HTTP_METHOD.key" "POST" + "$SemanticAttributes.HTTP_STATUS_CODE.key" 200 + "$SemanticAttributes.HTTP_URL.key" "http://0.0.0.0:$portTwo/serviceTwo" + "$SemanticAttributes.NET_PEER_PORT.key" Number + "$SemanticAttributes.NET_PEER_IP.key" InetAddress.getLocalHost().getHostAddress().toString() + "$SemanticAttributes.HTTP_USER_AGENT.key" "Jakarta Commons-HttpClient/3.1" + "$SemanticAttributes.HTTP_FLAVOR.key" "HTTP/1.1" + "$SemanticAttributes.HTTP_CLIENT_IP.key" InetAddress.getLocalHost().getHostAddress().toString() + + } + } + it.span(7) { + name "/serviceTwo" + kind INTERNAL + attributes { + "$SemanticAttributes.HTTP_METHOD.key" "POST" + "$SemanticAttributes.HTTP_URL.key" "http://0.0.0.0:$portTwo/serviceTwo" + "apache-camel.uri" "jetty:http://0.0.0.0:$portTwo/serviceTwo?arg=value" + } + } + } + } } - } } diff --git a/instrumentation/couchbase/couchbase-2.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_6/CouchbaseNetworkInstrumentation.java b/instrumentation/couchbase/couchbase-2.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_6/CouchbaseNetworkInstrumentation.java index 259722d645..5bbbf0c6bf 100644 --- a/instrumentation/couchbase/couchbase-2.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_6/CouchbaseNetworkInstrumentation.java +++ b/instrumentation/couchbase/couchbase-2.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_6/CouchbaseNetworkInstrumentation.java @@ -79,7 +79,7 @@ public class CouchbaseNetworkInstrumentation implements TypeInstrumentation { } } - span.setAttribute("local.address", localSocket); + span.setAttribute("couchbase.local.address", localSocket); } } } diff --git a/instrumentation/couchbase/couchbase-2.6/javaagent/src/test/groovy/CouchbaseSpanUtil.groovy b/instrumentation/couchbase/couchbase-2.6/javaagent/src/test/groovy/CouchbaseSpanUtil.groovy index 477793bbcd..45e00b6d1c 100644 --- a/instrumentation/couchbase/couchbase-2.6/javaagent/src/test/groovy/CouchbaseSpanUtil.groovy +++ b/instrumentation/couchbase/couchbase-2.6/javaagent/src/test/groovy/CouchbaseSpanUtil.groovy @@ -34,7 +34,7 @@ class CouchbaseSpanUtil { } // Because of caching, not all requests hit the server so this tag may be absent - "local.address" { it == null || String } + "couchbase.local.address" { it == null || String } // Not all couchbase operations have operation id. Notably, 'ViewQuery's do not // We assign a spanName of 'Bucket.query' and this is shared with n1ql queries diff --git a/instrumentation/grpc-1.5/library/src/main/java/io/opentelemetry/instrumentation/grpc/v1_5/server/TracingServerInterceptor.java b/instrumentation/grpc-1.5/library/src/main/java/io/opentelemetry/instrumentation/grpc/v1_5/server/TracingServerInterceptor.java index 664ffeac3b..fc41e6b2f4 100644 --- a/instrumentation/grpc-1.5/library/src/main/java/io/opentelemetry/instrumentation/grpc/v1_5/server/TracingServerInterceptor.java +++ b/instrumentation/grpc-1.5/library/src/main/java/io/opentelemetry/instrumentation/grpc/v1_5/server/TracingServerInterceptor.java @@ -139,7 +139,7 @@ public class TracingServerInterceptor implements ServerInterceptor { public void onCancel() { try (Scope ignored = span.makeCurrent()) { delegate().onCancel(); - span.setAttribute("canceled", true); + span.setAttribute("grpc.canceled", true); } catch (Throwable e) { tracer.endExceptionally(span, e); throw e; diff --git a/instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrs/v2_0/JaxRsAsyncResponseInstrumentation.java b/instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrs/v2_0/JaxRsAsyncResponseInstrumentation.java index 0f47ce7d89..d9cc4f38a4 100644 --- a/instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrs/v2_0/JaxRsAsyncResponseInstrumentation.java +++ b/instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrs/v2_0/JaxRsAsyncResponseInstrumentation.java @@ -95,7 +95,7 @@ public class JaxRsAsyncResponseInstrumentation implements TypeInstrumentation { Span span = contextStore.get(asyncResponse); if (span != null) { contextStore.put(asyncResponse, null); - span.setAttribute("canceled", true); + span.setAttribute("jaxrs.canceled", true); tracer().end(span); } } diff --git a/instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-testing/src/main/groovy/JaxRsHttpServerTest.groovy b/instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-testing/src/main/groovy/JaxRsHttpServerTest.groovy index 4dc22f8b65..bcfae3c92d 100644 --- a/instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-testing/src/main/groovy/JaxRsHttpServerTest.groovy +++ b/instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-testing/src/main/groovy/JaxRsHttpServerTest.groovy @@ -213,7 +213,7 @@ abstract class JaxRsHttpServerTest extends HttpServerTest { childOf((SpanData) parent) attributes { if (isCancelled) { - "canceled" true + "jaxrs.canceled" true } } } diff --git a/instrumentation/kafka-clients-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkaclients/KafkaConsumerTracer.java b/instrumentation/kafka-clients-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkaclients/KafkaConsumerTracer.java index 4e6c7c3b72..736778b42e 100644 --- a/instrumentation/kafka-clients-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkaclients/KafkaConsumerTracer.java +++ b/instrumentation/kafka-clients-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkaclients/KafkaConsumerTracer.java @@ -59,11 +59,11 @@ public class KafkaConsumerTracer extends BaseTracer { public void onConsume(Span span, long startTimeMillis, ConsumerRecord record) { // TODO should we set topic + offset as messaging.message_id? - span.setAttribute("partition", record.partition()); - span.setAttribute("offset", record.offset()); + span.setAttribute(SemanticAttributes.MESSAGING_KAFKA_PARTITION, record.partition()); + span.setAttribute("kafka-clients.offset", record.offset()); if (record.value() == null) { - span.setAttribute("tombstone", true); + span.setAttribute(SemanticAttributes.MESSAGING_KAFKA_TOMBSTONE, true); } // don't record a duration if the message was sent from an old Kafka client @@ -71,7 +71,8 @@ public class KafkaConsumerTracer extends BaseTracer { long produceTime = record.timestamp(); // this attribute shows how much time elapsed between the producer and the consumer of this // message, which can be helpful for identifying queue bottlenecks - span.setAttribute("record.queue_time_ms", Math.max(0L, startTimeMillis - produceTime)); + span.setAttribute( + "kafka-clients.record.queue_time_ms", Math.max(0L, startTimeMillis - produceTime)); } } diff --git a/instrumentation/kafka-clients-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkaclients/KafkaProducerTracer.java b/instrumentation/kafka-clients-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkaclients/KafkaProducerTracer.java index cd0ff76805..8666632f26 100644 --- a/instrumentation/kafka-clients-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkaclients/KafkaProducerTracer.java +++ b/instrumentation/kafka-clients-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkaclients/KafkaProducerTracer.java @@ -50,10 +50,10 @@ public class KafkaProducerTracer extends BaseTracer { Integer partition = record.partition(); if (partition != null) { - span.setAttribute("partition", partition); + span.setAttribute(SemanticAttributes.MESSAGING_KAFKA_PARTITION, partition); } if (record.value() == null) { - span.setAttribute("tombstone", true); + span.setAttribute(SemanticAttributes.MESSAGING_KAFKA_TOMBSTONE, true); } } diff --git a/instrumentation/kafka-clients-0.11/javaagent/src/test/groovy/KafkaClientPropagationDisabledTest.groovy b/instrumentation/kafka-clients-0.11/javaagent/src/test/groovy/KafkaClientPropagationDisabledTest.groovy index 4f860811f6..3842e3148d 100644 --- a/instrumentation/kafka-clients-0.11/javaagent/src/test/groovy/KafkaClientPropagationDisabledTest.groovy +++ b/instrumentation/kafka-clients-0.11/javaagent/src/test/groovy/KafkaClientPropagationDisabledTest.groovy @@ -96,9 +96,9 @@ class KafkaClientPropagationDisabledTest extends KafkaClientBaseTest { "${SemanticAttributes.MESSAGING_DESTINATION_KIND.key}" "topic" "${SemanticAttributes.MESSAGING_OPERATION.key}" "process" "${SemanticAttributes.MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES.key}" Long - "partition" { it >= 0 } - "offset" 0 - "record.queue_time_ms" { it >= 0 } + "${SemanticAttributes.MESSAGING_KAFKA_PARTITION.key}" { it >= 0 } + "kafka-clients.offset" 0 + "kafka-clients.record.queue_time_ms" { it >= 0 } } } } diff --git a/instrumentation/kafka-clients-0.11/javaagent/src/test/groovy/KafkaClientPropagationEnabledTest.groovy b/instrumentation/kafka-clients-0.11/javaagent/src/test/groovy/KafkaClientPropagationEnabledTest.groovy index ffb329c6d1..e48c2e243d 100644 --- a/instrumentation/kafka-clients-0.11/javaagent/src/test/groovy/KafkaClientPropagationEnabledTest.groovy +++ b/instrumentation/kafka-clients-0.11/javaagent/src/test/groovy/KafkaClientPropagationEnabledTest.groovy @@ -107,9 +107,9 @@ class KafkaClientPropagationEnabledTest extends KafkaClientBaseTest { "${SemanticAttributes.MESSAGING_DESTINATION_KIND.key}" "topic" "${SemanticAttributes.MESSAGING_OPERATION.key}" "process" "${SemanticAttributes.MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES.key}" Long - "partition" { it >= 0 } - "offset" 0 - "record.queue_time_ms" { it >= 0 } + "${SemanticAttributes.MESSAGING_KAFKA_PARTITION.key}" { it >= 0 } + "kafka-clients.offset" 0 + "kafka-clients.record.queue_time_ms" { it >= 0 } } } basicSpan(it, 3, "producer callback", span(0)) @@ -197,9 +197,9 @@ class KafkaClientPropagationEnabledTest extends KafkaClientBaseTest { "${SemanticAttributes.MESSAGING_DESTINATION_KIND.key}" "topic" "${SemanticAttributes.MESSAGING_OPERATION.key}" "process" "${SemanticAttributes.MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES.key}" Long - "partition" { it >= 0 } - "offset" 0 - "record.queue_time_ms" { it >= 0 } + "${SemanticAttributes.MESSAGING_KAFKA_PARTITION.key}" { it >= 0 } + "kafka-clients.offset" 0 + "kafka-clients.record.queue_time_ms" { it >= 0 } } } basicSpan(it, 3, "producer callback", span(0)) @@ -267,7 +267,7 @@ class KafkaClientPropagationEnabledTest extends KafkaClientBaseTest { "${SemanticAttributes.MESSAGING_SYSTEM.key}" "kafka" "${SemanticAttributes.MESSAGING_DESTINATION.key}" SHARED_TOPIC "${SemanticAttributes.MESSAGING_DESTINATION_KIND.key}" "topic" - "tombstone" true + "${SemanticAttributes.MESSAGING_KAFKA_TOMBSTONE.key}" true } } // CONSUMER span 0 @@ -282,10 +282,10 @@ class KafkaClientPropagationEnabledTest extends KafkaClientBaseTest { "${SemanticAttributes.MESSAGING_DESTINATION_KIND.key}" "topic" "${SemanticAttributes.MESSAGING_OPERATION.key}" "process" "${SemanticAttributes.MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES.key}" Long - "partition" { it >= 0 } - "offset" 0 - "record.queue_time_ms" { it >= 0 } - "tombstone" true + "${SemanticAttributes.MESSAGING_KAFKA_PARTITION.key}" { it >= 0 } + "${SemanticAttributes.MESSAGING_KAFKA_TOMBSTONE.key}" true + "kafka-clients.offset" 0 + "kafka-clients.record.queue_time_ms" { it >= 0 } } } } @@ -342,7 +342,7 @@ class KafkaClientPropagationEnabledTest extends KafkaClientBaseTest { "${SemanticAttributes.MESSAGING_SYSTEM.key}" "kafka" "${SemanticAttributes.MESSAGING_DESTINATION.key}" SHARED_TOPIC "${SemanticAttributes.MESSAGING_DESTINATION_KIND.key}" "topic" - "partition" { it >= 0 } + "${SemanticAttributes.MESSAGING_KAFKA_PARTITION.key}" { it >= 0 } } } span(1) { @@ -356,9 +356,9 @@ class KafkaClientPropagationEnabledTest extends KafkaClientBaseTest { "${SemanticAttributes.MESSAGING_DESTINATION_KIND.key}" "topic" "${SemanticAttributes.MESSAGING_OPERATION.key}" "process" "${SemanticAttributes.MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES.key}" Long - "partition" { it >= 0 } - "offset" 0 - "record.queue_time_ms" { it >= 0 } + "${SemanticAttributes.MESSAGING_KAFKA_PARTITION.key}" { it >= 0 } + "kafka-clients.offset" 0 + "kafka-clients.record.queue_time_ms" { it >= 0 } } } } diff --git a/instrumentation/kafka-streams-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkastreams/KafkaStreamsTracer.java b/instrumentation/kafka-streams-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkastreams/KafkaStreamsTracer.java index 03db415a8f..dfdc0b428b 100644 --- a/instrumentation/kafka-streams-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkastreams/KafkaStreamsTracer.java +++ b/instrumentation/kafka-streams-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkastreams/KafkaStreamsTracer.java @@ -44,8 +44,8 @@ public class KafkaStreamsTracer extends BaseTracer { public void onConsume(Span span, StampedRecord record) { if (record != null) { - span.setAttribute("partition", record.partition()); - span.setAttribute("offset", record.offset()); + span.setAttribute(SemanticAttributes.MESSAGING_KAFKA_PARTITION, record.partition()); + span.setAttribute("kafka-streams.offset", record.offset()); } } diff --git a/instrumentation/kafka-streams-0.11/javaagent/src/test/groovy/KafkaStreamsTest.groovy b/instrumentation/kafka-streams-0.11/javaagent/src/test/groovy/KafkaStreamsTest.groovy index 7dd750ddbd..1dc7a1a1ab 100644 --- a/instrumentation/kafka-streams-0.11/javaagent/src/test/groovy/KafkaStreamsTest.groovy +++ b/instrumentation/kafka-streams-0.11/javaagent/src/test/groovy/KafkaStreamsTest.groovy @@ -149,9 +149,9 @@ class KafkaStreamsTest extends AgentTestRunner { "${SemanticAttributes.MESSAGING_DESTINATION_KIND.key}" "topic" "${SemanticAttributes.MESSAGING_OPERATION.key}" "process" "${SemanticAttributes.MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES.key}" Long - "partition" { it >= 0 } - "offset" 0 - "record.queue_time_ms" { it >= 0 } + "${SemanticAttributes.MESSAGING_KAFKA_PARTITION.key}" { it >= 0 } + "kafka-clients.offset" 0 + "kafka-clients.record.queue_time_ms" { it >= 0 } } } // STREAMING span 1 @@ -165,8 +165,8 @@ class KafkaStreamsTest extends AgentTestRunner { "${SemanticAttributes.MESSAGING_DESTINATION.key}" STREAM_PENDING "${SemanticAttributes.MESSAGING_DESTINATION_KIND.key}" "topic" "${SemanticAttributes.MESSAGING_OPERATION.key}" "process" - "partition" { it >= 0 } - "offset" 0 + "${SemanticAttributes.MESSAGING_KAFKA_PARTITION.key}" { it >= 0 } + "kafka-streams.offset" 0 "asdf" "testing" } } @@ -194,9 +194,9 @@ class KafkaStreamsTest extends AgentTestRunner { "${SemanticAttributes.MESSAGING_DESTINATION_KIND.key}" "topic" "${SemanticAttributes.MESSAGING_OPERATION.key}" "process" "${SemanticAttributes.MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES.key}" Long - "partition" { it >= 0 } - "offset" 0 - "record.queue_time_ms" { it >= 0 } + "${SemanticAttributes.MESSAGING_KAFKA_PARTITION.key}" { it >= 0 } + "kafka-clients.offset" 0 + "kafka-clients.record.queue_time_ms" { it >= 0 } "testing" 123 } } diff --git a/instrumentation/lettuce/lettuce-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v4_0/InstrumentationPoints.java b/instrumentation/lettuce/lettuce-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v4_0/InstrumentationPoints.java index b81cbef1cc..38a0818362 100644 --- a/instrumentation/lettuce/lettuce-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v4_0/InstrumentationPoints.java +++ b/instrumentation/lettuce/lettuce-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v4_0/InstrumentationPoints.java @@ -43,7 +43,7 @@ public final class InstrumentationPoints { if (ex == null) { LettuceDatabaseClientTracer.tracer().end(span); } else if (ex instanceof CancellationException) { - span.setAttribute("db.command.cancelled", true); + span.setAttribute("lettuce.command.cancelled", true); LettuceDatabaseClientTracer.tracer().end(span); } else { LettuceDatabaseClientTracer.tracer().endExceptionally(span, ex); diff --git a/instrumentation/lettuce/lettuce-4.0/javaagent/src/test/groovy/LettuceAsyncClientTest.groovy b/instrumentation/lettuce/lettuce-4.0/javaagent/src/test/groovy/LettuceAsyncClientTest.groovy index f71b49e34b..f554d96ff3 100644 --- a/instrumentation/lettuce/lettuce-4.0/javaagent/src/test/groovy/LettuceAsyncClientTest.groovy +++ b/instrumentation/lettuce/lettuce-4.0/javaagent/src/test/groovy/LettuceAsyncClientTest.groovy @@ -433,7 +433,7 @@ class LettuceAsyncClientTest extends AgentTestRunner { attributes { "${SemanticAttributes.DB_SYSTEM.key()}" "redis" "${SemanticAttributes.DB_STATEMENT.key()}" "SADD" - "db.command.cancelled" true + "lettuce.command.cancelled" true } } } diff --git a/instrumentation/lettuce/lettuce-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v5_0/LettuceAsyncBiFunction.java b/instrumentation/lettuce/lettuce-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v5_0/LettuceAsyncBiFunction.java index 689655d0dc..8b346afd33 100644 --- a/instrumentation/lettuce/lettuce-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v5_0/LettuceAsyncBiFunction.java +++ b/instrumentation/lettuce/lettuce-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v5_0/LettuceAsyncBiFunction.java @@ -32,7 +32,7 @@ public class LettuceAsyncBiFunction @Override public R apply(T t, Throwable throwable) { if (throwable instanceof CancellationException) { - span.setAttribute("db.command.cancelled", true); + span.setAttribute("lettuce.command.cancelled", true); tracer().end(span); } else { tracer().endExceptionally(span, throwable); diff --git a/instrumentation/lettuce/lettuce-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v5_0/rx/LettuceFluxTerminationRunnable.java b/instrumentation/lettuce/lettuce-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v5_0/rx/LettuceFluxTerminationRunnable.java index 66b4845938..eaf56b4d0e 100644 --- a/instrumentation/lettuce/lettuce-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v5_0/rx/LettuceFluxTerminationRunnable.java +++ b/instrumentation/lettuce/lettuce-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v5_0/rx/LettuceFluxTerminationRunnable.java @@ -20,7 +20,7 @@ public class LettuceFluxTerminationRunnable implements Consumer>, Runn private Span span = null; private int numResults = 0; - private FluxOnSubscribeConsumer onSubscribeConsumer; + private final FluxOnSubscribeConsumer onSubscribeConsumer; public LettuceFluxTerminationRunnable(RedisCommand command, boolean finishSpanOnClose) { onSubscribeConsumer = new FluxOnSubscribeConsumer(this, command, finishSpanOnClose); @@ -32,9 +32,9 @@ public class LettuceFluxTerminationRunnable implements Consumer>, Runn private void finishSpan(boolean isCommandCancelled, Throwable throwable) { if (span != null) { - span.setAttribute("db.command.results.count", numResults); + span.setAttribute("lettuce.command.results.count", numResults); if (isCommandCancelled) { - span.setAttribute("db.command.cancelled", true); + span.setAttribute("lettuce.command.cancelled", true); } if (throwable == null) { tracer().end(span); diff --git a/instrumentation/lettuce/lettuce-5.0/javaagent/src/test/groovy/LettuceAsyncClientTest.groovy b/instrumentation/lettuce/lettuce-5.0/javaagent/src/test/groovy/LettuceAsyncClientTest.groovy index 644448f177..1c8db08dd8 100644 --- a/instrumentation/lettuce/lettuce-5.0/javaagent/src/test/groovy/LettuceAsyncClientTest.groovy +++ b/instrumentation/lettuce/lettuce-5.0/javaagent/src/test/groovy/LettuceAsyncClientTest.groovy @@ -437,7 +437,7 @@ class LettuceAsyncClientTest extends AgentTestRunner { attributes { "$SemanticAttributes.DB_SYSTEM.key" "redis" "$SemanticAttributes.DB_STATEMENT.key" "SADD SKEY ? ?" - "db.command.cancelled" true + "lettuce.command.cancelled" true } } } diff --git a/instrumentation/lettuce/lettuce-5.0/javaagent/src/test/groovy/LettuceReactiveClientTest.groovy b/instrumentation/lettuce/lettuce-5.0/javaagent/src/test/groovy/LettuceReactiveClientTest.groovy index 2a42841d14..897c758e64 100644 --- a/instrumentation/lettuce/lettuce-5.0/javaagent/src/test/groovy/LettuceReactiveClientTest.groovy +++ b/instrumentation/lettuce/lettuce-5.0/javaagent/src/test/groovy/LettuceReactiveClientTest.groovy @@ -207,7 +207,7 @@ class LettuceReactiveClientTest extends AgentTestRunner { attributes { "$SemanticAttributes.DB_SYSTEM.key" "redis" "$SemanticAttributes.DB_STATEMENT.key" "COMMAND" - "db.command.results.count" 157 + "lettuce.command.results.count" 157 } } } @@ -228,8 +228,8 @@ class LettuceReactiveClientTest extends AgentTestRunner { attributes { "$SemanticAttributes.DB_SYSTEM.key" "redis" "$SemanticAttributes.DB_STATEMENT.key" "COMMAND" - "db.command.cancelled" true - "db.command.results.count" 2 + "lettuce.command.cancelled" true + "lettuce.command.results.count" 2 } } } diff --git a/instrumentation/rabbitmq-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rabbitmq/RabbitChannelInstrumentation.java b/instrumentation/rabbitmq-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rabbitmq/RabbitChannelInstrumentation.java index a7ed8e2b3d..a2d81febb0 100644 --- a/instrumentation/rabbitmq-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rabbitmq/RabbitChannelInstrumentation.java +++ b/instrumentation/rabbitmq-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rabbitmq/RabbitChannelInstrumentation.java @@ -145,7 +145,7 @@ public class RabbitChannelInstrumentation implements TypeInstrumentation { } Integer deliveryMode = props.getDeliveryMode(); if (deliveryMode != null) { - span.setAttribute("amqp.delivery_mode", deliveryMode); + span.setAttribute("rabbitmq.delivery_mode", deliveryMode); } // We need to copy the BasicProperties and provide a header map we can modify diff --git a/instrumentation/rabbitmq-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rabbitmq/RabbitTracer.java b/instrumentation/rabbitmq-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rabbitmq/RabbitTracer.java index 42aa69adf1..ed96e340ff 100644 --- a/instrumentation/rabbitmq-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rabbitmq/RabbitTracer.java +++ b/instrumentation/rabbitmq-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rabbitmq/RabbitTracer.java @@ -95,7 +95,7 @@ public class RabbitTracer extends BaseTracer { // or if a plugin is installed on the rabbitmq broker long produceTime = properties.getTimestamp().getTime(); long consumeTime = NANOSECONDS.toMillis(startTimeMillis); - span.setAttribute("record.queue_time_ms", Math.max(0L, consumeTime - produceTime)); + span.setAttribute("rabbitmq.record.queue_time_ms", Math.max(0L, consumeTime - produceTime)); } return span; @@ -109,10 +109,9 @@ public class RabbitTracer extends BaseTracer { ? "" : routingKey.startsWith("amq.gen-") ? "" : routingKey; span.updateName(exchangeName + " -> " + routing + " send"); - span.setAttribute("amqp.command", "basic.publish"); + span.setAttribute("rabbitmq.command", "basic.publish"); if (routingKey != null && !routingKey.isEmpty()) { span.setAttribute("messaging.rabbitmq.routing_key", routingKey); - span.setAttribute("amqp.routing_key", routingKey); } } @@ -121,8 +120,8 @@ public class RabbitTracer extends BaseTracer { } public void onGet(Span span, String queue) { - span.setAttribute("amqp.command", "basic.get"); - span.setAttribute("amqp.queue", queue); + span.setAttribute("rabbitmq.command", "basic.get"); + span.setAttribute("rabbitmq.queue", queue); } public String spanNameOnDeliver(String queue) { @@ -136,7 +135,7 @@ public class RabbitTracer extends BaseTracer { } public void onDeliver(Span span, Envelope envelope) { - span.setAttribute("amqp.command", "basic.deliver"); + span.setAttribute("rabbitmq.command", "basic.deliver"); if (envelope != null) { String exchange = envelope.getExchange(); @@ -158,7 +157,7 @@ public class RabbitTracer extends BaseTracer { if (!name.equals("basic.publish")) { span.updateName(name); } - span.setAttribute("amqp.command", name); + span.setAttribute("rabbitmq.command", name); } @Override diff --git a/instrumentation/rabbitmq-2.7/javaagent/src/test/groovy/RabbitMQTest.groovy b/instrumentation/rabbitmq-2.7/javaagent/src/test/groovy/RabbitMQTest.groovy index 72b7a89401..2156e36e99 100644 --- a/instrumentation/rabbitmq-2.7/javaagent/src/test/groovy/RabbitMQTest.groovy +++ b/instrumentation/rabbitmq-2.7/javaagent/src/test/groovy/RabbitMQTest.groovy @@ -125,7 +125,7 @@ class RabbitMQTest extends AgentTestRunner { } } - def "test rabbit consume #messageCount messages"() { + def "test rabbit consume #messageCount messages and setTimestamp=#setTimestamp"() { setup: channel.exchangeDeclare(exchangeName, "direct", false) String queueName = (messageCount % 2 == 0) ? @@ -326,7 +326,7 @@ class RabbitMQTest extends AgentTestRunner { trace.span(index) { name spanName - switch (trace.span(index).attributes.get(AttributeKey.stringKey("amqp.command"))) { + switch (trace.span(index).attributes.get(AttributeKey.stringKey("rabbitmq.command"))) { case "basic.publish": kind PRODUCER break @@ -369,30 +369,30 @@ class RabbitMQTest extends AgentTestRunner { "${SemanticAttributes.MESSAGING_OPERATION.key}" operation } if (expectTimestamp) { - "record.queue_time_ms" { it instanceof Long && it >= 0 } + "rabbitmq.record.queue_time_ms" { it instanceof Long && it >= 0 } } - switch (attribute("amqp.command")) { + switch (attribute("rabbitmq.command")) { case "basic.publish": - "amqp.command" "basic.publish" - "amqp.routing_key" { + "rabbitmq.command" "basic.publish" + "rabbitmq.routing_key" { it == null || it == "some-routing-key" || it == "some-routing-queue" || it.startsWith("amq.gen-") } - "amqp.delivery_mode" { it == null || it == 2 } + "rabbitmq.delivery_mode" { it == null || it == 2 } "${SemanticAttributes.MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES.key}" Long break case "basic.get": - "amqp.command" "basic.get" + "rabbitmq.command" "basic.get" //TODO why this queue name is not a destination for semantic convention - "amqp.queue" { it == "some-queue" || it == "some-routing-queue" || it.startsWith("amq.gen-") } + "rabbitmq.queue" { it == "some-queue" || it == "some-routing-queue" || it.startsWith("amq.gen-") } "${SemanticAttributes.MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES.key}" { it == null || it instanceof Long } break case "basic.deliver": - "amqp.command" "basic.deliver" + "rabbitmq.command" "basic.deliver" "${SemanticAttributes.MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES.key}" Long break default: - "amqp.command" { it == null || it == resource } + "rabbitmq.command" { it == null || it == resource } } } } diff --git a/instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3HttpServerTracer.java b/instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3HttpServerTracer.java index 851ab198b9..fb78e60be2 100644 --- a/instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3HttpServerTracer.java +++ b/instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3HttpServerTracer.java @@ -57,7 +57,7 @@ public class Servlet3HttpServerTracer extends ServletHttpServerTracer, Thr Context context = (Context) serverRequest.attributes().get(AdviceUtils.CONTEXT_ATTRIBUTE); if (context != null) { Span span = Span.fromContext(context); - span.setAttribute("request.predicate", predicateString); + span.setAttribute("spring-webflux.request.predicate", predicateString); Span serverSpan = context.get(BaseTracer.CONTEXT_SERVER_SPAN_KEY); if (serverSpan != null) { diff --git a/instrumentation/spring/spring-webflux-5.0/javaagent/src/test/groovy/SpringWebfluxTest.groovy b/instrumentation/spring/spring-webflux-5.0/javaagent/src/test/groovy/SpringWebfluxTest.groovy index 1ee6bd8753..2506205d1b 100644 --- a/instrumentation/spring/spring-webflux-5.0/javaagent/src/test/groovy/SpringWebfluxTest.groovy +++ b/instrumentation/spring/spring-webflux-5.0/javaagent/src/test/groovy/SpringWebfluxTest.groovy @@ -83,13 +83,13 @@ class SpringWebfluxTest extends AgentTestRunner { attributes { if (annotatedMethod == null) { // Functional API - "request.predicate" "(GET && $urlPathWithVariables)" - "handler.type" { String tagVal -> + "spring-webflux.request.predicate" "(GET && $urlPathWithVariables)" + "spring-webflux.handler.type" { String tagVal -> return tagVal.contains(INNER_HANDLER_FUNCTION_CLASS_TAG_PREFIX) } } else { // Annotation API - "handler.type" TestController.getName() + "spring-webflux.handler.type" TestController.getName() } } } @@ -149,13 +149,13 @@ class SpringWebfluxTest extends AgentTestRunner { attributes { if (annotatedMethod == null) { // Functional API - "request.predicate" "(GET && $urlPathWithVariables)" - "handler.type" { String tagVal -> + "spring-webflux.request.predicate" "(GET && $urlPathWithVariables)" + "spring-webflux.handler.type" { String tagVal -> return tagVal.contains(INNER_HANDLER_FUNCTION_CLASS_TAG_PREFIX) } } else { // Annotation API - "handler.type" TestController.getName() + "spring-webflux.handler.type" TestController.getName() } } } @@ -237,13 +237,13 @@ class SpringWebfluxTest extends AgentTestRunner { attributes { if (annotatedMethod == null) { // Functional API - "request.predicate" "(GET && $urlPathWithVariables)" - "handler.type" { String tagVal -> + "spring-webflux.request.predicate" "(GET && $urlPathWithVariables)" + "spring-webflux.handler.type" { String tagVal -> return tagVal.contains(INNER_HANDLER_FUNCTION_CLASS_TAG_PREFIX) } } else { // Annotation API - "handler.type" TestController.getName() + "spring-webflux.handler.type" TestController.getName() } } } @@ -298,7 +298,7 @@ class SpringWebfluxTest extends AgentTestRunner { errored true errorEvent(ResponseStatusException, String) attributes { - "handler.type" "org.springframework.web.reactive.resource.ResourceWebHandler" + "spring-webflux.handler.type" "org.springframework.web.reactive.resource.ResourceWebHandler" } } } @@ -340,8 +340,8 @@ class SpringWebfluxTest extends AgentTestRunner { kind INTERNAL childOf span(0) attributes { - "request.predicate" "(POST && /echo)" - "handler.type" { String tagVal -> + "spring-webflux.request.predicate" "(POST && /echo)" + "spring-webflux.handler.type" { String tagVal -> return tagVal.contains(EchoHandlerFunction.getName()) } } @@ -399,13 +399,13 @@ class SpringWebfluxTest extends AgentTestRunner { attributes { if (annotatedMethod == null) { // Functional API - "request.predicate" "(GET && $urlPathWithVariables)" - "handler.type" { String tagVal -> + "spring-webflux.request.predicate" "(GET && $urlPathWithVariables)" + "spring-webflux.handler.type" { String tagVal -> return tagVal.contains(INNER_HANDLER_FUNCTION_CLASS_TAG_PREFIX) } } else { // Annotation API - "handler.type" TestController.getName() + "spring-webflux.handler.type" TestController.getName() } } } @@ -455,8 +455,8 @@ class SpringWebfluxTest extends AgentTestRunner { kind INTERNAL childOf span(0) attributes { - "request.predicate" "(GET && /double-greet-redirect)" - "handler.type" { String tagVal -> + "spring-webflux.request.predicate" "(GET && /double-greet-redirect)" + "spring-webflux.handler.type" { String tagVal -> return (tagVal.contains(INNER_HANDLER_FUNCTION_CLASS_TAG_PREFIX) || tagVal.contains("Lambda")) } @@ -484,8 +484,8 @@ class SpringWebfluxTest extends AgentTestRunner { kind INTERNAL childOf span(0) attributes { - "request.predicate" "(GET && /double-greet)" - "handler.type" { String tagVal -> + "spring-webflux.request.predicate" "(GET && /double-greet)" + "spring-webflux.handler.type" { String tagVal -> return tagVal.contains(INNER_HANDLER_FUNCTION_CLASS_TAG_PREFIX) } } @@ -536,13 +536,13 @@ class SpringWebfluxTest extends AgentTestRunner { attributes { if (annotatedMethod == null) { // Functional API - "request.predicate" "(GET && $urlPathWithVariables)" - "handler.type" { String tagVal -> + "spring-webflux.request.predicate" "(GET && $urlPathWithVariables)" + "spring-webflux.handler.type" { String tagVal -> return tagVal.contains(INNER_HANDLER_FUNCTION_CLASS_TAG_PREFIX) } } else { // Annotation API - "handler.type" TestController.getName() + "spring-webflux.handler.type" TestController.getName() } } } diff --git a/instrumentation/spring/spring-webflux-5.0/library/src/main/java/io/opentelemetry/instrumentation/spring/webflux/client/SpringWebfluxHttpClientTracer.java b/instrumentation/spring/spring-webflux-5.0/library/src/main/java/io/opentelemetry/instrumentation/spring/webflux/client/SpringWebfluxHttpClientTracer.java index 3458d9207f..f5dfc68056 100644 --- a/instrumentation/spring/spring-webflux-5.0/library/src/main/java/io/opentelemetry/instrumentation/spring/webflux/client/SpringWebfluxHttpClientTracer.java +++ b/instrumentation/spring/spring-webflux-5.0/library/src/main/java/io/opentelemetry/instrumentation/spring/webflux/client/SpringWebfluxHttpClientTracer.java @@ -33,8 +33,8 @@ public class SpringWebfluxHttpClientTracer public void onCancel(Context context) { Span span = Span.fromContext(context); - span.setAttribute("event", "cancelled"); - span.setAttribute("message", "The subscription was cancelled"); + span.setAttribute("spring-webflux.event", "cancelled"); + span.setAttribute("spring-webflux.message", "The subscription was cancelled"); } @Override diff --git a/instrumentation/spring/spring-webmvc-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/springwebmvc/SpringWebMvcTracer.java b/instrumentation/spring/spring-webmvc-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/springwebmvc/SpringWebMvcTracer.java index cc08381619..b3e7b2f40a 100644 --- a/instrumentation/spring/spring-webmvc-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/springwebmvc/SpringWebMvcTracer.java +++ b/instrumentation/spring/spring-webmvc-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/springwebmvc/SpringWebMvcTracer.java @@ -91,10 +91,10 @@ public class SpringWebMvcTracer extends BaseTracer { } private void onRender(Span span, ModelAndView mv) { - span.setAttribute("view.name", mv.getViewName()); + span.setAttribute("spring-webmvc.view.name", mv.getViewName()); View view = mv.getView(); if (view != null) { - span.setAttribute("view.type", spanNameForClass(view.getClass())); + span.setAttribute("spring-webmvc.view.type", spanNameForClass(view.getClass())); } } diff --git a/instrumentation/spring/spring-webmvc-3.1/javaagent/src/test/groovy/test/boot/SpringBootBasedTest.groovy b/instrumentation/spring/spring-webmvc-3.1/javaagent/src/test/groovy/test/boot/SpringBootBasedTest.groovy index 54192e6d5b..af16fd7c6b 100644 --- a/instrumentation/spring/spring-webmvc-3.1/javaagent/src/test/groovy/test/boot/SpringBootBasedTest.groovy +++ b/instrumentation/spring/spring-webmvc-3.1/javaagent/src/test/groovy/test/boot/SpringBootBasedTest.groovy @@ -150,7 +150,7 @@ class SpringBootBasedTest extends HttpServerTest kind INTERNAL errored false attributes { - "view.type" RedirectView.simpleName + "spring-webmvc.view.type" RedirectView.simpleName } } } diff --git a/instrumentation/spymemcached-2.12/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spymemcached/CompletionListener.java b/instrumentation/spymemcached-2.12/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spymemcached/CompletionListener.java index 60063dad3c..7c62f80e21 100644 --- a/instrumentation/spymemcached-2.12/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spymemcached/CompletionListener.java +++ b/instrumentation/spymemcached-2.12/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spymemcached/CompletionListener.java @@ -14,8 +14,8 @@ import net.spy.memcached.MemcachedConnection; public abstract class CompletionListener { - static final String DB_COMMAND_CANCELLED = "db.command.cancelled"; - static final String MEMCACHED_RESULT = "memcaced.result"; + static final String DB_COMMAND_CANCELLED = "lettuce.command.cancelled"; + static final String MEMCACHED_RESULT = "memcached.result"; static final String HIT = "hit"; static final String MISS = "miss";