рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдЯреНрд░реЗрд╕рд┐рдВрдЧ, рдУрдкрди рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдЖрдгрд┐ рдЬреЗрдЧрд░

рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдЯреНрд░реЗрд╕рд┐рдВрдЧ, рдУрдкрди рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдЖрдгрд┐ рдЬреЗрдЧрд░

рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рдкреНрд░рдХрд▓реНрдкрд╛рдВрдордзреНрдпреЗ рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╡рд╛рдкрд░рддреЛ. рдЬреЗрд╡реНрд╣рд╛ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рдирд╛рддреАрд▓ рдЕрдбрдерд│реЗ рдпреЗрддрд╛рдд, рддреЗрд╡реНрд╣рд╛ рд▓реЙрдЧрдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдЖрдгрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдгреНрдпрд╛рдд рдмрд░рд╛рдЪ рд╡реЗрд│ рдЬрд╛рддреЛ. рд▓реЙрдЧ рдлрд╛рдЗрд▓рд╡рд░ рд╡реИрдпрдХреНрддрд┐рдХ рдСрдкрд░реЗрд╢рдиреНрд╕рдЪреА рд╡реЗрд│ рд▓реЙрдЧрд┐рдВрдЧ рдХрд░рддрд╛рдирд╛, рдпрд╛ рдСрдкрд░реЗрд╢рдиреНрд╕рдЪреЗ рдЖрд╡рд╛рд╣рди рдХрд╢рд╛рдореБрд│реЗ рдЭрд╛рд▓реЗ рд╣реЗ рд╕рдордЬрдгреЗ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдХрдареАрдг рдЕрд╕рддреЗ, рдХреНрд░рд┐рдпрд╛рдВрдЪрд╛ рдХреНрд░рдо рдХрд┐рдВрд╡рд╛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╕реЗрд╡рд╛рдВрдордзреНрдпреЗ рдПрдХрд╛ рдСрдкрд░реЗрд╢рдирдЪреНрдпрд╛ рд╡реЗрд│реЗрдЪреНрдпрд╛ рдмрджрд▓рд╛рдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдШреЗрдгреЗ.

рдореЕрдиреНрдпреБрдЕрд▓ рд╢реНрд░рдо рдХрдореА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рдЯреНрд░реЗрд╕рд┐рдВрдЧ рд╕рд╛рдзрдирд╛рдВрдкреИрдХреА рдПрдХ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛. рдЖрдкрдг рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдХрд╕реЗ рдЖрдгрд┐ рдХрд╛ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рдЖрдореНрд╣реА рддреЗ рдХрд╕реЗ рдХреЗрд▓реЗ рдпрд╛рдмрджреНрджрд▓ рдЖрдгрд┐ рдпрд╛ рд▓реЗрдЦрд╛рдд рдЪрд░реНрдЪрд╛ рдХреЗрд▓реА рдЬрд╛рдИрд▓.

рдЯреНрд░реЗрд╕рд┐рдВрдЧрд╕рд╣ рдХреЛрдгрддреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрддрд╛рдд

  1. рдПрдХрд╛рдЪ рд╕реЗрд╡реЗрдордзреНрдпреЗ рдЖрдгрд┐ рд╕рд░реНрд╡ рд╕рд╣рднрд╛рдЧреА рд╕реЗрд╡рд╛рдВрдордзреНрдпреЗ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рдирд╛рддреАрд▓ рдЕрдбрдерд│реЗ рд╢реЛрдзрд╛. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде:
    • рд╕реЗрд╡рд╛рдВрдордзреАрд▓ рдЕрдиреЗрдХ рд▓рд╣рд╛рди рд╕рд▓рдЧ рдХреЙрд▓реНрд╕, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЬрд┐рдУрдХреЛрдбрд┐рдВрдЧ рдХрд┐рдВрд╡рд╛ рдбреЗрдЯрд╛рдмреЗрд╕рд▓рд╛.
    • рджреАрд░реНрдШ I/O рдкреНрд░рддреАрдХреНрд╖рд╛, рдЬрд╕реЗ рдХреА рдиреЗрдЯрд╡рд░реНрдХ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХрд┐рдВрд╡рд╛ рдбрд┐рд╕реНрдХ рд╡рд╛рдЪрдгреЗ.
    • рд▓рд╛рдВрдм рдбреЗрдЯрд╛ рдкрд╛рд░реНрд╕рд┐рдВрдЧ.
    • рджреАрд░реНрдШ рдСрдкрд░реЗрд╢рдиреНрд╕рд╕рд╛рдареА cpu рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
    • рдХреЛрдбрдЪреЗ рд╡рд┐рднрд╛рдЧ рдЬреЗ рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рдорд┐рд│рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдирд╛рд╣реАрдд рдЖрдгрд┐ рдХрд╛рдврд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд рдХрд┐рдВрд╡рд╛ рд╡рд┐рд▓рдВрдм рд╣реЛрдК рд╢рдХрддрд╛рдд.
  2. рдСрдкрд░реЗрд╢рди рдХреЗрд▓реНрдпрд╛рд╡рд░ рдХрд╛рдп рдореНрд╣рдгрддрд╛рдд рдЖрдгрд┐ рдХрд╛рдп рд╣реЛрддреЗ рддреЗ рдХреЛрдгрддреНрдпрд╛ рдХреНрд░рдорд╛рдиреЗ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рд╕рдордЬреВрди рдШреНрдпрд╛.
    рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдЯреНрд░реЗрд╕рд┐рдВрдЧ, рдУрдкрди рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдЖрдгрд┐ рдЬреЗрдЧрд░
    рд╣реЗ рдкрд╛рд╣рд┐рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдХреА, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╡рд┐рдирдВрддреА WS рд╕реЗрд╡реЗрдХрдбреЗ рдЖрд▓реА -> WS рд╕реЗрд╡реЗрдиреЗ R рд╕реЗрд╡реЗрджреНрд╡рд╛рд░реЗ рдбреЗрдЯрд╛рдЪреА рдкреВрд░реНрддрддрд╛ рдХреЗрд▓реА -> рдирдВрддрд░ V рд╕реЗрд╡реЗрд▓рд╛ рд╡рд┐рдирдВрддреА рдкрд╛рдард╡рд▓реА -> V рд╕реЗрд╡реЗрдиреЗ рднрд░рдкреВрд░ рдбреЗрдЯрд╛ рд▓реЛрдб рдХреЗрд▓рд╛. R рд╕реЗрд╡рд╛ -> P рд╕реЗрд╡реЗрдХрдбреЗ рдЧреЗрд▓реА -> P рд╕реЗрд╡рд╛ рдкреБрдиреНрд╣рд╛ рд╕реЗрд╡реЗрдХрдбреЗ рдЧреЗрд▓реА R -> рд╕реЗрд╡рд╛ V рдиреЗ рдирд┐рдХрд╛рд▓рд╛рдХрдбреЗ рджреБрд░реНрд▓рдХреНрд╖ рдХреЗрд▓реЗ рдЖрдгрд┐ J -> рд╕реЗрд╡реЗрдХрдбреЗ рдЧреЗрд▓реЗ рдЖрдгрд┐ рддреНрдпрд╛рдирдВрддрд░рдЪ рдбрдмреНрд▓реНрдпреВрдПрд╕ рд╕реЗрд╡реЗрд▓рд╛ рдкреНрд░рддрд┐рд╕рд╛рдж рдкрд░рдд рдХреЗрд▓рд╛, рдордзреНрдпреЗ рдЖрдгрдЦреА рдХрд╛рд╣реАрддрд░реА рдореЛрдЬрдгреЗ рд╕реБрд░реВ рдареЗрд╡рд▓реЗ. рдкрд╛рд░реНрд╢реНрд╡рднреВрдореА
    рд╕рдВрдкреВрд░реНрдг рдкреНрд░рдХреНрд░рд┐рдпреЗрд╕рд╛рдареА рдЕрд╢рд╛ рдЯреНрд░реЗрд╕ рдХрд┐рдВрд╡рд╛ рддрдкрд╢реАрд▓рд╡рд╛рд░ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдгрд╛рд╢рд┐рд╡рд╛рдп, рдХреЛрдб рдкреНрд░рдердордЪ рдкрд╛рд╣рддрд╛рдирд╛ рдХрд╛рдп рдШрдбрдд рдЖрд╣реЗ рд╣реЗ рд╕рдордЬрдгреЗ рдЦреВрдк рдХрдареАрдг рдЖрд╣реЗ рдЖрдгрд┐ рдХреЛрдб рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╕реЗрд╡рд╛рдВрдордзреНрдпреЗ рд╡рд┐рдЦреБрд░рд▓реЗрд▓рд╛ рдЖрд╣реЗ рдЖрдгрд┐ рдбрдмреНрдпрд╛рдВрдЪреНрдпрд╛ рдЖрдгрд┐ рдЗрдВрдЯрд░рдлреЗрд╕рдЪреНрдпрд╛ рдЧреБрдЪреНрдЫрд╛рдЪреНрдпрд╛ рдорд╛рдЧреЗ рд▓рдкрд▓реЗрд▓рд╛ рдЖрд╣реЗ.
  3. рддреНрдпрд╛рдирдВрддрд░рдЪреНрдпрд╛ рд╕реНрдердЧрд┐рдд рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рд╕рд╛рдареА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреНрдпрд╛ рдЭрд╛рдбрд╛рдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреАрдЪреЗ рд╕рдВрдХрд▓рди. рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЯрдкреНрдкреНрдпрд╛рд╡рд░, рдЖрдкрдг рдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рдЙрдкрд▓рдмреНрдз рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЯреНрд░реЗрд╕рдордзреНрдпреЗ рдорд╛рд╣рд┐рддреА рдЬреЛрдбреВ рд╢рдХрддрд╛ рдЖрдгрд┐ рдирдВрддрд░ рдХреЛрдгрддреНрдпрд╛ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛рдореБрд│реЗ рд╕рдорд╛рди рдкрд░рд┐рд╕реНрдерд┐рддреА рдирд┐рд░реНрдорд╛рдг рдЭрд╛рд▓реА рдЖрд╣реЗ рддреЗ рд╢реЛрдзреВрди рдХрд╛рдвреВ рд╢рдХрддрд╛. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде:
    • рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЖрдпрдбреА
    • рдЕрдзрд┐рдХрд╛рд░
    • рдирд┐рд╡рдбрд▓реЗрд▓реНрдпрд╛ рдкрджреНрдзрддреАрдЪрд╛ рдкреНрд░рдХрд╛рд░
    • рд▓реЙрдЧ рдХрд┐рдВрд╡рд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рддреНрд░реБрдЯреА
  4. рдореЗрдЯреНрд░рд┐рдХреНрд╕рдЪреНрдпрд╛ рдЙрдкрд╕рдореВрд╣рд╛рдд рдЯреНрд░реЗрд╕ рдмрджрд▓рдгреЗ рдЖрдгрд┐ рдореЗрдЯреНрд░рд┐рдХреНрд╕рдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рдкреБрдвреАрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг.

рдХрд╛рдп рдЯреНрд░реЗрд╕ рд▓реЙрдЧ рдХрд░реВ рд╢рдХрддрд╛. рд╕реНрдкреЕрди

рдЯреНрд░реЗрд╕рд┐рдВрдЧрдордзреНрдпреЗ рд╕реНрдкреЕрдирдЪреА рд╕рдВрдХрд▓реНрдкрдирд╛ рдЖрд╣реЗ, рд╣реЗ рдХрдиреНрд╕реЛрд▓рд╕рд╛рдареА рдПрдХрд╛ рд▓реЙрдЧрдЪреЗ рдЕреЕрдирд╛рд▓реЙрдЧ рдЖрд╣реЗ. рд╕реНрдкрд╛рдордзреНрдпреЗ рдЖрд╣реЗ:

  • рдирд╛рд╡, рд╕рд╣рд╕рд╛ рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓реЗрд▓реНрдпрд╛ рдкрджреНрдзрддреАрдЪреЗ рдирд╛рд╡
  • рд╕реЗрд╡реЗрдЪреЗ рдирд╛рд╡ рдЬреНрдпрд╛рдордзреНрдпреЗ рд╕реНрдкреЕрди рд╡реНрдпреБрддреНрдкрдиреНрди рдЭрд╛рд▓рд╛
  • рд╕реНрд╡рддрдГрдЪрд╛ рдпреБрдирд┐рдХ рдЖрдпрдбреА
  • рдХреА/рдореВрд▓реНрдпрд╛рдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рдХрд╛рд╣реА рдкреНрд░рдХрд╛рд░рдЪреА рдореЗрдЯрд╛ рдорд╛рд╣рд┐рддреА рдЬреА рддреНрдпрд╛рдд рд▓реЙрдЧ рдЗрди рдХреЗрд▓реЗрд▓реА рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдкрджреНрдзрдд рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдХрд┐рдВрд╡рд╛ рдкрджреНрдзрдд рддреНрд░реБрдЯреАрд╕рд╣ рд╕рдорд╛рдкреНрдд рдЭрд╛рд▓реА рдХрд┐рдВрд╡рд╛ рдирд╛рд╣реА
  • рдпрд╛ рдХрд╛рд▓рд╛рд╡рдзреАрд╕рд╛рдареА рдкреНрд░рд╛рд░рдВрдн рдЖрдгрд┐ рд╕рдорд╛рдкреНрддреА рд╡реЗрд│рд╛
  • рдкрд╛рд▓рдХ рд╕реНрдкреЕрди рдЖрдпрдбреА

рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдкреЕрди рддреНрдпрд╛рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдкреВрд░реНрдг рд╣реЛрддрд╛рдЪ рдирдВрддрд░рдЪреНрдпрд╛ рдкреБрдирд░рд╛рд╡рд▓реЛрдХрдирд╛рд╕рд╛рдареА рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрдкреЕрди рдХрд▓реЗрдХреНрдЯрд░рдХрдбреЗ рдкрд╛рдард╡рд┐рд▓рд╛ рдЬрд╛рддреЛ. рднрд╡рд┐рд╖реНрдпрд╛рдд, рддреБрдореНрд╣реА рдкрд╛рд▓рдХ рдЖрдпрдбреАрджреНрд╡рд╛рд░реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реВрди рд╕рд░реНрд╡ рд╕реНрдкреЕрдирдЪреЗ рдПрдХ рдЭрд╛рдб рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрддрд╛. рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛рдирд╛, рдЖрдкрдг рд╢реЛрдзреВ рд╢рдХрддрд╛, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдХрд╛рд╣реА рд╕реЗрд╡реЗрдордзреАрд▓ рд╕рд░реНрд╡ рд╕реНрдкреЕрдиреНрд╕ рдЬреНрдпрд╛рдВрдирд╛ рдХрд╛рд╣реА рд╡реЗрд│реЗрдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рд╡реЗрд│ рд▓рд╛рдЧрд▓рд╛. рдкреБрдвреЗ, рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдкреЕрдирд╡рд░ рдЬрд╛рдКрди, рдпрд╛ рд╕реНрдкреЕрдирдЪреНрдпрд╛ рд╡рд░ рдЖрдгрд┐ рдЦрд╛рд▓реА рд╕рдВрдкреВрд░реНрдг рдЭрд╛рдб рдкрд╣рд╛.

рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдЯреНрд░реЗрд╕рд┐рдВрдЧ, рдУрдкрди рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдЖрдгрд┐ рдЬреЗрдЧрд░

Opentrace, Jagger рдЖрдгрд┐ рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рдкреНрд░рдХрд▓реНрдкрд╛рдВрд╕рд╛рдареА рддреЗ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ

рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдирдХ рдЖрд╣реЗ рдУрдкрдирдЯреНрд░реЗрд╕, рдЬреЗ рдХреЛрдгрддреНрдпрд╛рд╣реА рднрд╛рд╖реЗрддреАрд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рди рдШреЗрддрд╛, рдХрд╕реЗ рдЖрдгрд┐ рдХрд╛рдп рдЧреЛрд│рд╛ рдХрд░рд╛рд╡реЗ рдпрд╛рдЪреЗ рд╡рд░реНрдгрди рдХрд░рддреЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, Java рдордзреНрдпреЗ, рдЯреНрд░реЗрд╕рд╕рд╣ рд╕рд░реНрд╡ рдХрд╛рд░реНрдп рд╕рд╛рдорд╛рдиреНрдп Opentrace API рджреНрд╡рд╛рд░реЗ рдХреЗрд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ рддреНрдпрд╛ рдЕрдВрддрд░реНрдЧрдд, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, Jaeger рдХрд┐рдВрд╡рд╛ рд░рд┐рдХреНрдд рдбреАрдлреЙрд▓реНрдЯ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЬреЗ рдХрд╛рд╣реАрд╣реА рдХрд░рдд рдирд╛рд╣реА рддреЗ рд▓рдкрд╡рд▓реЗ рдЬрд╛рдК рд╢рдХрдд рдирд╛рд╣реА.
рдЖрдореНрд╣реА рд╡рд╛рдкрд░рдд рдЖрд╣реЛрдд рдЬрд╛рдЧрд░ рдУрдкрдирдЯреНрд░реЗрд╕рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдореНрд╣рдгреВрди. рдпрд╛рдд рдЕрдиреЗрдХ рдШрдЯрдХ рдЕрд╕рддрд╛рдд:

рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдЯреНрд░реЗрд╕рд┐рдВрдЧ, рдУрдкрди рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдЖрдгрд┐ рдЬреЗрдЧрд░

  • Jaeger-agent рд╣рд╛ рдПрдХ рд╕реНрдерд╛рдирд┐рдХ рдПрдЬрдВрдЯ рдЖрд╣реЗ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдкреНрд░рддреНрдпреЗрдХ рдорд╢реАрдирд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рд╕реЗрд╡рд╛ рд╕реНрдерд╛рдирд┐рдХ рдбреАрдлреЙрд▓реНрдЯ рдкреЛрд░реНрдЯрд╡рд░ рд▓реЙрдЧ рдЗрди рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд. рдПрдЬрдВрдЯ рдирд╕рд▓реНрдпрд╛рд╕, рдпрд╛ рдорд╢реАрдирд╡рд░реАрд▓ рд╕рд░реНрд╡ рд╕реЗрд╡рд╛рдВрдЪреЗ рдЯреНрд░реЗрд╕ рд╕рд╣рд╕рд╛ рдЕрдХреНрд╖рдо рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд
  • рдЬреЗрдЧрд░-рдХрд▓реЗрдХреНрдЯрд░ - рд╕рд░реНрд╡ рдПрдЬрдВрдЯ рддреНрдпрд╛рд▓рд╛ рдПрдХрддреНрд░рд┐рдд рдЯреНрд░реЗрд╕ рдкрд╛рдард╡рддрд╛рдд рдЖрдгрд┐ рддреЗ рдирд┐рд╡рдбрд▓реЗрд▓реНрдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдареЗрд╡рддрд╛рдд
  • рдбреЗрдЯрд╛рдмреЗрд╕ рд╣рд╛ рддреНрдпрд╛рдВрдЪрд╛ рдкрд╕рдВрддреАрдЪрд╛ рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдЖрдореНрд╣реА рдЗрд▓рд╛рд╕реНрдЯрд┐рдХрд╕рд░реНрдЪ рд╡рд╛рдкрд░рддреЛ, рдЗрддрд░ рдХрд╛рд╣реА рдбреЗрдЯрд╛рдмреЗрд╕рд╕рд╛рдареА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЖрдгрд┐ рдореЗрдорд░реАрдордзреАрд▓ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЖрд╣реЗ рдЬреА рдбрд┐рд╕реНрдХрд╡рд░ рдХрд╛рд╣реАрд╣реА рдЬрддрди рдХрд░рдд рдирд╛рд╣реА.
  • Jaeger-query рд╣реА рдПрдХ рд╕реЗрд╡рд╛ рдЖрд╣реЗ рдЬреА рдбреЗрдЯрд╛рдмреЗрд╕рд╡рд░ рдЬрд╛рддреЗ рдЖрдгрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рд╕рд╛рдареА рдЖрдзреАрдЪ рдЧреЛрд│рд╛ рдХреЗрд▓реЗрд▓реЗ рдЯреНрд░реЗрд╕ рдкрд░рдд рдХрд░рддреЗ
  • Jaeger-ui рд╣рд╛ рдЯреНрд░реЗрд╕ рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдкрд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдЖрд╣реЗ, рддреЛ jaeger-query рд╡рд░ рдЬрд╛рддреЛ

рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдЯреНрд░реЗрд╕рд┐рдВрдЧ, рдУрдкрди рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдЖрдгрд┐ рдЬреЗрдЧрд░

рдПрдХрд╛ рд╡реЗрдЧрд│реНрдпрд╛ рдШрдЯрдХрд╛рд▓рд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рднрд╛рд╖рд╛рдВрд╕рд╛рдареА рдУрдкрдирдЯреНрд░реЗрд╕ рдЬреЗрдЧрд░рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдореНрд╣рдЯрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ, рдЬреНрдпрд╛рджреНрд╡рд╛рд░реЗ рд╕реНрдкреЕрди рдЬреЗрдЧрд░-рдПрдЬрдВрдЯрд▓рд╛ рдкрд╛рдард╡рд▓реЗ рдЬрд╛рддрд╛рдд.
Java рдордзреНрдпреЗ Jagger рдХрдиреЗрдХреНрдЯ рдХрд░рдд рдЖрд╣реЗ io.opentracing.Tracer рдЗрдВрдЯрд░рдлреЗрд╕рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЦрд╛рд▓реА рдпреЗрддреЗ, рддреНрдпрд╛рдирдВрддрд░ рддреНрдпрд╛рджреНрд╡рд╛рд░реЗ рд╕рд░реНрд╡ рдЯреНрд░реЗрд╕ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдЬрдВрдЯрдХрдбреЗ рдЬрд╛рддреАрд▓.

рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдЯреНрд░реЗрд╕рд┐рдВрдЧ, рдУрдкрди рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдЖрдгрд┐ рдЬреЗрдЧрд░

рддрд╕реЗрдЪ рд╕реНрдкреНрд░рд┐рдВрдЧ рдШрдЯрдХрд╛рд╕рд╛рдареА, рдЖрдкрдг рдХрдиреЗрдХреНрдЯ рдХрд░реВ рд╢рдХрддрд╛ рдУрдкрдирдЯреНрд░реЗрд╕рд┐рдВрдЧ-рд╕реНрдкреНрд░рд┐рдВрдЧ-рдХреНрд▓рд╛рдЙрдб-рд╕реНрдЯрд╛рд░реНрдЯрд░ рдЖрдгрд┐ Jaeger рдХрдбреВрди рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА opentracing-spring-jaeger-Cloud-starter рдЬреЗ рдпрд╛ рдШрдЯрдХрд╛рдВрдордзреВрди рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЧреЛрд╖реНрдЯреАрд╕рд╛рдареА рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдЖрдкреЛрдЖрдк рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░реЗрд▓, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде HTTP рдирд┐рдпрдВрддреНрд░рдХрд╛рдВрдирд╛ рд╡рд┐рдирдВрддреНрдпрд╛, jdbc рджреНрд╡рд╛рд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕рд▓рд╛ рд╡рд┐рдирдВрддреНрдпрд╛ рдЗ.

Java рдордзреНрдпреЗ рд▓реЙрдЧрд┐рдВрдЧ рдЯреНрд░реЗрд╕

рдХреБрдареЗрддрд░реА рд╡рд░рдЪреНрдпрд╛ рд╕реНрддрд░рд╛рд╡рд░, рдкреНрд░рдердо рд╕реНрдкреЕрди рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рд╣реЗ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЬреЗрд╡реНрд╣рд╛ рд╡рд┐рдирдВрддреА рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рддреЗрд╡реНрд╣рд╛ рд╕реНрдкреНрд░рд┐рдВрдЧ рдХрдВрдЯреНрд░реЛрд▓рд░рджреНрд╡рд╛рд░реЗ, рдХрд┐рдВрд╡рд╛ рдХрд╛рд╣реАрд╣реА рдирд╕рд▓реНрдпрд╛рд╕ рд╡реНрдпрдХреНрддрд┐рдЪрд▓рд┐рддрдкрдгреЗ. рддреНрдпрд╛рдирдВрддрд░ рддреЗ рдЦрд╛рд▓реАрд▓ рд╕реНрдХреЛрдкрджреНрд╡рд╛рд░реЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рдЬрд░ рдЦрд╛рд▓реАрд▓рдкреИрдХреА рдХреЛрдгрддреНрдпрд╛рд╣реА рдкрджреНрдзрддреАрд▓рд╛ рд╕реНрдкреЕрди рдЬреЛрдбрд╛рдпрдЪрд╛ рдЕрд╕реЗрд▓, рддрд░ рддреА рд╕реНрдХреЛрдкрдордзреВрди рд╕рдзреНрдпрд╛рдЪрд╛ рдНрдХреНрдЯрд┐рд╡реНрд╣рд╕реНрдкреЕрди рдШреЗрддреЗ, рдирд╡реАрди рд╕реНрдкреЕрди рддрдпрд╛рд░ рдХрд░рддреЗ рдЖрдгрд┐ рдореНрд╣рдгрддреЗ рдХреА рддреНрдпрд╛рдЪреЗ рдкрд╛рд▓рдХ рдкрд░рд┐рдгрд╛рдореА рд╕рдХреНрд░рд┐рдп рд╕реНрдкреЕрди рдЖрд╣реЗ рдЖрдгрд┐ рдирд╡реАрди рд╕реНрдкреЕрди рд╕рдХреНрд░рд┐рдп рдХрд░рддреЗ. рдмрд╛рд╣реНрдп рд╕реЗрд╡рд╛рдВрдирд╛ рдХреЙрд▓ рдХрд░рддрд╛рдирд╛, рд╡рд░реНрддрдорд╛рди рд╕рдХреНрд░рд┐рдп рд╕реНрдкреЕрди рддреНрдпрд╛рдВрдирд╛ рджрд┐рд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ рддреНрдпрд╛ рд╕реЗрд╡рд╛ рдпрд╛ рд╕реНрдкреЕрдирдЪреНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рдд рдирд╡реАрди рд╕реНрдкреЕрди рддрдпрд╛рд░ рдХрд░рддрд╛рдд.
рд╕рд░реНрд╡ рдХрд╛рдо рдЯреНрд░реЗрд╕рд░ рдЙрджрд╛рд╣рд░рдгрд╛рджреНрд╡рд╛рд░реЗ рд╣реЛрддреЗ, рддреБрдореНрд╣реА рддреЗ DI рдореЗрдХреЕрдирд┐рдЭрдо рдХрд┐рдВрд╡рд╛ GlobalTracer.get () рджреНрд╡рд╛рд░реЗ рдорд┐рд│рд╡реВ рд╢рдХрддрд╛ рдЬрд░ DI рдпрдВрддреНрд░рдгрд╛ рдХрд╛рдо рдХрд░рдд рдирд╕реЗрд▓ рддрд░ рдЧреНрд▓реЛрдмрд▓ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдореНрд╣рдгреВрди. рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, рдЯреНрд░реЗрд╕рд░ рдкреНрд░рд╛рд░рдВрдн рдХреЗрд▓рд╛ рдирд╕рд▓реНрдпрд╛рд╕, NoopTracer рдкрд░рдд рдпреЗрдИрд▓ рдЬреЗ рдХрд╛рд╣реАрд╣реА рдХрд░рдд рдирд╛рд╣реА.
рдкреБрдвреЗ, рд╡рд░реНрддрдорд╛рди рд╕реНрдХреЛрдк рдЯреНрд░реЗрд╕рд░рдХрдбреВрди рд╕реНрдХреЛрдк рдореЕрдиреЗрдЬрд░рджреНрд╡рд╛рд░реЗ рдкреНрд░рд╛рдкреНрдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ, рдирд╡реАрди рд╕реНрдкреЕрдирдЪреНрдпрд╛ рдмрдВрдзрдирд╛рд╕рд╣ рд╡рд░реНрддрдорд╛рди рд╕реНрдХреЛрдкрдордзреВрди рдПрдХ рдирд╡реАрди рд╕реНрдХреЛрдк рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рдирдВрддрд░ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓рд╛ рд╕реНрдХреЛрдк рдмрдВрдж рдХреЗрд▓рд╛ рдЬрд╛рддреЛ, рдЬреЛ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓рд╛ рд╕реНрдкреЕрди рдмрдВрдж рдХрд░рддреЛ рдЖрдгрд┐ рдорд╛рдЧреАрд▓ рд╕реНрдХреЛрдкрд▓рд╛ рдкрд░рдд рдХрд░рддреЛ. рд╕рдХреНрд░рд┐рдп рд╕реНрдерд┐рддреА. рд╡реНрдпрд╛рдкреНрддреА рдПрдХрд╛ рдереНрд░реЗрдбрд╢реА рдЬреЛрдбрд▓реЗрд▓реА рдЕрд╕рддреЗ, рддреНрдпрд╛рдореБрд│реЗ рдорд▓реНрдЯреА-рдереНрд░реЗрдбреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░рддрд╛рдирд╛, рдпрд╛ рд╕реНрдкреЕрдирдЪреНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рдд рджреБрд╕рд░реНтАНрдпрд╛ рдереНрд░реЗрдбрдЪреА рд╡реНрдпрд╛рдкреНрддреА рдЖрдгрдЦреА рд╕рдХреНрд░рд┐рдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рд╕рдХреНрд░рд┐рдп рд╕реНрдкреЕрди рджреБрд╕рд░реНтАНрдпрд╛ рдереНрд░реЗрдбрд╡рд░ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рд╡рд┐рд╕рд░реВ рдирдпреЗ.

io.opentracing.Tracer tracer = ...; // GlobalTracer.get()

void DoSmth () {
   try (Scope scope = tracer.buildSpan("DoSmth").startActive(true)) {
      ...
   }
}
void DoOther () {
    Span span = tracer.buildSpan("someWork").start();
    try (Scope scope = tracer.scopeManager().activate(span, false)) {
        // Do things.
    } catch(Exception ex) {
        Tags.ERROR.set(span, true);
        span.log(Map.of(Fields.EVENT, "error", Fields.ERROR_OBJECT, ex, Fields.MESSAGE, ex.getMessage()));
    } finally {
        span.finish();
    }
}

void DoAsync () {
    try (Scope scope = tracer.buildSpan("ServiceHandlerSpan").startActive(false)) {
        ...
        final Span span = scope.span();
        doAsyncWork(() -> {
            // STEP 2 ABOVE: reactivate the Span in the callback, passing true to
            // startActive() if/when the Span must be finished.
            try (Scope scope = tracer.scopeManager().activate(span, false)) {
                ...
            }
        });
    }
}

рдорд▓реНрдЯреА-рдереНрд░реЗрдбреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧрд╕рд╛рдареА, TracedExecutorService рдЖрдгрд┐ рддрддреНрд╕рдо рд░реЕрдкрд░реНрд╕ рджреЗрдЦреАрд▓ рдЖрд╣реЗрдд рдЬреЗ рдЕреЕрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдЯрд╛рд╕реНрдХ рд▓реЙрдиреНрдЪ рдХреЗрд▓реНрдпрд╛рд╡рд░ рд╡рд░реНрддрдорд╛рди рд╕реНрдкреЕрди рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рдереНрд░реЗрдбрд╡рд░ рдлреЙрд░рд╡рд░реНрдб рдХрд░рддрд╛рдд:

private ExecutorService executor = new TracedExecutorService(
    Executors.newFixedThreadPool(10), GlobalTracer.get()
);

рдмрд╛рд╣реНрдп http рд╡рд┐рдирдВрддреНрдпрд╛рдВрд╕рд╛рдареА рдЖрд╣реЗ TracingHttpClient

HttpClient httpClient = new TracingHttpClientBuilder().build();

рдЖрдореНрд╣рд╛рд▓рд╛ рдЬреНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдВрдЪрд╛ рд╕рд╛рдордирд╛ рдХрд░рд╛рд╡рд╛ рд▓рд╛рдЧрд▓рд╛

  • рдЯреНрд░реЗрд╕рд░ рд╕реЗрд╡рд╛ рдХрд┐рдВрд╡рд╛ рдШрдЯрдХрд╛рдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓рд╛ рдирд╕рд▓реНрдпрд╛рд╕ рдмреАрдиреНрд╕ рдЖрдгрд┐ рдбреАрдЖрдп рдиреЗрд╣рдореА рдХрд╛рд░реНрдп рдХрд░рдд рдирд╛рд╣реАрдд рдСрдЯреЛрд╡рд╛рдпрд░реНрдб рдЯреНрд░реЗрд╕рд░ рдХрджрд╛рдЪрд┐рдд рдХрд╛рдо рдХрд░рдгрд╛рд░ рдирд╛рд╣реА рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ GlobalTracer.ge() рд╡рд╛рдкрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓.
  • рдЬрд░ рддреЗ рдШрдЯрдХ рдХрд┐рдВрд╡рд╛ рд╕реЗрд╡рд╛ рдирд╕реЗрд▓ рдХрд┐рдВрд╡рд╛ рдкрджреНрдзрдд рддреНрдпрд╛рдЪ рд╡рд░реНрдЧрд╛рдЪреНрдпрд╛ рд╢реЗрдЬрд╛рд░рдЪреНрдпрд╛ рдкрджреНрдзрддреАрд╡рд░реВрди рдХреЙрд▓ рдХреЗрд▓реА рдЕрд╕реЗрд▓ рддрд░ рднрд╛рд╖реНрдпреЗ рдХрд╛рд░реНрдп рдХрд░рдд рдирд╛рд╣реАрдд. рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдп рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реЗ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА рдХрд╛рд│рдЬреА рдШреНрдпрд╛рд╡реА рд▓рд╛рдЧреЗрд▓ рдЖрдгрд┐ @Traced рдХрд╛рд░реНрдп рдХрд░рдд рдирд╕рд▓реНрдпрд╛рд╕ рдореЕрдиреНрдпреБрдЕрд▓ рдЯреНрд░реЗрд╕ рдирд┐рд░реНрдорд┐рддреА рд╡рд╛рдкрд░рд╛. рддреБрдореНрд╣реА рдЬрд╛рд╡рд╛ рднрд╛рд╖реНрдпрд╛рдВрд╕рд╛рдареА рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдВрдкрд╛рдЗрд▓рд░ рджреЗрдЦреАрд▓ рд╕рдВрд▓рдЧреНрди рдХрд░реВ рд╢рдХрддрд╛, рдирдВрддрд░ рддреНрдпрд╛рдВрдиреА рд╕рд░реНрд╡рддреНрд░ рдХрд╛рд░реНрдп рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ.
  • рдЬреБрдиреНрдпрд╛ рд╕реНрдкреНрд░рд┐рдВрдЧ рдЖрдгрд┐ рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯрдордзреНрдпреЗ, рдУрдкрдирдЯреНрд░реЗрдВрдЧ рд╕реНрдкреНрд░рд┐рдВрдЧ рдХреНрд▓рд╛рдЙрдб рдСрдЯреЛрдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдбреАрдЖрдп рдордзреАрд▓ рдмрдЧреНрд╕рдореБрд│реЗ рдХрд╛рд░реНрдп рдХрд░рдд рдирд╛рд╣реА, рдирдВрддрд░ рд╕реНрдкреНрд░рд┐рдВрдЧ рдШрдЯрдХрд╛рдВрдордзреАрд▓ рдЯреНрд░реЗрд╕ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рдХрд╛рд░реНрдп рдХрд░реВ рдЗрдЪреНрдЫрд┐рдд рдЕрд╕рд▓реНрдпрд╛рд╕, рдЖрдкрдг рддреЗ рд╕рдорд╛рдирддреЗрдиреЗ рдХрд░реВ рд╢рдХрддрд╛ github.com/opentracing-contrib/java-spring-jaeger/blob/master/opentracing-spring-jaeger-starter/src/main/java/io/opentracing/contrib/java/spring/jaeger/starter/JaegerAutoConfiguration.java
  • рд╕рдВрд╕рд╛рдзрдирд╛рдВрд╕рд╣ рдкреНрд░рдпрддреНрди рдХрд░рд╛ рдЧреНрд░реВрд╡реАрдордзреНрдпреЗ рдХрд╛рд░реНрдп рдХрд░рдд рдирд╛рд╣реА, рдЖрдкрдг рд╢реЗрд╡рдЯреА рдкреНрд░рдпрддреНрди рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
  • рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд╡реЗрдЪреЗ рд╕реНрд╡рддрдГрдЪреЗ spring.application.name рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЬреНрдпрд╛ рдЕрдВрддрд░реНрдЧрдд рдЯреНрд░реЗрд╕ рд▓реЙрдЧ рдХреЗрд▓реЗ рдЬрд╛рддреАрд▓. рд╡рд┐рдХреНрд░реА рдЖрдгрд┐ рдЪрд╛рдЪрдгреАрд╕рд╛рдареА рд╡реЗрдЧрд│реЗ рдирд╛рд╡ рдХрд╛рдп рдЖрд╣реЗ, рдЬреЗрдгреЗрдХрд░реБрди рддреНрдпрд╛рдВрдирд╛ рдПрдХрддреНрд░рд┐рддрдкрдгреЗ рд╡реНрдпрддреНрдпрдп рдЖрдгреВ рдирдпреЗ.
  • рдЬрд░ рддреБрдореНрд╣реА GlobalTracer рдЖрдгрд┐ tomcat рд╡рд╛рдкрд░рдд рдЕрд╕рд╛рд▓, рддрд░ рдпрд╛ tomcat рдордзреНрдпреЗ рдЪрд╛рд▓рдгрд╛рд▒реНрдпрд╛ рд╕рд░реНрд╡ рд╕реЗрд╡рд╛рдВрдордзреНрдпреЗ рдПрдХ GlobalTracer рдЖрд╣реЗ, рддреНрдпрд╛рдореБрд│реЗ рддреНрдпрд╛ рд╕рд░реНрд╡ рд╕реЗрд╡рд╛рдВрдЪреЗ рдирд╛рд╡ рд╕рдорд╛рди рдЕрд╕реЗрд▓.
  • рдкрджреНрдзрддреАрдордзреНрдпреЗ рдЯреНрд░реЗрд╕ рдЬреЛрдбрддрд╛рдирд╛, рдЖрдкрдгрд╛рд╕ рдЦрд╛рддреНрд░реА рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдХреА рддреЗ рд▓реВрдкрдордзреНрдпреЗ рдЕрдиреЗрдХ рд╡реЗрд│рд╛ рдХреЙрд▓ рдХреЗрд▓реЗ рдЬрд╛рдд рдирд╛рд╣реА. рд╕рд░реНрд╡ рдХреЙрд▓рд╕рд╛рдареА рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЯреНрд░реЗрд╕ рдЬреЛрдбрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдЬреЗ рдПрдХреВрдг рдХрд╛рдорд╛рдЪреНрдпрд╛ рд╡реЗрд│реЗрдЪреА рд╣рдореА рджреЗрддреЗ. рдЕрдиреНрдпрдерд╛, рдЕрддрд┐рд░рд┐рдХреНрдд рднрд╛рд░ рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЬрд╛рдИрд▓.
  • рдПрдХрджрд╛ jaeger-ui рдордзреНрдпреЗ, рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рдЯреНрд░реЗрд╕рд╕рд╛рдареА рдЦреВрдк рдореЛрдареНрдпрд╛ рд╡рд┐рдирдВрддреНрдпрд╛ рдХреЗрд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛ рдЖрдгрд┐ рддреНрдпрд╛рдВрдиреА рдкреНрд░рддрд┐рд╕рд╛рджрд╛рдЪреА рдкреНрд░рддреАрдХреНрд╖рд╛ рди рдХреЗрд▓реНрдпрд╛рдореБрд│реЗ, рддреНрдпрд╛рдВрдиреА рддреЗ рдкреБрдиреНрд╣рд╛ рдХреЗрд▓реЗ. рдкрд░рд┐рдгрд╛рдореА, jaeger-query рдЦреВрдк рдореЗрдорд░реА рдЦрд╛рдгреНрдпрд╛рд╕ рд╕реБрд░реБрд╡рд╛рдд рдХреЗрд▓реА рдЖрдгрд┐ рд▓рд╡рдЪрд┐рдХрддрд╛ рдХрдореА рдЭрд╛рд▓реА. jaeger-query рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░реВрди рдорджрдд рдХреЗрд▓реА

рдирдореБрдирд╛ рдШреЗрдгреЗ, рд╕рд╛рдард╡рдгреЗ рдЖрдгрд┐ рдЯреНрд░реЗрд╕ рдкрд╛рд╣рдгреЗ

рддреАрди рдкреНрд░рдХрд╛рд░ рдЖрд╣реЗрдд рд╕реЕрдореНрдкрд▓рд┐рдВрдЧ рдЯреНрд░реЗрд╕:

  1. Const рдЬреЗ рд╕рд░реНрд╡ рдЯреНрд░реЗрд╕ рдкрд╛рдард╡рддреЗ рдЖрдгрд┐ рдЬрддрди рдХрд░рддреЗ.
  2. рд╕рдВрднрд╛рд╡реНрдпрддрд╛ рдЬреЗ рдХрд╛рд╣реА рджрд┐рд▓реЗрд▓реНрдпрд╛ рд╕рдВрднрд╛рд╡реНрдпрддреЗрд╕рд╣ рдЯреНрд░реЗрд╕ рдлрд┐рд▓реНрдЯрд░ рдХрд░рддреЗ.
  3. рд░реЗрдЯрд▓рд┐рдорд┐рдЯрд┐рдВрдЧ рдЬреЗ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдж рдЯреНрд░реЗрд╕рдЪреА рд╕рдВрдЦреНрдпрд╛ рдорд░реНрдпрд╛рджрд┐рдд рдХрд░рддреЗ. рддреБрдореНрд╣реА рдпрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдХреНрд▓рд╛рдпрдВрдЯрд╡рд░ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░реВ рд╢рдХрддрд╛, рдПрдХрддрд░ рдЬреЗрдЧрд░-рдПрдЬрдВрдЯрд╡рд░ рдХрд┐рдВрд╡рд╛ рдХрд▓реЗрдХреНрдЯрд░рд╡рд░. рдЖрддрд╛ рдЖрдореНрд╣реА рд╡реНрд╣реЕрд▓реНрдпреБрдПрдЯрд░ рд╕реНрдЯреЕрдХрдордзреНрдпреЗ рдХреЙрдиреНрд╕реНрдЯ 1 рд╡рд╛рдкрд░рддреЛ, рдХрд╛рд░рдг рдЦреВрдк рд╡рд┐рдирдВрддреНрдпрд╛ рдирд╛рд╣реАрдд, рдкрд░рдВрддреБ рддреНрдпрд╛рдВрдирд╛ рдмрд░рд╛рдЪ рд╡реЗрд│ рд▓рд╛рдЧрддреЛ. рднрд╡рд┐рд╖реНрдпрд╛рдд, рдпрд╛рдореБрд│реЗ рд╕рд┐рд╕реНрдЯрдорд╡рд░ рдЬрд╛рд╕реНрдд рднрд╛рд░ рдкрдбрд▓реНрдпрд╛рд╕, рддреБрдореНрд╣реА рддреЗ рдорд░реНрдпрд╛рджрд┐рдд рдХрд░реВ рд╢рдХрддрд╛.

рдЖрдкрдг рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рд╡рд╛рдкрд░рдд рдЕрд╕рд▓реНрдпрд╛рд╕, рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рддреЗ рдХреЗрд╡рд│ рджреЛрди рджрд┐рд╡рд╕рд╛рдВрд╕рд╛рдареА рдЯреНрд░реЗрд╕ рд╕рдВрдЪрдпрд┐рдд рдХрд░рддреЗ. рдЖрдореНрд╣реА рд╡рд╛рдкрд░рдд рдЖрд╣реЛрдд рд▓рд╡рдЪрд┐рдХ рдЖрдгрд┐ рдЯреНрд░реЗрд╕ рд╕рд░реНрд╡ рдХрд╛рд│рд╛рд╕рд╛рдареА рд╕рд╛рдард╡рд▓реЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рд╣рдЯрд╡рд▓реЗ рдЬрд╛рдд рдирд╛рд╣реАрдд. рдкреНрд░рддреНрдпреЗрдХ рджрд┐рд╡рд╕рд╛рд╕рд╛рдареА рд╕реНрд╡рддрдВрддреНрд░ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде jaeger-service-2019-03-04. рднрд╡рд┐рд╖реНрдпрд╛рдд, рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЬреБрдиреНрдпрд╛ рдЯреНрд░реЗрд╕рдЪреА рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рд╕рд╛рдлрд╕рдлрд╛рдИ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ.

рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реЗ рдЯреНрд░реЗрд╕ рдкрд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареА:

  • рдЬреНрдпрд╛ рд╕реЗрд╡реЗрджреНрд╡рд╛рд░реЗ рддреБрдореНрд╣реА рдЯреНрд░реЗрд╕ рдлрд┐рд▓реНрдЯрд░ рдХрд░реВ рдЗрдЪреНрдЫрд┐рддрд╛ рддреА рд╕реЗрд╡рд╛ рдирд┐рд╡рдбрд╛, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, tomcat7-рдбреАрдлреЙрд▓реНрдЯ рдЕрд╢рд╛ рд╕реЗрд╡реЗрд╕рд╛рдареА рдЬреА рдЯреЙрдордХреЕрдЯрдордзреНрдпреЗ рдЪрд╛рд▓реВ рдЖрд╣реЗ рдЖрдгрд┐ рддрд┐рдЪреЗ рд╕реНрд╡рддрдГрдЪреЗ рдирд╛рд╡ рдирд╛рд╣реА.
  • рдирдВрддрд░ рдСрдкрд░реЗрд╢рди, рд╡реЗрд│ рдордзреНрдпрд╛рдВрддрд░ рдЖрдгрд┐ рдХрд┐рдорд╛рди рдСрдкрд░реЗрд╢рди рд╡реЗрд│ рдирд┐рд╡рдбрд╛, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде 10 рд╕реЗрдХрдВрджрд╛рдВрдкрд╛рд╕реВрди, рдлрдХреНрдд рджреАрд░реНрдШ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╛рдареА.
    рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдЯреНрд░реЗрд╕рд┐рдВрдЧ, рдУрдкрди рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдЖрдгрд┐ рдЬреЗрдЧрд░
  • рдПрдХрд╛ рдЯреНрд░реЗрд╕рд╡рд░ рдЬрд╛ рдЖрдгрд┐ рддрд┐рдереЗ рдХрд╛рдп рдордВрдж рд╣реЛрддреЗ рддреЗ рдкрд╣рд╛.
    рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдЯреНрд░реЗрд╕рд┐рдВрдЧ, рдУрдкрди рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдЖрдгрд┐ рдЬреЗрдЧрд░

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

рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг

рд▓реЗрдЦ

  • habr.com/ru/company/carprice/blog/340946 рд╡рд╛рд╕реНрддрд╡рд┐рдХ PHP рдЖрдгрд┐ рдЧреЛрд▓рдВрдЧ рдкреНрд░рдХрд▓реНрдкрд╛рдд рдЬреЗрдЧрд░ рдУрдкрдирдЯреНрд░реЗрд╕рд┐рдВрдЧ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕
  • www.uber.com/distributed-tracing рдЙрдмреЗрд░ рдЕрднрд┐рдпрд╛рдВрддреНрд░рд┐рдХреА рдпреЗрдереЗ рд╡рд┐рддрд░рд┐рдд рдЯреНрд░реЗрд╕рд┐рдВрдЧ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдгреЗ
  • opentracing.io/guides/java
  • medium.com/jaegertracing/running-jaeger-agent-on-bare-metal-d1fc47d31fab рдмреЗрдЕрд░ рдореЗрдЯрд▓рд╡рд░ рдЬреЗрдЧрд░ рдПрдЬрдВрдЯ рдЪрд╛рд▓рд╡рдгреЗ

рд╡реНрд╣рд┐рдбрд┐рдУ

  • www.youtube.com/watch?v=qg0ENOdP1Lo рд▓рд╛рдЗрдЯрдирд┐рдВрдЧ-рдлрд╛рд╕реНрдЯ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рдкреНрд░рд╢реНрдирд╛рдВрдирд╛ рд╡рд┐рддрд░реАрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА рдЬреЗрдЧрд░ рдЖрдгрд┐ рдкреНрд░реЛрдорд┐рдерд┐рдпрд╕ рдХрд╕реЗ рд╡рд╛рдкрд░рд▓реЗ - рдмреНрд░рд╛рдпрди рдмреЛрд░реЗрд╣реЕрдо
  • www.youtube.com/watch?v=WRntQsUajow рдкрд░рд┐рдЪрдп: Jaeger - Yuri Shkuro, Uber рдЖрдгрд┐ Pavol Loffay, Red Hat
  • www.youtube.com/watch?v=fsHb0qK37bc рд╕реЗрд░реНрдЧреЗрдИ рдЗрдпрд╛рдХреЛрд╡реНрд╣рд▓реЗрд╡реНрд╣, "рдореЛрдареНрдпрд╛ рд╡рд┐рдЬрдпрд╛рдЪреА рдПрдХ рдЫреЛрдЯреА рдЧреЛрд╖реНрдЯ: рдУрдкрдирдЯреНрд░реЗрд╕рд┐рдВрдЧ, рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдЖрдгрд┐ рдЬреЗрдЧрд░"

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛