|
15 | 15 | import static org.junit.jupiter.api.Assertions.assertEquals;
|
16 | 16 | import static org.junit.jupiter.api.Assertions.assertFalse;
|
17 | 17 | import static org.junit.jupiter.api.Assertions.assertNotNull;
|
| 18 | +import static org.junit.jupiter.api.Assertions.assertNull; |
18 | 19 | import static org.junit.jupiter.api.Assertions.assertTrue;
|
19 | 20 | import static org.junit.jupiter.api.Assertions.fail;
|
20 | 21 |
|
@@ -557,6 +558,79 @@ void testAsyncClientTracing() {
|
557 | 558 | assertNotNull(clientServer.get("attr_user_agent.original"));
|
558 | 559 | }
|
559 | 560 |
|
| 561 | + @Test |
| 562 | + void testClientTracingWithInterceptor() { |
| 563 | + given() |
| 564 | + .when().get("/client/pong-intercept/one") |
| 565 | + .then() |
| 566 | + .statusCode(200) |
| 567 | + .body(containsString("one")); |
| 568 | + |
| 569 | + await().atMost(5, SECONDS).until(() -> getSpans().size() == 4); |
| 570 | + List<Map<String, Object>> spans = getSpans(); |
| 571 | + assertEquals(4, spans.size()); |
| 572 | + assertEquals(1, spans.stream().map(map -> map.get("traceId")).collect(toSet()).size()); |
| 573 | + |
| 574 | + Map<String, Object> server = getSpanByKindAndParentId(spans, SERVER, "0000000000000000"); |
| 575 | + assertEquals(SERVER.toString(), server.get("kind")); |
| 576 | + verifyResource(server); |
| 577 | + assertEquals("GET /client/pong-intercept/{message}", server.get("name")); |
| 578 | + assertEquals(SERVER.toString(), server.get("kind")); |
| 579 | + assertTrue((Boolean) server.get("ended")); |
| 580 | + assertEquals(SpanId.getInvalid(), server.get("parent_spanId")); |
| 581 | + assertEquals(TraceId.getInvalid(), server.get("parent_traceId")); |
| 582 | + assertFalse((Boolean) server.get("parent_valid")); |
| 583 | + assertFalse((Boolean) server.get("parent_remote")); |
| 584 | + assertEquals("GET", server.get("attr_http.method")); |
| 585 | + assertEquals("/client/pong-intercept/one", server.get("attr_http.target")); |
| 586 | + assertEquals(pathParamUrl.getHost(), server.get("attr_net.host.name")); |
| 587 | + assertEquals(pathParamUrl.getPort(), Integer.valueOf((String) server.get("attr_net.host.port"))); |
| 588 | + assertEquals("http", server.get("attr_http.scheme")); |
| 589 | + assertEquals("/client/pong-intercept/{message}", server.get("attr_http.route")); |
| 590 | + assertEquals("200", server.get("attr_http.status_code")); |
| 591 | + assertNotNull(server.get("attr_http.client_ip")); |
| 592 | + assertNotNull(server.get("attr_user_agent.original")); |
| 593 | + |
| 594 | + Map<String, Object> fromInterceptor = getSpanByKindAndParentId(spans, INTERNAL, server.get("spanId")); |
| 595 | + assertEquals("PingPongRestClient.pingpongIntercept", fromInterceptor.get("name")); |
| 596 | + assertEquals(INTERNAL.toString(), fromInterceptor.get("kind")); |
| 597 | + assertTrue((Boolean) fromInterceptor.get("ended")); |
| 598 | + assertTrue((Boolean) fromInterceptor.get("parent_valid")); |
| 599 | + assertFalse((Boolean) fromInterceptor.get("parent_remote")); |
| 600 | + assertNull(fromInterceptor.get("attr_http.method")); |
| 601 | + assertNull(fromInterceptor.get("attr_http.status_code")); |
| 602 | + assertEquals("one", fromInterceptor.get("attr_message")); |
| 603 | + |
| 604 | + Map<String, Object> client = getSpanByKindAndParentId(spans, CLIENT, fromInterceptor.get("spanId")); |
| 605 | + assertEquals("GET", client.get("name")); |
| 606 | + assertEquals(SpanKind.CLIENT.toString(), client.get("kind")); |
| 607 | + assertTrue((Boolean) client.get("ended")); |
| 608 | + assertTrue((Boolean) client.get("parent_valid")); |
| 609 | + assertFalse((Boolean) client.get("parent_remote")); |
| 610 | + assertEquals("GET", client.get("attr_http.method")); |
| 611 | + assertEquals("http://localhost:8081/client/pong/one", client.get("attr_http.url")); |
| 612 | + assertEquals("200", client.get("attr_http.status_code")); |
| 613 | + |
| 614 | + Map<String, Object> clientServer = getSpanByKindAndParentId(spans, SERVER, client.get("spanId")); |
| 615 | + assertEquals(SERVER.toString(), clientServer.get("kind")); |
| 616 | + verifyResource(clientServer); |
| 617 | + assertEquals("GET /client/pong/{message}", clientServer.get("name")); |
| 618 | + assertEquals(SERVER.toString(), clientServer.get("kind")); |
| 619 | + assertTrue((Boolean) clientServer.get("ended")); |
| 620 | + assertTrue((Boolean) clientServer.get("parent_valid")); |
| 621 | + assertTrue((Boolean) clientServer.get("parent_remote")); |
| 622 | + assertEquals("GET", clientServer.get("attr_http.method")); |
| 623 | + assertEquals("/client/pong/one", clientServer.get("attr_http.target")); |
| 624 | + assertEquals(pathParamUrl.getHost(), server.get("attr_net.host.name")); |
| 625 | + assertEquals(pathParamUrl.getPort(), Integer.valueOf((String) server.get("attr_net.host.port"))); |
| 626 | + assertEquals("http", clientServer.get("attr_http.scheme")); |
| 627 | + assertEquals("/client/pong/{message}", clientServer.get("attr_http.route")); |
| 628 | + assertEquals("200", clientServer.get("attr_http.status_code")); |
| 629 | + assertNotNull(clientServer.get("attr_http.client_ip")); |
| 630 | + assertNotNull(clientServer.get("attr_user_agent.original")); |
| 631 | + assertEquals(clientServer.get("parentSpanId"), client.get("spanId")); |
| 632 | + } |
| 633 | + |
560 | 634 | @Test
|
561 | 635 | void testTemplatedPathOnClass() {
|
562 | 636 | given()
|
|
0 commit comments