Monitoring Distributed Traces with Kieker Hannes Strubel June 1, 2017 Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 1 / 33
1. Motivation 2. Foundations 3. Related Work 4. Approach 5. Evaluation 6. Conclusion 7. Future Work Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 2 / 33
Motivation Motivation Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 3 / 33
Goals Motivation ◮ Design a concept for monitoring distributed traces ◮ Implement the monitoring ◮ Implement the trace reconstruction ◮ Evaluate the concept Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 4 / 33
Outline Motivation 1. Motivation 2. Foundations 3. Related Work 4. Approach 5. Evaluation 6. Conclusion 7. Future Work Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 5 / 33
1. Motivation 2. Foundations 3. Related Work 4. Approach 5. Evaluation 6. Conclusion 7. Future Work Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 6 / 33
Foundation Foundations ◮ Kieker Monitoring Framework ◮ AspectJ ◮ TeeTime Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 7 / 33
Trace Reconstruction Foundations BeforeOperationEvent main() BeforeOperationEvent StringBuilder.append(..) AfterOperationEvent StringBuilder.append(..) BeforeOperationEvent StringBuilder.toString() AfterOperationEvent StringBuilder.toString() BeforeOperationEvent PrintStream.println(..) AfterOperationEvent PrintStream.println(..) AfterOperationEvent main() Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 8 / 33
Communication Technologies Foundations ◮ REST - Jax-RS ◮ SOAP - Jax-WS ◮ RPC - RMI ◮ Message-oriented middleware - Apache ActiveMQ Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 9 / 33
Approaches for Tracing Foundations ◮ Metadata propagation ◮ Schema-based ◮ Black-box inference RR Sambasivan, R Fonseca, I Shafer, GR Ganger - So, you want to trace your distributed system? Key design insights from years of practical experience 2014 Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 10 / 33
1. Motivation 2. Foundations 3. Related Work 4. Approach 5. Evaluation 6. Conclusion 7. Future Work Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 11 / 33
Monitoring RPC Related Work ◮ Exchange trace ID ◮ Generate records for sending and receiving a message ◮ Reconstruct traces with the additional records N. Matthiessen - Monitoring of Remote Procedure Calls - Concepts and Evaluation 2014 Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 12 / 33
SOAP Probe Related Work ◮ Transfer information (e.g. trace ID, order ID) ◮ Modify SOAP header ◮ Continue client trace on server-side ◮ Use Apace CXF Interceptor Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 13 / 33
Tracing Tools Related Work Google’s Dapper A Large Scale Distributed Systems Tracing Infrastructure X-Trace Network diagnostic tool MagPie Modelling and performance-aware systems Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 14 / 33
Tracing Tools Related Work Twitter’s OpenZipkin based on Google’s Dapper paper a a BH Sigelman, LA Barroso, M Burrows, P Stephenson - Dapper, a Large-Scale Distributed Systems Tracing Infrastructure 2010 Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 15 / 33
1. Motivation 2. Foundations 3. Related Work 4. Approach 5. Evaluation 6. Conclusion 7. Future Work Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 16 / 33
Monitor TCP events Approach Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 17 / 33
Aggregate TCP events Approach Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 18 / 33
Merge Traces Approach Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 19 / 33
1. Motivation 2. Foundations 3. Related Work 4. Approach 5. Evaluation 6. Conclusion 7. Future Work Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 20 / 33
Goals of the evaluation Evaluation ◮ Monitor and reconstruct TCP communication ◮ Monitor REST, SOAP , RMI and reconstruct distributed traces Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 21 / 33
Pointcuts for a TCP communication Evaluation Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 22 / 33
Pointcuts for a TCP communication Evaluation Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 23 / 33
TCP reduced call-tree Evaluation Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 24 / 33
REST Evaluation GET method from a restful service 1 @GET 2 @Produces( MediaType . TEXT_PLAIN) 3 public String halloPlainText ( ) { 4 return " Hello World " ; 5 } Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 25 / 33
Reduced call-tree Evaluation Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 26 / 33
SOAP Evaluation WebMethod from a SOAP webservice 1 @WebMethod 2 public String getHelloAsString ( ) { 3 return " Hello World " ; 4 } Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 27 / 33
RMI Evaluation Interface for an example RMI service 1 public i n t e r f a c e Hello extends Remote { 2 String sayHello ( ) throws RemoteException ; 3 } Implementation for an example RMI service 1 public class Server implements Hello { 2 public String sayHello ( ) throws RemoteException { 3 return " Hello world ! " ; 4 } 5 } Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 28 / 33
1. Motivation 2. Foundations 3. Related Work 4. Approach 5. Evaluation 6. Conclusion 7. Future Work Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 29 / 33
Conclusion Conclusion ◮ TCP probes and reconstruction of asynchronous trace works ◮ Probes do not apply for other communications ◮ therefore, probes for every implementation required ◮ AspectJ is maybe not adequate ◮ IP address is not a proper identifier in the application-layer Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 30 / 33
1. Motivation 2. Foundations 3. Related Work 4. Approach 5. Evaluation 6. Conclusion 7. Future Work Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 31 / 33
New Approach Future Work Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 32 / 33
Recommend
More recommend