You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by ni...@apache.org on 2018/01/09 07:39:55 UTC

[incubator-servicecomb-java-chassis] 03/04: SCB-172 fix integration test for upgradeing to zipkin2

This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git

commit ecdd337f01dad400c7df75785b619e3cf5ce082a
Author: Yang, Bo <ya...@huawei.com>
AuthorDate: Fri Jan 5 18:30:50 2018 +0800

    SCB-172 fix integration test for upgradeing to zipkin2
    
    Use V2 http api to fetch tracing data.
    Use containsInAnyOrder for comparing results because json data doesn't
    ensure order on marshaling/unmarshaling, and we don't care the order here.
---
 integration-tests/pom.xml                          |  7 +++++-
 integration-tests/test-common/pom.xml              |  4 +++
 .../servicecomb/tests/tracing/TracingTestBase.java | 29 ++++++++++++++--------
 3 files changed, 28 insertions(+), 12 deletions(-)

diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index 3d021ac..e9f3d4f 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -55,9 +55,14 @@
         <type>test-jar</type>
       </dependency>
       <dependency>
+        <groupId>io.zipkin.zipkin2</groupId>
+        <artifactId>zipkin</artifactId>
+        <version>2.4.2</version>
+      </dependency>
+      <dependency>
         <groupId>io.zipkin.java</groupId>
         <artifactId>zipkin-junit</artifactId>
-        <version>1.24.0</version>
+        <version>2.4.2</version>
         <scope>test</scope>
       </dependency>
       <dependency>
diff --git a/integration-tests/test-common/pom.xml b/integration-tests/test-common/pom.xml
index 9161ca8..47ca056 100644
--- a/integration-tests/test-common/pom.xml
+++ b/integration-tests/test-common/pom.xml
@@ -51,6 +51,10 @@
       <artifactId>zipkin-junit</artifactId>
     </dependency>
     <dependency>
+      <groupId>io.zipkin.zipkin2</groupId>
+      <artifactId>zipkin</artifactId>
+    </dependency>
+    <dependency>
       <groupId>com.squareup.okhttp3</groupId>
       <artifactId>okhttp</artifactId>
       <scope>test</scope>
diff --git a/integration-tests/test-common/src/test/java/io/servicecomb/tests/tracing/TracingTestBase.java b/integration-tests/test-common/src/test/java/io/servicecomb/tests/tracing/TracingTestBase.java
index 52b511d..a5350cd 100644
--- a/integration-tests/test-common/src/test/java/io/servicecomb/tests/tracing/TracingTestBase.java
+++ b/integration-tests/test-common/src/test/java/io/servicecomb/tests/tracing/TracingTestBase.java
@@ -19,7 +19,7 @@ package io.servicecomb.tests.tracing;
 
 import static io.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_TRACING_COLLECTOR_ADDRESS;
 import static io.servicecomb.serviceregistry.client.LocalServiceRegistryClientImpl.LOCAL_REGISTRY_FILE_KEY;
-import static org.hamcrest.collection.IsIterableContainingInOrder.contains;
+import static org.hamcrest.collection.IsIterableContainingInAnyOrder.containsInAnyOrder;
 import static org.hamcrest.core.Is.is;
 import static org.junit.Assert.assertThat;
 import static org.springframework.http.HttpStatus.OK;
@@ -28,6 +28,7 @@ import java.lang.invoke.MethodHandles;
 import java.net.URL;
 import java.util.Collection;
 import java.util.List;
+import java.util.ArrayList;
 import java.util.stream.Collectors;
 
 import org.junit.BeforeClass;
@@ -39,8 +40,8 @@ import org.springframework.web.client.RestTemplate;
 
 import io.servicecomb.tests.EmbeddedAppender;
 import io.servicecomb.tests.Log4jConfig;
-import zipkin.Codec;
-import zipkin.Span;
+import zipkin2.codec.SpanBytesDecoder;
+import zipkin2.Span;
 import zipkin.junit.ZipkinRule;
 
 public class TracingTestBase {
@@ -74,27 +75,33 @@ public class TracingTestBase {
         .map(this::extractIds)
         .collect(Collectors.toList());
 
-    String url = zipkin.httpUrl() + "/api/v1/trace/{traceId}";
+    String url = zipkin.httpUrl() + "/api/v2/trace/{traceId}";
+    log.info("rest url:" + url);
     ResponseEntity<String> responseEntity = restTemplate.getForEntity(url, String.class, traceId(loggedIds));
 
     assertThat(responseEntity.getStatusCode(), is(OK));
     String body = responseEntity.getBody();
     log.info("Received trace json: {}", body);
-    List<Span> spans = Codec.JSON.readSpans(body.getBytes());
+    List<Span> spans = new ArrayList<Span>();
+    SpanBytesDecoder.JSON_V2.decodeList(body.getBytes(), spans);
 
     List<String> tracedValues = tracedValues(spans);
     tracedValues.forEach(value -> log.info("Received value {}", value));
-    assertThat(tracedValues, contains(values));
+    log.info("values: " + String.join(",",values));
+    assertThat(tracedValues, containsInAnyOrder(values));
   }
 
   private List<String> tracedValues(List<Span> spans) {
     return spans.stream()
-        .filter(span -> span.binaryAnnotations != null)
-        .map(span -> span.binaryAnnotations)
+        .filter(span -> span.tags() != null)
+        .map(span -> span.tags().entrySet())
         .flatMap(Collection::stream)
-        .filter(span -> "call.path".equals(span.key) || "http.path".equals(span.key) || "http.status_code".equals(span.key))
-        .filter(span -> span.value != null)
-        .map(annotation -> new String(annotation.value))
+        .filter(span -> "call.path".equals(span.getKey()) || "http.path".equals(span.getKey()) || "http.status_code"
+            .equals
+            (span
+        .getKey()))
+        .filter(span -> span.getValue() != null)
+        .map(annotation -> new String(annotation.getValue()))
         .distinct()
         .collect(Collectors.toList());
   }

-- 
To stop receiving notification emails like this one, please contact
"commits@servicecomb.apache.org" <co...@servicecomb.apache.org>.