From 632e6cf1da0c43b14a433e1002fcc092d618697a Mon Sep 17 00:00:00 2001 From: Sergei Malafeev Date: Fri, 20 Jul 2018 14:50:13 +0800 Subject: [PATCH] add original_request tag Signed-off-by: Sergei Malafeev --- pom.xml | 9 ++++--- .../contrib/aws/SpanDecorator.java | 1 + .../aws/TracingRequestHandlerTest.java | 26 +++++++++++++++---- 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index b4b5391..2fdfae2 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,9 @@ the License. --> - + 4.0.0 io.opentracing.contrib opentracing-aws-sdk @@ -74,7 +76,7 @@ com.amazonaws aws-java-sdk - 1.11.340 + 1.11.371 @@ -124,6 +126,7 @@ + org.apache.maven.plugins maven-release-plugin 2.5.3 @@ -226,7 +229,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.0.0 + 3.0.1 false diff --git a/src/main/java/io/opentracing/contrib/aws/SpanDecorator.java b/src/main/java/io/opentracing/contrib/aws/SpanDecorator.java index 9ae7923..cbe45b4 100644 --- a/src/main/java/io/opentracing/contrib/aws/SpanDecorator.java +++ b/src/main/java/io/opentracing/contrib/aws/SpanDecorator.java @@ -31,6 +31,7 @@ static void onRequest(Request request, Span span) { Tags.COMPONENT.set(span, COMPONENT_NAME); Tags.HTTP_METHOD.set(span, request.getHttpMethod().name()); Tags.HTTP_URL.set(span, request.getEndpoint().toString()); + span.setTag("original_request", request.getOriginalRequest().getClass().getSimpleName()); } static void onResponse(Response response, Span span) { diff --git a/src/test/java/io/opentracing/contrib/aws/TracingRequestHandlerTest.java b/src/test/java/io/opentracing/contrib/aws/TracingRequestHandlerTest.java index b6fefe6..2595335 100644 --- a/src/test/java/io/opentracing/contrib/aws/TracingRequestHandlerTest.java +++ b/src/test/java/io/opentracing/contrib/aws/TracingRequestHandlerTest.java @@ -17,7 +17,6 @@ import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; @@ -70,7 +69,22 @@ public void after() throws Exception { } @Test - public void two_requests() throws Exception { + public void with_error() { + AmazonDynamoDB dbClient = buildClient(); + createTable(dbClient, "table-1"); + createTable(dbClient, "table-1"); + + List spans = mockTracer.finishedSpans(); + assertEquals(2, spans.size()); + + assertEquals(1, spans.get(1).logEntries().size()); + assertEquals(true, spans.get(1).tags().get(Tags.ERROR.getKey())); + + assertNull(mockTracer.activeSpan()); + } + + @Test + public void two_requests() { AmazonDynamoDB dbClient = buildClient(); createTable(dbClient, "twoRequests-1"); createTable(dbClient, "twoRequests-2"); @@ -88,7 +102,7 @@ public void two_requests() throws Exception { public void two_requests_with_parent() { AmazonDynamoDB dbClient = buildClient(); - try (Scope parent = mockTracer.buildSpan("parent-sync").startActive(true)) { + try (Scope ignore = mockTracer.buildSpan("parent-sync").startActive(true)) { createTable(dbClient, "with-parent-1"); createTable(dbClient, "with-parent-2"); } @@ -118,7 +132,7 @@ public void two_requests_with_parent() { public void async_requests_with_parent() throws Exception { AmazonDynamoDBAsync dbClient = buildAsyncClient(); - try (Scope parent = mockTracer.buildSpan("parent-async").startActive(true)) { + try (Scope ignore = mockTracer.buildSpan("parent-async").startActive(true)) { Future createTableResultFuture = createTableAsync(dbClient, "with-async-parent-1"); Future createTableResultFuture2 = createTableAsync(dbClient, @@ -172,9 +186,11 @@ private void checkSpans(List mockSpans) { for (MockSpan mockSpan : mockSpans) { assertEquals(Tags.SPAN_KIND_CLIENT, mockSpan.tags().get(Tags.SPAN_KIND.getKey())); assertEquals(SpanDecorator.COMPONENT_NAME, mockSpan.tags().get(Tags.COMPONENT.getKey())); + assertNull(mockSpan.tags().get(Tags.ERROR.getKey())); + assertEquals(0, mockSpan.logEntries().size()); assertEquals(0, mockSpan.generatedErrors().size()); String operationName = mockSpan.operationName(); - assertTrue(operationName.equals("AmazonDynamoDBv2")); + assertEquals("AmazonDynamoDBv2", operationName); } }