Slide 1

Slide 1 text

Ruby Zipkin 2020229

Slide 2

Slide 2 text

No.2 ( 1 ( % !&"'$#

Slide 3

Slide 3 text

No.3 @DF=E;=>?B =>?B0+65C:9>@7$#,5=>?B H I =>?B2G1.1C:9>@*!73-)0 !10+65=>?B ((1) =>?B11*' @DF=E;=>?B7)/G 1%4 1D8?E=7" ((2) &4D8?E=1G 11 *'

Slide 4

Slide 4 text

No.4 Zipkin (1) Twitter ,OSS &)+!*!"$( (2) Google Dapper - . (1) +'"API %+# (2) %+#UI

Slide 5

Slide 5 text

No.5 Zipkin

Slide 6

Slide 6 text

No.6 Zipkin (1) (2) Zipkin

Slide 7

Slide 7 text

No.7 Zipkin (1)

Slide 8

Slide 8 text

No.8 Zipkin (1)

Slide 9

Slide 9 text

No.9 Zipkin (1) Storage

Slide 10

Slide 10 text

No.10 Zipkin (1) Storage

Slide 11

Slide 11 text

No.11 Zipkin

Slide 12

Slide 12 text

No.12 Zipkin

Slide 13

Slide 13 text

No.13 Zipkin (1) User CodeHTTPGET /foo

Slide 14

Slide 14 text

No.14 Zipkin (2) Trace Instrumentation

Slide 15

Slide 15 text

No.15 Zipkin (3) Trace InstrumentationHttp Client

Slide 16

Slide 16 text

No.16 Zipkin (4) Http Client Trace Instrumentation

Slide 17

Slide 17 text

No.17 Zipkin (5) Trace Instrumentation

Slide 18

Slide 18 text

No.18 Zipkin (6) Trace InstrumentationUser Code

Slide 19

Slide 19 text

No.19 Zipkin (7) Trace Instrumentation Zipkin Collector

Slide 20

Slide 20 text

No.20 (1) Web HTTP (2) Zipkin Web1 localhost:8081 Web2 localhost:8082 Web3 localhost:9000 Zipkin localhost:9411

Slide 21

Slide 21 text

No.21 (1) Web (2) HTTP (3) Zipkin (Trace ID ) (4) Zipkin Web1 localhost:8081 Web2 localhost:8082 Web3 localhost:9000 Zipkin localhost:9411

Slide 22

Slide 22 text

No.22 (1) Web (2) HTTP (3) Zipkin (Trace ID ) (4) Zipkin Web1 localhost:8081 Web2 localhost:8082 Web3 localhost:9000 Zipkin localhost:9411

Slide 23

Slide 23 text

No.23 (1) Web (1) Sinatra: Web (2) GET

Slide 24

Slide 24 text

No.24 (1) Web (2) HTTP (3) Zipkin (Trace ID ) (4) Zipkin Web1 localhost:8081 Web2 localhost:8082 Web3 localhost:9000 Zipkin localhost:9411

Slide 25

Slide 25 text

No.25 (2) HTTP (1) Faraday: HTTP (2) HTTP (3) localhost:9000/api GET

Slide 26

Slide 26 text

No.26 (1) Web (2) HTTP (3) Zipkin (Trace ID ) (4) Zipkin Web1 localhost:8081 Web2 localhost:8082 Web3 localhost:9000 Zipkin localhost:9411

Slide 27

Slide 27 text

No.27 Zipkin &$&' (2) )zipkin-ruby )Ruby (1) %(!&$&' ("#( C)C++)Python&$&'

Slide 28

Slide 28 text

No.28 Rack (1/2) (1) Web Web (2) gem () Rails, Sinatra, Faraday sinatra rails Faraday rack middleware handler

Slide 29

Slide 29 text

No.29 Rack (2/2) sinatra rails Faraday rack middleware handler RackA:F)*( call# "'&-D3 HTTPE-+39## ' Rack;H:D "Web0I<' &-D3 Rack(>E.I1CH callB47:'$&,=2*-9 httpE-+39?76! '%Hash'JKMML#38I53 /I:JG3@H3?76JG3@H3body'B47:

Slide 30

Slide 30 text

No.30 Rack* Rack* ,Zipkin($() (3a) FaradayZipkin($() (3b) SinatraZipkin($() HTTP) " () !' !+%,Trace ID

Slide 31

Slide 31 text

No.31 (3a) FaradayZipkin (1) Faradayuse

Slide 32

Slide 32 text

No.32 (3b) Sinatra Zipkin (1) Rack use ∵ Sinatra!Rack

Slide 33

Slide 33 text

No.33 (1) Web Web1 Web2 Web3 Zipkin (2) HTTP (3) Zipkin (Trace ID ) (4) Zipkin

Slide 34

Slide 34 text

No.34 (4) Zipkin (1) Docker (2) Java $ curl -sSL https://zipkin.io/quickstart.sh | bash -s $ java -jar zipkin.jar (3) Running from source # get the latest source $ git clone https://github.com/openzipkin/zipkin cd zipkin # Build the server and also make its dependencies $ ./mvnw -DskipTests --also-make -pl zipkin-server clean install # Run the server $ java -jar ./zipkin-server/target/zipkin-server-*exec.jar $ docker run –d –p 9411:9411 openzipkin/zipkin

Slide 35

Slide 35 text

No.35 (1) http://localhost:8081/ (2) http://localhost:9411/ : 2020-02-14T14:01:18+09:00

Slide 36

Slide 36 text

No.36 (1) OpenZipkin · A distributed tracing system, https://zipkin.io/ ' (2) zipkin, https://github.com/openzipkin/zipkin (3) "$&% !#Zipkin, https://qiita.com/miya10kei/items/2532b80fcd8d19eb2e75 (4) Rack' https://qiita.com/k0kubun/items/248395f68164b52aec4a (5) zipkin-ruby-example, https://github.com/openzipkin/zipkin-ruby-example