Monitoring Distributed Traces with Kieker Hannes Strubel June 1, - - PowerPoint PPT Presentation

monitoring distributed traces with kieker
SMART_READER_LITE
LIVE PREVIEW

Monitoring Distributed Traces with Kieker Hannes Strubel June 1, - - PowerPoint PPT Presentation

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.


slide-1
SLIDE 1

Monitoring Distributed Traces with Kieker

Hannes Strubel June 1, 2017

Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 1 / 33

slide-2
SLIDE 2
  • 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

slide-3
SLIDE 3

Motivation

Motivation Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 3 / 33

slide-4
SLIDE 4

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

slide-5
SLIDE 5

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

slide-6
SLIDE 6
  • 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

slide-7
SLIDE 7

Foundation

Foundations

◮ Kieker Monitoring Framework ◮ AspectJ ◮ TeeTime

Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 7 / 33

slide-8
SLIDE 8

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

slide-9
SLIDE 9

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

slide-10
SLIDE 10

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

slide-11
SLIDE 11
  • 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

slide-12
SLIDE 12

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

slide-13
SLIDE 13

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

slide-14
SLIDE 14

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

slide-15
SLIDE 15

Tracing Tools

Related Work

Twitter’s OpenZipkin

based on Google’s Dapper papera

aBH 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

slide-16
SLIDE 16
  • 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

slide-17
SLIDE 17

Monitor TCP events

Approach Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 17 / 33

slide-18
SLIDE 18

Aggregate TCP events

Approach Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 18 / 33

slide-19
SLIDE 19

Merge Traces

Approach Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 19 / 33

slide-20
SLIDE 20
  • 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

slide-21
SLIDE 21

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

slide-22
SLIDE 22

Pointcuts for a TCP communication

Evaluation Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 22 / 33

slide-23
SLIDE 23

Pointcuts for a TCP communication

Evaluation Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 23 / 33

slide-24
SLIDE 24

TCP reduced call-tree

Evaluation Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 24 / 33

slide-25
SLIDE 25

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

slide-26
SLIDE 26

Reduced call-tree

Evaluation Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 26 / 33

slide-27
SLIDE 27

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

slide-28
SLIDE 28

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

slide-29
SLIDE 29
  • 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

slide-30
SLIDE 30

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

slide-31
SLIDE 31
  • 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

slide-32
SLIDE 32

New Approach

Future Work Hannes Strubel Monitoring Distributed Traces with Kieker June 1, 2017 32 / 33