Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[SpringOne2016] Distributed Tracing using Sleuth and Zipkin

Ad3fbc316f916a341c24035e34913121?s=47 Shin Tanimoto
September 03, 2016

[SpringOne2016] Distributed Tracing using Sleuth and Zipkin

SpringOne Platform 2016報告会

Ad3fbc316f916a341c24035e34913121?s=128

Shin Tanimoto

September 03, 2016
Tweet

Transcript

  1. 4QSJOH0OF1MBUGPSNใࠂձ
 %JTUSJCVUFE5SBDJOHVTJOH
 4MFVUIBOE;JQLJO Acroquest Technology Co., LTD.
 Shin Tanimoto (@cero_t)

  2. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 8IPBN* • ୩ຊ ৺ (Shin Tanimoto) • Acroquest Technologyגࣜձࣾ • ೔ຊJavaϢʔβάϧʔϓ (JJUG) • JavaOneεϐʔΧʔ • Microservices, Elasticsearch • twitter: @cero_t • facebook: shin.tanimoto 2
  3. @cero_t #jsug sli.do #4923 Copyright © Acroquest Technology Co., Ltd.

    All rights reserved. ࣭໰ͳͲ ࣭໰͸ɺTwitter / slido Ͱ΋ड͚෇͚·͢ • Twitter : @cero_t or #jsug • http://sli.do/ : event code #4923 3
  4. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 4 ·࣭ͣ໰
  5. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 5 ΨνʹϚΠΫϩαʔϏεͰ
 ։ൃɺӡ༻Λ͍ͯ͠Δਓʁ
  6. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 6 ϚΠΫϩαʔϏεͰͳ͘ͱ΋
 )551ɺ+.4ɺ".21ɺ,BGLB
 ͳͲͰෳ਺ͷαʔϏεΛ
 ௨৴ͤͯ͞γεςϜΛ૊ΜͰΔਓʁ
  7. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 7 গͳ͘ͱ΋͍͔ͭ͸ ͦ͏͍͏γεςϜΛ૊Ήඞཁ͕ ͋ΔͩΖ͏ͳͱࢥ͏ਓʁ
  8. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 8 ͍·खΛڍ͛ͳ͔ͬͨਓ͸
 Կ͠ʹདྷͨʂ
  9. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 9 ౖͬͯͳ͍Α☺
  10. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 10 ෼ࢄγεςϜΛ૊Ήͱ͖ʹ
 ඞͣ௚໘͢Δ໰୊ͷ࿩
  11. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 11 Ͳ͜Ͱ໰୊͕ى͖ͨͷ͔ʁ
 Ͳ͕͜ϘτϧωοΫͳͷ͔ʁ
  12. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 12 Service architecture isn’t this simple anymore Single-server scenarios aren’t realistic or don’t fully explain latency. David Vignoni Gnome-fs-server.svg
  13. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 13 Can we make troubleshooting wizard-free? We no longer need wizards to deploy complex architectures. We shouldn’t need wizards to troubleshoot them, either!
  14. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 14 © 2016 Pivotal !1 An introduction to Distributed Tracing and Zipkin Adrian Cole, Pivotal @adrianfcole How to Properly Blame Things for Causing Latency
  15. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 15 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Implementing Microservices Tracing with Spring Cloud and Zipkin By Reshmi Krishna @reshmi9k By Marcin Grzejszczak @mgrzejszczak
  16. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 5BCMFPGDPOUFOUT 1. ໰୊ൃੜՕॴΛϩά͔Βௐ΂Δ 2. αʔϏεͷߏ଄ΛՄࢹԽ͢Δ 3. SleuthͱZipkinͷ࢝Ίํ 16
  17. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 ໰୊ൃੜՕॴΛϩά͔Βௐ΂Δ #1 17
  18. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 18 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ It doesn’t look like this
  19. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 19 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ More like this
  20. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 20 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ More like this
  21. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 21 ϩά͸શ෦&MBTUJDTFBSDIʹ
 Ϳͬ͜ΜͰ͍ͨͱͯ͠
 Ͳ͏΍ͬͯ໰୊ՕॴΛ୳͢ʁ ໰୊ൃੜՕॴΛϩά͔Βௐ΂Δ
  22. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 22 ʮ͜ͷ͔࣌ؒΒ͜ͷ࣌ؒͷϩάʯ Λβʔοͱݕࡧ͢Δʁ ໰୊ൃੜՕॴΛϩά͔Βௐ΂Δ
  23. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 23 ͨ͘͞ΜΤϥʔ͕ى͖ͯͨΒ
 Ͳ͏͢Μͷʁ ໰୊ൃੜՕॴΛϩά͔Βௐ΂Δ
  24. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 24 ϦΫΤετʹରͯ͠*%Λൃߦ͠
 ͦΕΛڞ༗͢Ε͹ྑ͘Ͷʁ ໰୊ൃੜՕॴΛϩά͔Βௐ΂Δ
  25. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 25 4QSJOH$MPVE4MFVUI ໰୊ൃੜՕॴΛϩά͔Βௐ΂Δ
  26. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 26 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Brixton.SR4</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId> </dependency> Spring Cloud Sleuth with Maven
  27. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 27 ϦΫΤετશମ5SBDF ݸผϦΫΤετ4QBO ໰୊ൃੜՕॴΛϩά͔Βௐ΂Δ
  28. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 28 )551".21ϔομʹ*%ΛຒΊΔ
 ड͚औͬͯ5ISFBE-PDBMʹೖΕΔ
 ࣍ʹ౉͢ɾɾɾͷ܁Γฦ͠ ໰୊ൃੜՕॴΛϩά͔Βௐ΂Δ
  29. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 29 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
  30. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 30 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
  31. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 31 ϦΫΤετͷ*%ΛΩʔʹͯ͠
 ෳ਺αʔόͷϩάΛݕࡧͰ͖Δ ໰୊ൃੜՕॴΛϩά͔Βௐ΂Δ
  32. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 32 ͳΔ΄Ͳ
  33. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 33 ͦΕΛ࢖ͬͯ
 ՄࢹԽͰ͖ΔͷͰ͸ʁ
  34. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 αʔϏεͷߏ଄ΛՄࢹԽ͢Δ #2 34
  35. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 35 4MFVUIͰूΊͨ৘ใΛ࢖ͬͯ
 ஗͍ͱ͜ΖΛ୳ͨ͠Γ
 αʔϏεͷؔ࿈Λݟ͍ͨ αʔϏεͷߏ଄ΛՄࢹԽ͢Δ
  36. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 36 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ The answer is: ZIPKIN
  37. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 37 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ SPANS SENT TO COLLECTORS SPANS SENT TO COLLECTORS STORE IN DB APP APP UI QUERIES FOR TRACE INFO VIA API How does Zipkin work?
  38. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 38 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Cloud Sleuth Zipkin with Maven <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Brixton.SR4</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency>
  39. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 39 %FNP αʔϏεͷߏ଄ΛՄࢹԽ͢Δ
  40. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 SleuthͱZipkinͷ࢝Ίํ #3 40
  41. -FUT7JTVBMJ[F:PVS
 4QSJOH#PPU"QQMJDBUJPOT Acroquest Technology Co., LTD.
 Shin Tanimoto (@cero_t)

  42. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 42 4MFVUIͱ;JQLJOͷ࢝Ίํ • JavaOneʹ͸Α͘ࢀՃ͢ΔΜ͚ͩͲ
 ΞδΣϯμΛݟͯΔͱ໌Β͔ʹ
 SpringOneͷ΄͏ָ͕ͦ͠͏ɻ
 • ͦ͏ͩCfPΛग़ͦ͏ɻ • ͋ɺड͔ͬͨɻ΍͹͍ɻ
  43. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 4MFVUIͱ;JQLJOͷ࢝Ίํ • How to do? (1) Spring InitializrͰ “sleuth” and “zipkin” Λ୳͢
 https://start.spring.io/
 (2) ϚΠΫϩαʔϏεʹsleuthͷdependenciesΛ௥Ճ
 (3) zipkinͷdependenciesΛ࢖ͬͯZipkinαʔόΛ࡞Δ 43
  44. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 4MFVUIͱ;JQLJOͷ࢝Ίํ 44
  45. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 4MFVUIͱ;JQLJOͷ࢝Ίํ 45
  46. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 4MFVUIͱ;JQLJOͷ࢝Ίํ Sleuth and Zipkin dependencies 46 Name on Initializr artifactId Sleuth spring-cloud-starter-sleuth Sleuth Stream spring-cloud-sleuth-stream Zipkin Client spring-cloud-starter-zipkin Zipkin Stream spring-cloud-sleuth-zipkin-stream Zipkin UI spring-boot-starter
 zipkin-autoconfigure-ui Zipkin Server spring-boot-starter
 zipkin-server
  47. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 4MFVUIͱ;JQLJOͷ࢝Ίํ 47 Microservice Microservice Zipkin Server HTTP Zipkin UI Server To start simply:
  48. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 4MFVUIͱ;JQLJOͷ࢝Ίํ To start simply: 48 Microservice Microservice Zipkin Server HTTP Zipkin UI Server Zipkin Client 
 (spring-cloud-starter-zipkin) Zipkin UI (zipkin-autoconfigure-ui)
 Zipkin Server (zipkin-server)
  49. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 4MFVUIͱ;JQLJOͷ࢝Ίํ 49 Microservice AMQP Zipkin UI Server
 Zipkin Server RabbitMQ AMQP To use RabbitMQ as a middle buffer:
  50. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 4MFVUIͱ;JQLJOͷ࢝Ίํ 50 Microservice AMQP Zipkin UI Server
 Zipkin Server RabbitMQ AMQP Zipkin UI
 (zipkin-autoconfigure-ui)
 Zipkin Stream
 (spring-cloud-sleuth-zipkin-stream)
 Stream Rabbit
 (spring-cloud-starter-stream-rabbit) Sleuth Stream
 (spring-cloud-sleuth-stream)
 Stream Rabbit
 (spring-cloud-starter-stream-rabbit) To use RabbitMQ as a middle buffer:
  51. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 4MFVUIͱ;JQLJOͷ࢝Ίํ 51 Microservice AMQP Zipkin UI Server
 Zipkin Server RabbitMQ AMQP Zipkin UI
 (zipkin-autoconfigure-ui)
 Zipkin Stream
 (spring-cloud-sleuth-zipkin-stream)
 
 spring-cloud-stream-binder-rabbit Sleuth Stream
 (spring-cloud-sleuth-stream)
 
 spring-cloud-stream-binder-rabbit To use RabbitMQ as a middle buffer:
  52. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 4MFVUIͱ;JQLJOͷ࢝Ίํ 52 Microservice AMQP Zipkin UI Server
 Zipkin Server RabbitMQ AMQP The exchange and the queue are created and bound automatically. Exchange:
 sleuth Queue:
 sleuth.sleuth
  53. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 4MFVUIͱ;JQLJOͷ࢝Ίํ Sleuth and Zipkin dependencies 53 Name on Initializr artifactId Log HTTP AMQP Sleuth spring-cloud-starter-sleuth Service Sleuth Stream spring-cloud-sleuth-stream Service Zipkin Client spring-cloud-starter-zipkin Service Zipkin Stream spring-cloud-sleuth-zipkin-stream Zipkin Zipkin UI spring-boot-starter
 zipkin-autoconfigure-ui Zipkin Zipkin Zipkin Server spring-boot-starter
 zipkin-server Zipkin Stream Rabbit spring-cloud-starter-stream-rabbit Both
  54. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 4MFVUIͱ;JQLJOͷ࢝Ίํ 54 Zipkin server application (HTTP): @SpringBootApplication @EnableZipkinServer public class ZipkinApplication { public static void main(String[] args) { SpringApplication.run(ZipkinApplication.class, args); } }
  55. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 4MFVUIͱ;JQLJOͷ࢝Ίํ 55 Zipkin server application (Stream): @SpringBootApplication @EnableZipkinStreamServer public class ZipkinApplication { public static void main(String[] args) { SpringApplication.run(ZipkinApplication.class, args); } }
  56. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 4MFVUIͱ;JQLJOͷ࢝Ίํ 56 No source code modification in microservices!
  57. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 4MFVUIͱ;JQLJOͷ࢝Ίํ • Note (1) Spring Cloud Sleuth͸
 RabbitTemplateΛαϙʔτ͍ͯ͠ͳ͍
 (spring-boot-starter-amqp).
 (2) Stream Rabbit͸αϙʔτ͞Ε͍ͯΔ
 (spring-cloud-starter-stream-rabbit). 57
  58. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 58 ͳΜ͍ͯ͏εϥΠυΛ४උͯͨ͠લ೔ #ZUIFXBZ
  59. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 59 5IF/FUqJY5FDI#MPH7J[DFSBM0QFO4PVSDF IUUQUFDICMPHOFUqJYDPNWJ[DFSBM PQFOTPVSDFIUNM #ZUIFXBZ
  60. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 60 Infrastructures Evolution -FUTIBWFGVOWJTVBMJ[BUJPOZPVSNJDSPTFSWJDFT
  61. Copyright © Acroquest Technology Co., Ltd. All rights reserved. @cero_t

    #jsug sli.do #4923 8SBQVQ • Sample code: https://github.com/cero-t/e-commerce-example • Clip arts: http://www.irasutoya.com/ 61