experiences with tracing causality in networked services
play

Experiences with Tracing Causality in Networked Services - PowerPoint PPT Presentation

Experiences with Tracing Causality in Networked Services Rodrigo Fonseca, Brown Michael Freedman, Princeton George Porter, UCSD April 2010 INM/WREN San


  1. Experiences ¡with ¡Tracing ¡Causality ¡in ¡ Networked ¡Services ¡ Rodrigo ¡Fonseca, ¡Brown ¡ Michael ¡Freedman, ¡Princeton ¡ George ¡Porter, ¡UCSD ¡ April ¡2010 ¡ ¡ INM/WREN ¡ San ¡Jose, ¡CA ¡

  2. Which ¡way ¡to ¡Bangalore? ¡

  3. TroubleshooOng ¡Networked ¡Systems ¡ • Hard ¡to ¡develop, ¡debug, ¡deploy, ¡troubleshoot ¡ • No ¡standard ¡way ¡to ¡integrate ¡debugging, ¡ monitoring, ¡diagnosOcs ¡

  4. Status ¡quo : ¡device ¡centric ¡ Web ¡1 ¡ Load ¡ ¡ Balancer ¡ Firewall ¡ Database ¡ ... ¡ ¡ ... ¡ ... ¡ ¡ ... ¡ 72.30.107.159 ¡-­‑ ¡-­‑ ¡[20/Aug/2006:09:12:58 ¡-­‑0700] ¡"GET ¡/ga ¡ [04:03:23 ¡2006] ¡[noOce] ¡Dispatch ¡s1... ¡ 65.54.188.26 ¡-­‑ ¡-­‑ ¡[20/Aug/2006:09:13:32 ¡-­‑0700] ¡"GET ¡/rob ¡ ... ¡ [04:03:23 ¡2006] ¡[noOce] ¡Dispatch ¡s2... ¡ 65.54.188.26 ¡-­‑ ¡-­‑ ¡[20/Aug/2006:09:13:32 ¡-­‑0700] ¡"GET ¡/rob ¡ ... ¡ [04:04:18 ¡2006] ¡[noOce] ¡Dispatch ¡s3... ¡ 65.54.188.26 ¡-­‑ ¡-­‑ ¡[20/Aug/2006:09:13:32 ¡-­‑0700] ¡"GET ¡/gal ¡ 28 ¡03:55:38 ¡PM ¡fire... ¡ [04:07:03 ¡2006] ¡[noOce] ¡Dispatch ¡s1... ¡ 65.54.188.26 ¡-­‑ ¡-­‑ ¡[20/Aug/2006:09:13:32 ¡-­‑0700] ¡"GET ¡/gal ¡ 28 ¡03:55:38 ¡PM ¡fire... ¡ [04:10:55 ¡2006] ¡[noOce] ¡Dispatch ¡s2... ¡ 66.249.72.163 ¡-­‑ ¡-­‑ ¡[20/Aug/2006:09:15:04 ¡-­‑0700] ¡"GET ¡/ga ¡ 28 ¡03:55:38 ¡PM ¡fire... ¡ [04:03:24 ¡2006] ¡[noOce] ¡Dispatch ¡s3... ¡ 66.249.72.163 ¡-­‑ ¡-­‑ ¡[20/Aug/2006:09:15:07 ¡-­‑0700] ¡"GET ¡/ga ¡ 28 ¡03:55:38 ¡PM ¡fire... ¡ [04:04:47 ¡2006] ¡[crit] ¡Server ¡s3 ¡down... ¡ 66.249.72.163 ¡-­‑ ¡-­‑ ¡[20/Aug/2006:09:15:10 ¡-­‑0700] ¡"GET ¡/ro ¡ 28 ¡03:55:38 ¡PM ¡fire... ¡ ... ¡ 66.249.72.163 ¡-­‑ ¡-­‑ ¡[20/Aug/2006:09:15:11 ¡-­‑0700] ¡"GET ¡/ga ¡ 28 ¡03:55:38 ¡PM ¡fire... ¡ ... ¡ ... ¡ 28 ¡03:55:38 ¡PM ¡fire... ¡ ... ¡ ... ¡ 28 ¡03:55:39 ¡PM ¡fire... ¡ ... ¡ 28 ¡03:55:39 ¡PM ¡fire... ¡ LOG: ¡ ¡statement: ¡select ¡oid... ¡ 28 ¡03:55:39 ¡PM ¡fire... ¡ LOG: ¡ ¡statement: ¡SELECT ¡COU... ¡ 28 ¡03:55:39 ¡PM ¡fire... ¡ LOG: ¡ ¡statement: ¡SELECT ¡g2_... ¡ 28 ¡03:55:39 ¡PM ¡fire... ¡ LOG: ¡ ¡statement: ¡select ¡oid... ¡ 28 ¡03:55:39 ¡PM ¡fire... ¡ LOG: ¡ ¡statement: ¡SELECT ¡COU... ¡ 28 ¡03:55:39 ¡PM ¡fire... ¡ LOG: ¡ ¡statement: ¡SELECT ¡g2_... ¡ 28 ¡03:55:39 ¡PM ¡fire... ¡ LOG: ¡ ¡statement: ¡select ¡oid... ¡ ... ¡ Web ¡2 ¡ LOG: ¡ ¡statement: ¡SELECT ¡COU... ¡ ... ¡ ¡ LOG: ¡ ¡statement: ¡SELECT ¡g2_... ¡ ... ¡ ¡ LOG: ¡ ¡statement: ¡select ¡oid... ¡ 72.30.107.159 ¡-­‑ ¡-­‑ ¡[20/Aug/2006:09:12:58 ¡-­‑0700] ¡"GET ¡/ga ¡ LOG: ¡ ¡statement: ¡select ¡oid... ¡ 65.54.188.26 ¡-­‑ ¡-­‑ ¡[20/Aug/2006:09:13:32 ¡-­‑0700] ¡"GET ¡/rob ¡ LOG: ¡ ¡statement: ¡SELECT ¡COU... ¡ 65.54.188.26 ¡-­‑ ¡-­‑ ¡[20/Aug/2006:09:13:32 ¡-­‑0700] ¡"GET ¡/rob ¡ LOG: ¡ ¡statement: ¡SELECT ¡g2_... ¡ 65.54.188.26 ¡-­‑ ¡-­‑ ¡[20/Aug/2006:09:13:32 ¡-­‑0700] ¡"GET ¡/gal ¡ LOG: ¡ ¡statement: ¡select ¡oid... ¡ 65.54.188.26 ¡-­‑ ¡-­‑ ¡[20/Aug/2006:09:13:32 ¡-­‑0700] ¡"GET ¡/gal ¡ LOG: ¡ ¡statement: ¡SELECT ¡COU... ¡ 66.249.72.163 ¡-­‑ ¡-­‑ ¡[20/Aug/2006:09:15:04 ¡-­‑0700] ¡"GET ¡/ga ¡ LOG: ¡ ¡statement: ¡SELECT ¡g2_... ¡ 66.249.72.163 ¡-­‑ ¡-­‑ ¡[20/Aug/2006:09:15:07 ¡-­‑0700] ¡"GET ¡/ga ¡ LOG: ¡ ¡statement: ¡select ¡oid... ¡ 66.249.72.163 ¡-­‑ ¡-­‑ ¡[20/Aug/2006:09:15:10 ¡-­‑0700] ¡"GET ¡/ro ¡ ... ¡ 66.249.72.163 ¡-­‑ ¡-­‑ ¡[20/Aug/2006:09:15:11 ¡-­‑0700] ¡"GET ¡/ga ¡ ... ¡ ... ¡ ... ¡

  5. Status ¡quo : ¡device ¡centric ¡ • Determining ¡paths: ¡ – Join ¡logs ¡on ¡Ome ¡and ¡ad-­‑hoc ¡idenOfiers ¡ • Relies ¡on ¡ ¡ – well ¡synchronized ¡clocks ¡ – extensive ¡applicaOon ¡knowledge ¡ • Requires ¡ all ¡operaOons ¡logged ¡to ¡guarantee ¡ complete ¡paths ¡

  6. This ¡talk ¡ • Causality ¡Tracking: ¡an ¡alternaOve ¡ • Many ¡previous ¡frameworks: ¡ ¡ – X-­‑Trace, ¡PIP, ¡Whodunit, ¡Magpie, ¡Google’s ¡Dapper… ¡ • Experiences ¡integraOng ¡and ¡using ¡X-­‑Trace ¡

  7. Outline ¡ • Tracing ¡causality ¡with ¡X-­‑Trace ¡ • Case ¡studies ¡ – 802.1X ¡AuthenOcaOon ¡Service ¡ – CoralCDN ¡and ¡OASIS ¡anycast ¡service ¡ • Challenges ¡ • Conclusion ¡

  8. X-­‑Trace ¡ • X-­‑Trace ¡records ¡ events ¡in ¡a ¡distributed ¡ execuOon ¡and ¡their ¡causal ¡relaOonship ¡ • Events ¡are ¡grouped ¡into ¡ tasks ¡ – Well ¡defined ¡starOng ¡event ¡and ¡all ¡that ¡is ¡causally ¡ related ¡ • Each ¡event ¡generates ¡a ¡ report , ¡binding ¡it ¡to ¡ one ¡or ¡more ¡preceding ¡events ¡ • Captures ¡full ¡ happens-­‑before ¡relaOon ¡

  9. X-­‑Trace ¡Output ¡ HTTP ¡ HTTP ¡ HTTP ¡ Client ¡ Proxy ¡ Server ¡ TCP ¡1 ¡ TCP ¡1 ¡ TCP ¡2 ¡ TCP ¡2 ¡ Start ¡ End ¡ Start ¡ End ¡ IP ¡ ¡ IP ¡ ¡ IP ¡ ¡ IP ¡ IP ¡ IP ¡ IP ¡ Router ¡ Router ¡ Router ¡ • Task ¡graph ¡capturing ¡task ¡execuOon ¡ ¡ – Nodes: ¡events ¡across ¡layers, ¡devices ¡ – Edges: ¡causal ¡relaOons ¡between ¡events ¡

  10. Basic ¡Mechanism ¡ g ¡ n ¡ a ¡ [T, ¡a] ¡ [T, ¡g] ¡ HTTP ¡ HTTP ¡ HTTP ¡ Client ¡ Proxy ¡ Server ¡ [T, ¡a] ¡ h ¡ f ¡ m ¡ b ¡ X-­‑Trace ¡Report ¡ TCP ¡1 ¡ TCP ¡1 ¡ TCP ¡2 ¡ TCP ¡2 ¡ TaskID: ¡T ¡ Start ¡ End ¡ Start ¡ End ¡ EventID: ¡g ¡ i ¡ j ¡ k ¡ l ¡ Edge: ¡from ¡a, ¡f ¡ c ¡ d ¡ e ¡ IP ¡ ¡ IP ¡ ¡ IP ¡ ¡ IP ¡ IP ¡ IP ¡ IP ¡ Router ¡ Router ¡ Router ¡ • Each ¡event ¡uniquely ¡idenOfied ¡within ¡a ¡task: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ [ TaskId , ¡ EventId ] ¡ • [TaskId, ¡EventId] ¡ propagated ¡along ¡execuOon ¡path ¡ • For ¡each ¡event ¡create ¡and ¡log ¡an ¡X-­‑Trace ¡ report ¡ – Enough ¡info ¡to ¡reconstruct ¡the ¡task ¡graph ¡

  11. X-­‑Trace ¡Library ¡API ¡ • Handles ¡propagaOon ¡within ¡app ¡ • Threads ¡/ ¡event-­‑based ¡( e.g., ¡libasync) ¡ • Akin ¡to ¡a ¡logging ¡API: ¡ – Main ¡call ¡is ¡ logEvent(message) ¡ • Library ¡takes ¡care ¡of ¡event ¡id ¡creaOon, ¡binding, ¡ reporOng, ¡etc ¡ • ImplementaOons ¡in ¡C++, ¡Java, ¡Ruby, ¡Javascript ¡

  12. Outline ¡ • Tracing ¡causality ¡with ¡X-­‑Trace ¡ • Case ¡studies ¡ – 802.1X ¡AuthenOcaOon ¡Service ¡ – CoralCDN ¡and ¡OASIS ¡anycast ¡service ¡ • Challenges ¡ • Conclusion ¡

  13. 802.1X ¡AuthenOcaOon ¡Service ¡ AuthenOcator ¡ Auth ¡Server ¡ IdenOty ¡Store ¡ e.g. ¡Acc. ¡Point ¡ RADIUS ¡ e.g. ¡ LDAP ¡ Client ¡ RADIUS ¡ LDAP ¡ EAP ¡ ¡ Over ¡UDP ¡ L2 ¡ • IdenOfied ¡5 ¡common ¡authenOcaOon ¡issues ¡from ¡ vendor ¡logs ¡ • Added ¡a ¡few ¡X-­‑Trace ¡instrumentaOon ¡points ¡sufficient ¡ to ¡differenOate ¡these ¡faults ¡ • Introduced ¡faults ¡in ¡a ¡test ¡environment ¡

  14. 802.1X ¡AuthenOcaOon ¡Service ¡ • InstrumentaOon ¡was ¡easy: ¡ – Nested ¡invocaOons ¡ – No ¡in-­‑task ¡concurrency ¡ – Extensible ¡protocols ¡(RADIUS, ¡LDAP) ¡ – Modular, ¡request-­‑oriented ¡server ¡somware ¡

Recommend


More recommend