Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion backend/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@
<dependency>
<groupId>io.jaegertracing</groupId>
<artifactId>jaeger-client</artifactId>
<version>0.32.0</version>
<version>1.5.0</version>
</dependency>

</dependencies>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<String, String> headers = new HashMap<String, String>();
Enumeration<String> headerNames = req.getHeaderNames();
Expand All @@ -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() {
Expand Down