рдЬрд┐рдкрдХрд┐рди рдПрдХ рд╡рд┐рддрд░рд┐рдд рдЕрдиреБрд░реЗрдЦрдг рдкреНрд░рдгрд╛рд▓реА рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рд╕рднреА рдЕрд╕рдорд╛рди рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд░рдирдЯрд╛рдЗрдо рдбреЗрдЯрд╛ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИред рдпрд╣ рдХрд▓реЗрдХреНрдЯрд░ рдФрд░ рдХреНрд╡реЗрд░реА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдФрд░ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИред рд╣рдордиреЗ
Google рдбрд╛рдкрд░ рдХреЗ рдореЙрдбрд▓ рдкрд░ рдЬрд┐рдкрдХрд┐рди рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ред
@ZipkinProject
рдХреЛ
@ZipkinProject
рдФрд░ рдмрдиреЗ рд░рд╣реЗрдВред
рдФрд░ рдпрд╣ рд╡рд┐рддрд░рд┐рдд рдЯреНрд░реЗрд╕ рдХреНрдпреЛрдВ?
рдЯреНрд░реЗрд╕ рдПрдХрддреНрд░ рдХрд░рдиреЗ рд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧрд╣рди рдЬреНрдЮрд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓рддреА рд╣реИред рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЯрд╛рдЗрдордЖрдЙрдЯ рдкрд╛рд░ рд╣реЛ рдЧрдпрд╛ рд╣реИред рд╣рдо рдЙрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдирд┐рд╢рд╛рди рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЧрд┐рд░ рдЧрдП рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рдореЗрдВ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╡реГрджреНрдзрд┐ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ рдХреЛ рджреЛрд╖реА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рд╕реЗрд╡рд╛ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдПрдиреЛрдЯреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╣рдо рдпрд╣ рднреА рдкрддрд╛ рд▓рдЧрд╛ рдкрд╛рдПрдВрдЧреЗ рдХрд┐ рд╕реЗрд╡рд╛ рдХреЗ рдХрд┐рд╕ рд╕реНрдерд╛рди рдкрд░ рд╕рдорд╕реНрдпрд╛ рд╣реБрдИред

рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░
рдпреЗ рдШрдЯрдХ рдкреВрд░реНрдг рдЯреНрд░реЗрд╕ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рддреЗ рд╣реИрдВред

рдЙрдкрдХрд░рдг рдкреБрд╕реНрддрдХрд╛рд▓рдп
рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдкрд░ рдЯреНрд░реЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ рдЬреЛ рдЯреВрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдЬрд┐рдкрдХрд┐рди рдХреЗ рд╕рд╛рде рдиреЛрдб рдкрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддреА рд╣реИред рдЬрдм рдХреЛрдИ рд╣реЛрд╕реНрдЯ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЯреНрд░реЗрд╕ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдмрд╛рдж рдореЗрдВ рд▓рд┐рдВрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдлрд┐рдиреЗрдХреНрд▓
Finagle JVM рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдЯреИрдХ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЬрд╛рд╡рд╛, рд╕реНрдХрд╛рд▓рд╛ рдпрд╛ JVM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рдЕрдиреНрдп рднрд╛рд╖рд╛ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рджреВрд░рд╕реНрде рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЙрд▓ (RPC) рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
Finagle рдЯреНрд╡рд┐рдЯрд░ рдХреЗ рдЕрдВрджрд░ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рдЯреНрд░реЗрд╕ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рдмрди рдЧрдпрд╛ рд╣реИред рдЕрдм рддрдХ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ / рд╕рд░реНрд╡рд░ рд╣реИ рдЬреЛ рдереНрд░рд┐рдлреНрдЯ рдФрд░ рдПрдЪрдЯреАрдЯреАрдкреА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдЬреЛ рдХреЗрд╡рд▓ рдореЗрдорд╛рдЪреЗ рдФрд░ рд░реЗрдбрд┐рд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
Scala рдореЗрдВ рдЕрдкрдиреЗ Finagle рд╕рд░реНрд╡рд░ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдЗрди рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред рдЯреНрд░реЗрд╕ рдЬреЛрдбрд╝рдирд╛ рдХреЗрд╡рд▓
Finagle-zipkin рдирд┐рд░реНрднрд░рддрд╛ рдФрд░
ServerBuilder
рдореЗрдВ
tracer
рдХреЛ
ServerBuilder
ред
ServerBuilder() .codec(ThriftServerFramedCodec()) .bindTo(serverAddr) .name("servicename") .tracer(ZipkinTracer.mk()) .build(new SomeService.FinagledService(queryService, new TBinaryProtocol.Factory()))
рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдЯреНрд░реЗрд╕рд┐рдВрдЧ рд╕реЗрдЯрдЕрдк рд╕рдорд╛рди рд╣реИред рдКрдкрд░ рджрд┐рдЦрд╛рдП рдЧрдП рдЕрдиреБрд╕рд╛рд░ рдЬрд┐рдкрдХ рдЯреНрд░реЗрд╕рд░ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЪрдпрди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд░реВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рдо рдЕрдиреБрд░реЛрдз рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рд░рд┐рдХреЙрд░реНрдб рдХрд░реЗрдВрдЧреЗ, рдЬрдм рдпрд╣ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛, рд╕рд╛рде рд╣реА рдЕрдиреБрд░реЛрдз рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╕реЗрд╡рд╛рдПрдВ рдФрд░ рд╣реЛрд╕реНрдЯ рднреАред
рдпрджрд┐ рдЖрдк рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рд░рд┐рдХреЙрд░реНрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХреЛрдб рдореЗрдВ рдПрдХ рдХрд╕реНрдЯрдо рдиреЛрдЯ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
Trace.record("starting that extremely expensive computation");
рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдПрдХ рд▓рд╛рдЗрди рдиреЛрдЯ рдЙрд╕ рд╕рдордп рдХреЗ рдмрд┐рдВрджреБ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрдЧрд╛ рдЬрдм рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЖрдк рдореБрдЦреНрдп рдореВрд▓реНрдп рджреНрд╡рд╛рд░рд╛ рдПрдХ рдиреЛрдЯ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
Trace.recordBinary("http.response.code", "500");
рд░реВрдмреА рдереНрд░рд┐рдлреНрдЯ
рдпрд╣ рд╡рд╣ рд░рддреНрди рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред рдЯреНрд░реИрд╕рд░ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдФрд░ рдЯреНрд░реЗрд╕ рдЕрдиреБрд░реЛрдз рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕ рд░рддреНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рд░реИрдХрд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЬрд┐рдкрдХрд┐рди-рд╡реЗрдм рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ рдЬрд╣рд╛рдВ рд╣рдо
рдЯреНрд░реИрдХрд░реНрд╕ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддреЗ рд╣реИрдВред
рд░реВрдмреА рдХреЛрдб рд╕реЗ рдХреЙрд▓ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо
рд░реВрдмреА рдереНрд░рд┐рдлреНрдЯ рдЯреНрд╡рд┐рдЯрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ, рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдиреАрдЪреЗ рджреЗрдЦреЗрдВред
client = ThriftClient.new(SomeService::Client, "127.0.0.1:1234") client_id = FinagleThrift::ClientId.new(:name => "service_example.sample_environment") FinagleThrift.enable_tracing!(client, client_id), "service_name")
рд╡рд┐рд▓рд╛рдкреА
рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╡реЗрд░реБрд▓рд╕ рдПрдХ рд╕реНрдХрд╛рд▓рд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред рдПрд╕рдХреНрдпреВрдПрд▓ рдХреЗ рдЕрдиреБрд░реЛрдз рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕рдордп рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред
Cassie
Cassie рдХреИрд╕рд╛рдВрджреНрд░рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ Finagle рдЖрдзрд╛рд░рд┐рдд рдХреНрд▓рд╛рдЗрдВрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред Cassie рдореЗрдВ рдЯреНрд░реЗрд╕рд░ рдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд▓рдЧрднрдЧ Finagle рдХреА рддрд░рд╣ рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди Cassie KeyspaceBuilder рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
cluster.keyspace(keyspace).tracer(ZipkinTracer.mk());
рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ
рдЬрд┐рдкрдХрд┐рди рдФрд░ рд╣рдбреЛрдк рдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╕реЗрд╡рд╛рдУрдВ рд╕реЗ рд╕рднреА рдирд┐рд╢рд╛рди рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо Scribe рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред Scribe рдХреЛ рдлреЗрд╕рдмреБрдХ рдкрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЗрд╕рдореЗрдВ рдПрдХ рдбреАрдорди рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╣рд░ рд╕рд░реНрд╡рд░ рдкрд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕рдВрджреЗрд╢ рд▓реЙрдЧ рдХреЛ рд╕реНрдХреИрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╢реНрд░реЗрдгреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╕рд╣реА рд╕реЗрд╡рд╛ рд░рд┐рд╕реАрд╡рд░ рдХреЛ рднреЗрдЬрддрд╛ рд╣реИред
рдЬрд┐рдкрдХ рдХрд▓реЗрдХреНрдЯрд░ рдбрд┐рдореЙрди
рдЬреИрд╕реЗ рд╣реА рдЯреНрд░реЗрд╕ рдбреЗрдЯрд╛ рдХрд▓реЗрдХреНрдЯрд░ рдбреЗрдореЙрди рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд╣рдо рдЗрд╕рдХреА рд╢реБрджреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВред
рдХреЛрд╖
рд╣рдо рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рд╕реНрдХреЗрд▓реЗрдмрд▓, рд▓рдЪреАрд▓рд╛ рдФрд░ рднрд╛рд░реА рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдордиреЗ рдЗрд╕ рдШрдЯрдХ рдХреЛ рдореЙрдбреНрдпреВрд▓рд░ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬрд╝ рд╕реЗ рдмрджрд▓рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдбреЗрдорди рд╕реЗ рдирд┐рд╡реЗрджрди
рдбреЗрдЯрд╛ рд░рд┐рдХреЙрд░реНрдб рдФрд░ рдЕрдиреБрдХреНрд░рдорд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдЗрд╕реЗ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХрд╛ рдЪрд╛рд╣рд┐рдПред рдХреНрд╡реЗрд░реА рдбреЗрдореЙрди рдпрд╣рд╛рдВ рдХрд╛рдо рдЖрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рд░рд▓ рдереНрд░рд┐рдлреНрдЯ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд╢рд╛рди рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдорд┐рд▓рддреА рд╣реИред
рдереНрд░рд┐рдлреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕
рд╣рдорд╛рд░реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣рдорд╛рд░реЗ рдпреВрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рд░реЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ рдЬреЛ рдЯреНрд░реЗрд╕ рдбреЗрдЯрд╛ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдбреА 3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реИред
рдореЙрдбреНрдпреВрд▓

рд╕реНрдерд╛рдкрдирд╛
рдЬрд▓реНрджреА рд╕реЗ рдЧрддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рдЙрдмрдВрдЯреВ рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯ рдФрд░
рдореИрдХ рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рджреЗрдЦреЗрдВ ред рд╡реЗ рдЖрдкрдХреЛ рд╕рд┐рдВрдЧрд▓ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЬрд┐рдкрдХрд┐рди рдЪрд▓рд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВред
рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ред
рдХреИрд╕реЗрдВрдбреНрд░рд╛
рдЬрд┐рдкрдХрд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Redis рдХреЗ рд▓рд┐рдП рдПрдХ
рдкреНрд▓рдЧрдЗрди рднреА рд╣реИ рдФрд░ рд╣рдо рдЕрдиреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рджреЗрдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред
- рдХреНрд▓рд╕реНрдЯрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдХреИрд╕рдВрдбреНрд░рд╛ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рдПрдВред
- рдЬрд┐рдкрдХрд┐рди-рдЕрдиреБрдХреВрд▓рд┐рдд рд╕рд░реНрдХрд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЖрдк рдЗрд╕реЗ рдирд┐рдореНрди
$ cassandra-cli -host localhost -port 9160 -f zipkin-cassandra/src/schema/cassandra-schema.txt
рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ: $ cassandra-cli -host localhost -port 9160 -f zipkin-cassandra/src/schema/cassandra-schema.txt
$ cassandra-cli -host localhost -port 9160 -f zipkin-cassandra/src/schema/cassandra-schema.txt
рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рд╕рдВрдЪрд╛рд▓рдХ
рд╕рдордиреНрд╡рдп рдХреЗ рд▓рд┐рдП рдЬрд┐рдкрдХ рдЬрд╝реВрдХреАрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рд╣рдо рд╕рдВрджрд░реНрдн рдорд╛рдиреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВред
рд╕реНрдерд╛рдкрдирд╛ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рдХреАрдкрд░
рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рдПрдБред
рдореБрдВрд╢реА
Scribe рдПрдХ рд▓реЙрдЧрд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдЯреНрд░реЗрд╕ рдбреЗрдЯрд╛ рдХреЗ рдкрд░рд┐рд╡рд╣рди рдХреЗ рд░реВрдк рдореЗрдВ рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рдХрд░рддреЗ рд╣реИрдВред рдЬрд┐рдкрдХрд┐рди рдЯреНрд░реЗрд╕ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдХрдИ рдЕрдиреНрдп рддрд░реАрдХреЗ рд╣реИрдВ; рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рдЬрд┐рдкрдХрд┐рди рдХреЛ рдЖрдЬрд╝рдорд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕ рдХрджрдо рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реАрдзреЗ рдЬрд┐рдкрдХрдЯреНрд░реИрд╕рд░ рдХреЛ рд╕реАрдзреЗ рдХрд▓реЗрдХреНрдЯрд░ рдХреЗ рдкрд╛рд╕ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред
рдЬрд┐рдкрдХрд┐рди рдХреЗ рд╕рд╛рде рд╕реНрд╡реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рд╕рдВрд▓рдЧреНрди рднрдВрдбрд╛рд░рдг рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдХрд▓реЗрдХреНрдЯрд░ рдбреЗрдореЙрди рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИред рдЬрд┐рдкрдХрд┐рди рдореЗрдВ рднрдВрдбрд╛рд░рдг рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддреА рд╣реИ:
<store> category=zipkin type=network remote_host=123.123.123.123 remote_port=9410 use_conn_pool=yes default_max_msg_before_reconnect=50000 allowable_delta_before_reconnect=12500 must_succeed=no </store>
рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдХрд▓реЗрдХреНрдЯрд░ рдХреЗ рдЖрдИрдкреА рдкрддреЗ рдХреЛ рд╣рд╛рд░реНрдбрдХреЛрдб рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдХрд▓реЗрдХреНрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдВрддрд░рд┐рдХ DNS рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЬрдЧрд╣ рд╣реЛрдЧреА рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдХрд▓реЗрдХреНрдЯрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рдпрд╛ рд╣рдЯрд╛рддреЗ рд╕рдордп рдкрддреЗ рдмрджрд▓рдиреЗ рд╣реЛрдВрдЧреЗред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк Scribe рдХреЗ рдПрдХ
рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ ZooKeeper рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд▓реЗрдХреНрдЯрд░реЛрдВ рдХреЗ рдкрддреЗ рдЙрдард╛рддрд╛ рд╣реИред рдЬрдм рдХрд▓реЗрдХреНрдЯрд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЦреБрдж рдХреЛ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░рдХреАрдкрд░ рдХреЗ рд╕рд╛рде рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЬрдм рд╡рд╣ рдХрд╛рдо рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдХрд▓реЗрдХреНрдЯрд░реЛрдВ рдХреЗ рд╕рд╛рде рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╕рдВрд╢реЛрдзрд┐рдд SUB рд╕реВрдЪрдирд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдореЛрдб рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
zk://zookeeper-hostname:2181/scribe/zipkin
рдпрд╛ рдЗрд╕реА рддрд░рд╣ рд╕реЗ рдХрд░реЗрдВред
рдЬрд┐рдкрдХ рд╕рд░реНрд╡рд░
рд╣рдордиреЗ рд╕реНрдХреЗрд▓рд╛ 2.9.1, рдПрд╕рдмреАрдЯреА 0.11.2 рдФрд░ JDK7 рдХреЗ рд╕рд╛рде рдЬрд┐рдкрдХрд┐рди рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ред
рдЙрдмрдВрдЯреВ рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯ рдФрд░ рдореИрдХ рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯ рдореИрдиреБрдЕрд▓ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдХрд▓реЗрдХреНрдЯрд░ рдФрд░ рдХреНрд╡реЗрд░реА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЪрд▓рд╛рдПрдВред
рдЬрд┐рдкрдХрд┐рди рдЙрдИ
рдпреВрдЖрдИ рдПрдХ рдирд┐рдпрдорд┐рдд рд░реЗрд▓ 3 рдПрдкреНрд▓реАрдХреЗрд╢рди рд╣реИред
- рдЕрдкрдиреЗ ZooKeeper рд╕рд░реНрд╡рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрд╡реЗрд░реА рдбреЗрдореЛрдВрд╕ рдХреА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рд░реЗрд▓ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЙрдкрдпреБрдХреНрдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рддреИрдирд╛рдд рдХрд░реЗрдВред рдмрд┐рд▓реНрдЯ-рдЗрди рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреБрдХреНрдд рд╣реИ:
$ bundle install && bundle exec rails server
рдЬреЗрдо рдЬрд┐рдкрдХрд┐рди-рдЯреНрд░реЗрд╕рд░ рд░реИрдХ рд╣реИрдВрдбрд▓рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд░реЗрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЗрдЦрдг рдЬреЛрдбрд╝рддрд╛ рд╣реИред Config.ru рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
use ZipkinTracer::RackHandler run <YOUR_APPLICATION>
рдпрджрд┐ рд░реЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрд╡рдпрдВ рд╕реНрдерд┐рд░ рд╕рдВрдкрддреНрддрд┐ рдкрд░реЛрд╕рддрд╛ рд╣реИ, рддреЛ рдЗрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
Hadoop рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдп рдЪрд▓ рд░рд╣рд╛ рд╣реИ
Hadoop рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Scribe рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдбреЗрдЯрд╛ рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рдЬрд┐рдкреНрдХрд┐рди рдореЗрдВ рд╣реА рдлреНрд▓рд╛рдИ рдкрд░ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред
рд╣рдо рд╕реНрдХрд╛рд▓рд╛ рд╕реЗ Hadoop рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдирд╛рдордХ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
- рд╣рд╛рдбреЛрдк рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдп рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдПрдХ рдЬрд╛рд░ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
$ sbt 'project zipkin-hadoop' compile assembly
- Scald.rb рдореЗрдВ, рдЙрд╕ рдиреЛрдб рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдЬрд╛рд░ рдХреЛ рдХреЙрдкреА рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдХрд╛рд░реНрдп рдХреЛ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
- рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ scard.rb рдореЗрдВ рдЬрд╛рд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред
- рдЕрдм рдЖрдк рд╣рдорд╛рд░реА scald.rb рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдп рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред
$ ./scald.rb --hdfs com.twitter.zipkin.hadoop.[classname] --date yyyy-mm-ddThh:mm yyyy-mm-ddThh:mm --output [dir]
рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдП
рд╣рдордиреЗ рд╕реНрд╡рдпрдВ рдХрдИ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓реЛрдВ рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рджрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝рд╛рдиреЗ рдореЗрдВ рдХреБрдЫ рдорджрдж рдорд┐рд▓рдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИред рдЖрд░рдВрдн рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЛ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рдЯреНрд░реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдПрдиреЛрдЯреЗрд╢рди - рдЗрд╕рдореЗрдВ рдХреБрдЫ рдореВрд▓реНрдп, рд╕рдордп рдЯрд┐рдХрдЯ рдФрд░ рдиреЛрдб рдкрддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ;
- рд╕реНрдкреИрди - рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдПрдХ рд╕реЗрдЯ рдЬреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрд░рдкреАрд╕реА рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
- рдЯреНрд░реЗрд╕ рд╕реНрдкреИрди рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдЬреЛ рдПрдХрд▓ рд░реВрдЯ рд╕реНрдкреИрди рд╕рд╛рдЭрд╛ рдХрд░рддрд╛ рд╣реИред
рдЬрд┐рдкрдХрд┐рди рдХреЛ рдЯреНрд░реЗрд╕ рдбреЗрдЯрд╛ рднреЗрдЬрддреЗ рд╕рдордп рдЙрдкрд░реЛрдХреНрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреБрдЫ рд╡рд┐рд╡рд░рдг
рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд
рд╣реИрдВ ред
рдЯреНрд░реЗрд╕ рдХрд╛ рдПрдХ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рд╣рд▓реНрдХрд╛ рд╣реЗрдбрд░ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдЬрд╛рдирдХрд╛рд░реА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдореЗрдВ рдирд┐рдореНрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- рдЯреНрд░реЗрд╕ рдЖрдИрдбреА - рдЯреНрд░реЗрд╕ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддрд╛ рд╣реИ;
- рд╕реНрдкреИрди рдЖрдИрдбреА - рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛;
- рд╡реИрдХрд▓реНрдкрд┐рдХ рдЕрднрд┐рднрд╛рд╡рдХ рд╕реНрдкреИрди рдЖрдИрдбреА - рдЕрдЧрд░ рдпрд╣ рдЕрдиреБрд░реЛрдз рджреВрд╕рд░реЗ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛;
- рдирдореВрдирд╛ (рдмреВрд▓рд┐рдпрди рдлрд╝реАрд▓реНрдб) - рд╣рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЯреНрд░реЗрд╕ рдбреЗрдЯрд╛ рд░рдЦрдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдЕрдм рдЬрдм рд╣рдо рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдЪрд▓рд┐рдП рдПрдХ рдЪрд░рдг-рджрд░-рдЪрд░рдг рджреЗрдЦреЗрдВ рдХрд┐ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдореИрдВ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ рдХрд┐ Finagle рдореЗрдВ HTTP рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд▓рд┐рдП, рдХреНрд░рд┐рдпрд╛рдПрдБ, рдмреЗрд╢рдХ, рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рд╕рд┐рджреНрдзрд╛рдВрдд рдмрдирд╛ рд╣реБрдЖ рд╣реИред
рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб
- рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдЯреНрд░реЗрд╕ рд╣реЗрдбрд░ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░реЗрдВред рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рд╣рдо рдЗрд╕ рдЕрдиреБрд░реЛрдз рд╕реЗ рдЬреБрдбрд╝реЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рд╣рдо рдПрдХ рдЯреНрд░реЗрд╕ рдЖрдИрдбреА, рд╕реНрдкреИрди рдЖрдИрдбреА рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рддрдп рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдбреЗрдЯрд╛ рдХреЛ рд╕реЗрд╡ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП HttpServerTracingFilter рджреЗрдЦреЗрдВред
- рдпрджрд┐ рдЪрдпрди рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдЕрдиреБрд░реЛрдз рд╢рд╛рдорд┐рд▓ рд╣реИ, рддреЛ рд╣рдо рд╕реЗрд╡рд╛ рдХрд╛ рдирд╛рдо, рд╣реЛрд╕реНрдЯ рдХрд╛ рдирд╛рдо, рдирд╛рдо рд╕реНрдкреИрди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкреБрдЯ рдорд┐рд▓ / рдбрд╛рд▓) рдФрд░ рд╕реАрдзреЗ рд╣рдорд╛рд░реЗ рдиреЛрдЯ рдЬреИрд╕реА рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рддреЗ рд╣реИрдВред рдЬрдм рд╣рдо рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдо тАЬрд╕рд░реНрд╡рд░ рдкреНрд░рд╛рдкреНрддтАЭ рдиреЛрдЯреНрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЬрдм рд╣рдо рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рдорд╛рдкреНрдд рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рднреЗрдЬрддреЗ рд╣реИрдВред рджреЛрдмрд╛рд░рд╛, рдЖрдк HttpServerTracingFilter рдореЗрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
- рдЙрддреНрдкрдиреНрди рдЯреНрд░реЗрд╕ рдбреЗрдЯрд╛ рд╕рд░реНрд╡рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЯреНрд░реИрд╕рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ConsoleTracer, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ ZipkinTracer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм ZipkinTracer рдЯреНрд░реЗрд╕ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЙрдиреНрд╣реЗрдВ рд╕реНрдкреИрди рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рд╕рдореВрд╣рд┐рдд рдХрд░рддрд╛ рд╣реИред
- рдЬреИрд╕реЗ рд╣реА рдЬрд╝рд┐рдкрдХрд┐рдирдЯреНрд░реИрд╕рд░ рдХреЛ "рд╕реНрдкреИрди рдСрдл рдПрдВрдб" рдИрд╡реЗрдВрдЯ рдорд┐рд▓рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ "рд╕рд░реНрд╡рд░ рдкреНрд░рд╛рдкреНрдд" рдиреЛрдЯ рдпрд╛ рдПрдХ рдЯрд╛рдЗрдордЖрдЙрдЯ, рдпрд╣ рдПрдХ рдереНрд░реЙрдлреНрдЯ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ Scribe рдХреЛ рдПрдХрддреНрд░рд┐рдд рдбреЗрдЯрд╛ рднреЗрдЬрддрд╛ рд╣реИред рдпрджрд┐ рдРрд╕реА рдШрдЯрдирд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ рдбреЗрдЯрд╛ рдЕрднреА рднреА рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рдо рдбреЗрдЯрд╛ рдбрд┐рд▓реАрд╡рд░реА рдХреЗ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд▓реЗ рд╣реИрдВ, рдереНрд░рд┐рдлреНрдЯ рдФрд░ Scribe рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж JSON рдФрд░ Http рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред
рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖
- рдЕрдиреБрд░реЛрдз рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдкрддрд╛ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЯреНрд░реЗрд╕ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд░реНрд╡рд░ рдХреЗ рднреАрддрд░ рд╣реЛ рдФрд░ рдЯреНрд░реЗрд╕ рдЖрдИрдбреА рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрд╕рд╛рдЗрди рдХреА рдЧрдИ рд╣реЛред рд╣рдо рдЗрд╕ рдЯреНрд░реЗрд╕ рдЖрдИрдбреА рдХрд╛ рдкреБрдирдГ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдирдП рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╕реНрдкреИрди рдЖрдИрдбреА рдмрдирд╛рддреЗ рд╣реИрдВред рд╣рдо рдкрд┐рдЫрд▓реЗ рд╕реНрдкреИрди рдХреЗ рдкреЗрд░реЗрдВрдЯ рд╕реНрдкреИрди рдЖрдИрдбреА рднреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рдХреЛрдИ рд╣реЛред рдпрд╣рд╛рдБ рдФрд░ рдпрд╣рд╛рдБ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдгред
- рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рдорд╛рди, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ HttpClientTracingFilter рд╣реИ рдЬреЛ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ Http рдЕрдиреБрд░реЛрдз рдореЗрдВ рдЯреНрд░реЗрд╕ рд╣реЗрдбрд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИред
- рд╣рдореЗрдВ рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЕрдиреБрд░реЛрдз рд╕реЗ рдкрд╣рд▓реЗ "рдЧреНрд░рд╛рд╣рдХ рднреЗрдЬрдирд╛" рдФрд░ "рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛" рдЬреИрд╕реЗ рдЙрдЪрд┐рдд рдиреЛрдЯреНрд╕ рднреА рдмрдирд╛рдиреЗ рд╣реЛрдВрдЧреЗред
- рд╕рд░реНрд╡рд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рдорд╛рди, рдбреЗрдЯрд╛ рдХреЛ рдЬрд╝рд┐рдкрдХрд┐рдирдЯреНрд░реИрд╕рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдЬрд┐рдкрдХрд┐рди рдХреЛ рднреЗрдЬрддрд╛ рд╣реИред