diff --git a/backend/pom.xml b/backend/pom.xml index fe699f2..fd3f4e5 100644 --- a/backend/pom.xml +++ b/backend/pom.xml @@ -114,7 +114,7 @@ io.jaegertracing jaeger-client - 0.32.0 + 1.5.0 diff --git a/backend/src/main/java/com/redhat/examples/backend/BackendHttpServlet.java b/backend/src/main/java/com/redhat/examples/backend/BackendHttpServlet.java index d37f4fa..8fab3d8 100644 --- a/backend/src/main/java/com/redhat/examples/backend/BackendHttpServlet.java +++ b/backend/src/main/java/com/redhat/examples/backend/BackendHttpServlet.java @@ -42,12 +42,13 @@ @WebServlet(urlPatterns = {"/api/backend"}) public class BackendHttpServlet extends HttpServlet { + private static final long serialVersionUID = 4006299593098166183L; + private Tracer tracer = TracerResolver.resolveTracer(); @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - //Place the HTTP headers in a Hashmap final HashMap headers = new HashMap(); Enumeration headerNames = req.getHeaderNames(); @@ -56,33 +57,36 @@ protected void doGet(HttpServletRequest req, HttpServletResponse resp) String value = req.getHeader(name); headers.put(name, value); } + //Extract the Parent Span from the headers SpanContext parentSpan = tracer .extract(Format.Builtin.HTTP_HEADERS, - new TextMapExtractAdapter(headers)); + new TextMapAdapter(headers)); //Start a new Span as a Child of the Parent Span - Scope scope = tracer + Span span = tracer .buildSpan("backend-servlet") .asChildOf(parentSpan) - .startActive(true); - - resp.setContentType("application/json"); + .start(); - ObjectMapper mapper = new ObjectMapper(); - String greeting = req.getParameter("greeting"); + try (Scope scope = tracer.scopeManager().activate(span)) { + resp.setContentType("application/json"); - ResponseDTO response = new ResponseDTO(); - response.setGreeting(greeting + - " from cluster Backend"); - response.setTime(System.currentTimeMillis()); - response.setIp(getIp()); - - PrintWriter out = resp.getWriter(); - mapper.writerWithDefaultPrettyPrinter() - .writeValue(out, response); - - scope.span().finish(); + ObjectMapper mapper = new ObjectMapper(); + String greeting = req.getParameter("greeting"); + + ResponseDTO response = new ResponseDTO(); + response.setGreeting(greeting + + " from cluster Backend"); + response.setTime(System.currentTimeMillis()); + response.setIp(getIp()); + + PrintWriter out = resp.getWriter(); + mapper.writerWithDefaultPrettyPrinter() + .writeValue(out, response); + } finally { + span.finish(); + } } private String getIp() {