เบเบงเบเปเบฎเบปเบฒเปเบเปเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒ microservice เปเบเปเบเบเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ. เปเบกเบทเปเบญเบเปเปเบเบปเบเบเปเบญเบเบเปเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเบตเบเบเบทเปเบ, เปเบเปเปเบงเบฅเบฒเบซเบผเบฒเบเปเบกเปเบเปเบเปเปเบงเบฅเบฒเปเบเบเบฒเบเบเบดเบเบเบฒเบกเปเบฅเบฐเบงเบดเปเบเบฒเบฐเบเบฑเบเบเบถเบ. เปเบกเบทเปเบญเบเบฑเบเบเบถเบเปเบงเบฅเบฒเบเบญเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเปเบฅเบฐเบเบปเบเปเบเบซเบฒเปเบเบฅเปเบเบฑเบเบเบถเบ, เบเบปเบเบเบฐเบเบดเปเบฅเปเบงเบกเบฑเบเบเบฒเบเบเบตเปเบเบฐเปเบเบปเปเบฒเปเบเบชเบดเปเบเบเบตเปเบเปเบฒเปเบเบชเบนเปเบเบฒเบเบฎเบฝเบเบฎเปเบญเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบซเบผเบปเปเบฒเบเบตเป, เปเบเบทเปเบญเบเบดเบเบเบฒเบกเบฅเปเบฒเบเบฑเบเบเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบซเบผเบทเบเบฒเบเบเปเบฝเบเปเบงเบฅเบฒเบเบญเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบซเบเบถเปเบเบเบตเปเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเบฒเบเปเบซเปเบเปเบฅเบดเบเบฒเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ.
เปเบเบทเปเบญเบซเบผเบธเบเบเปเบญเบเบเบฒเบเบญเบญเบเปเบฎเบเบเบฒเบเบเบนเปเบกเบท, เบเบงเบเปเบฎเบปเบฒเปเบเปเบเบฑเบเบชเบดเบเปเบเปเบเปเบซเบเบถเปเบเปเบเปเบเบทเปเบญเบเบกเบทเบเบดเบเบเบฒเบก. เบเปเบฝเบงเบเบฑเบเบงเบดเบเบตเบเบฒเบเปเบฅเบฐเปเบซเบเบเบปเบเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเบเบฒเบเบเบดเบเบเบฒเบกเปเบฅเบฐเบงเบดเบเบตเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเปเปเบฎเบฑเบเบกเบฑเบ, เปเบฅเบฐเบเบฐเบเบทเบเบเบถเบเบชเบฒเบซเบฒเบฅเบทเปเบเบเบปเบเบเบงเบฒเบกเบเบตเป.
เบเบฑเบเบซเบฒเปเบเบเบตเปเบชเบฒเบกเบฒเบเปเบเปเปเบเปเบเปเบเปเบงเบเบเบฒเบเบเบดเบเบเบฒเบก
- เบเบญเบเบซเบฒเบเปเปเบเบปเบเบเปเบญเบเบเปเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฑเบเบเบฒเบเปเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบฝเบงเปเบฅเบฐเปเบเบเบปเปเบเปเบกเปเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฑเบเบซเบกเบปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบตเปเปเบเบปเปเบฒเบฎเปเบงเบกเบเบฑเบเบซเบกเบปเบ. เบเบปเบโเบเบปเบงโเบขเปเบฒเบ:
- เบเบฒเบเปเบเบเบดเบเบเปเปเบเบฑเบเบชเบฑเปเบเบซเบผเบฒเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเปเบฅเบดเบเบฒเบ, เบเบปเบงเบขเปเบฒเบ, เปเบเบซเบฒ geocoding เบซเบผเบทเบเบฒเบเบเปเปเบกเบนเบ.
- I/O เบฅเปเบเปเบฒเบเบปเบเบเบฒเบ, เปเบเบฑเปเบ: เบเบฒเบเปเบญเบเปเบเบทเบญเบเปเบฒเบ เบซเบผเบทเบญเปเบฒเบเปเบเปเบ.
- เบงเบดเปเบเบฒเบฐเบเปเปเบกเบนเบเบเบฒเบง.
- เบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฒเบงเบเบตเปเบเปเบญเบเบเบฒเบ cpu.
- เบเบฒเบเบชเปเบงเบเบเบญเบเบฅเบฐเบซเบฑเบเบเบตเปเบเปเปเบเปเบฒเปเบเบฑเบเปเบเบทเปเบญเปเบซเปเปเบเปเบเบปเบเบชเบธเบเบเปเบฒเบเปเบฅเบฐเบชเบฒเบกเบฒเบเบเบทเบเปเบเบเบเปเบฒเบเบญเบญเบเบซเบผเบทเบเบฑเบเบเปเบฒ.
- เปเบเบปเปเบฒเปเบเบขเปเบฒเบเบเบฐเปเบเปเบเปเบเบฅเปเบฒเบเบฑเบเบชเบดเปเบเบเบตเปเปเบญเบตเปเบเบงเปเบฒเปเบฅเบฐเบชเบดเปเบเบเบตเปเปเบเบตเบเบเบทเปเบเปเบเปเบงเบฅเบฒเบเบตเปเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเปเบเบทเบเบเบฐเบเบดเบเบฑเบ.
เปเบซเบฑเบเปเบเปเบงเปเบฒเบเบปเบงเบขเปเบฒเบ Request เบกเบฒเบฎเบญเบเบเปเบฅเบดเบเบฒเบ WS -> เบเปเบฅเบดเบเบฒเบ WS เปเบเบตเปเบกเบเปเปเบกเบนเบเบเปเบฒเบเบเปเบฅเบดเบเบฒเบ R -> เปเบฅเปเบงเบชเบปเปเบเบเบณเบฎเปเบญเบเบเปเปเบเบเบตเปเบเปเบฅเบดเบเบฒเบ V -> เบเปเบฅเบดเบเบฒเบ V เปเบซเบผเบเบเปเปเบกเบนเบเบซเบผเบฒเบเบเบฒเบเบเปเบฅเบดเบเบฒเบ R -> เปเบเบเปเบฅเบดเบเบฒเบ P -> เบเปเบฅเบดเบเบฒเบ P เปเบเบซเบฒเบเปเบฅเบดเบเบฒเบ R เบญเบตเบเบเบฑเปเบ -> เบเปเบฅเบดเบเบฒเบ V เบเปเปเบชเบปเบเปเบเบเบปเบเปเบเปเบฎเบฑเบ เปเบฅเบฐเปเบเบเบตเปเบเปเบฅเบดเบเบฒเบ J -> เปเบฅเบฐเบญเบตเบเบขเปเบฒเบเปเบถเปเบ WS เบชเบทเบเบเปเปเบเบฒเบเบเบญเบเบชเบฐเปเบญเบ เปเบเบเบฐเบเบฐเบเบตเปเบเบฒเบเบเบณเบเบงเบเบเบทเบ.
เปเบเบเบเปเปเบกเบตเบฎเปเบญเบเบฎเบญเบเบเบฑเปเบเบเปเบฒเบงเบซเบผเบทเปเบญเบเบฐเบชเบฒเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเบชเปเบฒเบฅเบฑเบเบเบฐเบเบงเบเบเบฒเบเบเบฑเบเบซเบกเบปเบ, เบกเบฑเบเปเบเบฑเบเบเบฒเบเบเบฒเบเบซเบผเบฒเบเบเบตเปเบเบฐเปเบเบปเปเบฒเปเบเบชเบดเปเบเบเบตเปเปเบเบตเบเบเบถเปเบเปเบเปเบงเบฅเบฒเบเบตเปเปเบเบดเปเบเบฅเบฐเบซเบฑเบเบเบฑเปเบเบเปเบฒเบญเบดเบ, เปเบฅเบฐเบฅเบฐเบซเบฑเบเปเบเปเบเบทเบเบเบฐเปเบเบเบเบฐเบเบฒเบเปเบเบเบปเปเบงเบเปเบฅเบดเบเบฒเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเปเบฅเบฐเปเบเบทเปเบญเบเปเบงเปเบขเบนเปเบซเบฅเบฑเบเบเปเปเบเบญเบ bins เปเบฅเบฐเบเบฒเบเปเบเปเบเบญเบ. - เบเบฒเบเปเบเบฑเบเบเปเบฒเบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบเบเบปเปเบเปเบกเปเบเบฐเบเบดเบเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบงเบดเปเบเบฒเบฐเปเบฅเบทเปเบญเบเปเบงเบฅเบฒเบเปเปเบกเบฒ. เปเบเปเบเปเบฅเบฐเบเบฑเปเบเบเบญเบเบเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบตเปเบกเบเปเปเบกเบนเบเปเบชเปเบเบฒเบเบเบดเบเบเบฒเบกเบเบตเปเบกเบตเบขเบนเปเปเบเบเบฑเปเบเบเบญเบเบเบตเปเปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบญเบเบซเบฒเบชเบดเปเบเบเบตเปเบเบฒเบเบเปเบญเบเบเปเปเบกเบนเบเบเปเบฒเปเบเบชเบนเปเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบ. เบเบปเบโเบเบปเบงโเบขเปเบฒเบ:
- ID เบเบนเปเปเบเป
- เบชเบดเบเบเบด
- เบเบฐเปเบเบเบเบญเบเบงเบดเบเบตเบเบฒเบเบเบตเปเปเบฅเบทเบญเบ
- เบเบฑเบเบเบถเบ เบซเบผเบทเบเบฒเบเบเบณเปเบเบตเบเบเบฒเบเบเบดเบเบเบฒเบ
- เบเบฒเบเบเปเบฝเบเบฎเปเบญเบเบฎเบญเบเปเบเบฑเบเบเบธเบเบเปเบญเบเบเบญเบ metrics เปเบฅเบฐเบเบฒเบเบงเบดเปเบเบฒเบฐเปเบเบตเปเบกเปเบเบตเบกเปเบฅเปเบงเปเบเบฎเบนเบเปเบเบเบเบญเบ metrics.
เบชเบดเปเบเบเบตเปเบเบดเบเบเบฒเบกเบชเบฒเบกเบฒเบเบเบฑเบเบเบถเบ. เปเบฅเบเบฐ
เปเบเบเบฒเบเบเบดเบเบเบฒเบกเบกเบตเปเบเบงเบเบงเบฒเบกเบเบดเบเบเบญเบ span, เบเบตเปเปเบกเปเบเบเบฒเบเบเบฝเบเบเบฝเบเบเบญเบเบเบฑเบเบเบถเบเบซเบเบถเปเบ, เบเบฑเบ console. เบชเบฐเบเบฒเบกเบต:
- เบเบทเป, เปเบเบเบเบปเบเบเบฐเบเบดเปเบกเปเบเบเบทเปเบเบญเบเบงเบดเบเบตเบเบฒเบเบเบตเปเบเบทเบเบเบฐเบเบดเบเบฑเบ
- เบเบทเปเบเบญเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบตเป span เปเบเปเบเบทเบเบชเปเบฒเบเบเบถเปเบ
- ID เปเบเบฑเบเปเบญเบเบฐเบฅเบฑเบเบเบญเบเบเบปเบเปเบญเบ
- เบเบฒเบเบเบฐเปเบเบเบเบญเบเบเปเปเบกเบนเบ meta เปเบเบฎเบนเบเปเบเบเบเบญเบเบฅเบฐเบซเบฑเบ / เบกเบนเบเบเปเบฒเบเบตเปเปเบเปเปเบเบปเปเบฒเปเบเปเบเบกเบฑเบ. เบเบปเบงเบขเปเบฒเบ, เบเบปเบงเบเปเบฒเบเบปเบเบงเบดเบเบตเบเบฒเบเบซเบผเบทเบงเบดเบเบตเบเบฒเบเบชเบดเปเบเบชเบธเบเบฅเบปเบเบเปเบงเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเบซเบผเบทเบเปเป
- เปเบงเบฅเบฒเปเบฅเบตเปเบกเบเบปเปเบ เปเบฅเบฐเปเบงเบฅเบฒเบชเบดเปเบเบชเบธเบเบชเบณเบฅเบฑเบเบเปเบงเบเปเบงเบฅเบฒเบเบตเป
- ID span เบเบญเบเบเปเปเปเบกเป
เปเบเปเบฅเบฐ span เบเบทเบเบชเบปเปเบเปเบเบซเบฒเบเบนเปเปเบเบฑเบ span เปเบเบทเปเบญเปเบเบฑเบเปเบงเปเปเบเบเบฒเบเบเปเปเบกเบนเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบงเบเบเบทเบเบเปเปเบกเบฒเบเบฑเบเบเบตเบเบตเปเบกเบฑเบเบชเปเบฒเปเบฅเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบญเบเบกเบฑเบ. เปเบเบญเบฐเบเบฒเบเบปเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบชเปเบฒเบเบเบปเปเบเปเบกเปเบเบญเบเบเบญเบเปเบเบเบเบฑเบเบซเบกเบปเบเปเบเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเปเบเบ id เบเปเปเปเบกเป. เปเบกเบทเปเบญเบงเบดเปเบเบฒเบฐ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบญเบเบซเบฒ, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ, spans เบเบฑเบเบซเบกเบปเบเปเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบตเปเปเบเปเปเบงเบฅเบฒเบซเบผเบฒเบเบเปเบงเบฒเบเบฒเบเปเบงเบฅเบฒ. เบเบญเบเบเบฒเบเบเบฑเปเบ, เปเบเบเบเบฒเบเปเบเบเบตเปเบเบญเบเปเบเบเบชเบฐเปเบเบฒเบฐ, เปเบเบดเปเบเบเบปเปเบเปเบกเปเบเบฑเบเปเบปเบเบเปเบฒเบเปเบเบดเบ เปเบฅเบฐ เบฅเบธเปเบกเบเบตเป.
Opentrace, Jagger เปเบฅเบฐเบงเบดเบเบตเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบดเบเบฑเบเบกเบฑเบเบชเปเบฒเบฅเบฑเบเปเบเบเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ
เบกเบตเบกเบฒเบเบเบฐเบเบฒเบเบเบปเปเบงเปเบ
เบเบงเบเปเบฎเบปเบฒเบเปเบฒเบฅเบฑเบเปเบเป
- Jaeger-agent เปเบกเปเบเบเบปเบงเปเบเบเบเปเบญเบเบเบดเปเบเบเบตเปเบเบปเบเบเบฐเบเบดเปเบฅเปเบงเบเบทเบเบเบดเบเบเบฑเปเบเบขเบนเปเปเบเปเบเปเบฅเบฐเปเบเบทเปเบญเบเบเบฑเบเปเบฅเบฐเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบทเบเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบเบขเบนเปเปเบเบเบญเบเบกเบฒเบเบเบฐเบเบฒเบเบเปเบญเบเบเบดเปเบ. เบเปเบฒเบเปเปเบกเบตเบเบปเบงเปเบเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบฒเบเบเบดเบเบเบฒเบกเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบฑเบเบซเบกเบปเบเปเบเปเบเบทเปเบญเบเบเบตเปเปเบกเปเบเบเบทเบเบเบดเบเปเบเปเบเบฒเบ
- Jaeger-collector - เบเบปเบงเปเบเบเบเบฑเบเบซเบกเบปเบเบชเบปเปเบเบฎเปเบญเบเบฎเบญเบเบเบตเปเปเบเบฑเบเบเปเบฒเปเบเบซเบฒเบกเบฑเบ, เปเบฅเบฐเบกเบฑเบเบงเบฒเบเปเบงเปเปเบเบเบฒเบเบเปเปเบกเบนเบเบเบตเปเปเบฅเบทเบญเบ.
- เบเบฒเบเบเปเปเบกเบนเบเปเบกเปเบ cassandra เบเบตเปเบเปเบญเบเบเบฒเบเบเบญเบเบเบงเบเปเบเบปเบฒ, เปเบเปเบเบงเบเปเบฎเบปเบฒเปเบเป elasticsearch, เบกเบตเบเบฒเบเบเบฐเบเบดเบเบฑเบเบชเปเบฒเบฅเบฑเบเบชเบญเบเบชเบฒเบกเบเบฒเบเบเปเปเบกเบนเบเบญเบทเปเบเปเบฅเบฐเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบเบตเปเบเปเปเบเบฐเบซเบเบฑเบเบซเบเบฑเบเบเบฑเบเปเบเปเบ.
- Jaeger-query เปเบกเปเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบตเปเปเบเบซเบฒเบเบฒเบเบเปเปเบกเบนเบเปเบฅเบฐเบชเบปเปเบเบเบทเบเบเบฒเบเบเบดเบเบเบฒเบกเบเบตเปเปเบเบฑเบเบเปเบฒเปเบฅเปเบงเบชเปเบฒเบฅเบฑเบเบเบฒเบเบงเบดเปเบเบฒเบฐ
- Jaeger-ui เปเบกเปเบเบเบฒเบเปเบเปเบเบญเบเปเบงเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบญเบเบซเบฒเปเบฅเบฐเปเบเบดเปเบเบเบฒเบเบเบดเบเบเบฒเบก, เบกเบฑเบเปเบเบซเบฒ jaeger-query
เบญเบปเบเบเบฐเบเบญเบเปเบเบเบเปเบฒเบเบซเบฒเบเบชเบฒเบกเบฒเบเปเบญเบตเปเบเบงเปเบฒเบเบฒเบเบเบฐเบเบดเบเบฑเบ opentrace jaeger เบชเปเบฒเบฅเบฑเบเบเบฒเบชเบฒเบชเบฐเปเบเบฒเบฐ, เปเบเบเบเปเบฒเบเบเบฑเปเบ spans เบเบทเบเบชเบปเปเบเปเบเบซเบฒ jaeger-agent.
เบเบญเบเบเบฒเบเบเบตเปเบชเปเบฒเบฅเบฑเบเบญเบปเบเบเบฐเบเบญเบเบเบฒเบเบฎเบฝเบ spring, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบทเปเบญเบกเบเปเป
เบเบดเบเบเบฒเบกเบเบฒเบเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบ Java
เบเบฒเบเบเปเบญเบเบขเบนเปเปเบเบฅเบฐเบเบฑเบเบชเบนเบเบชเบธเบ, Span เบเปเบฒเบญเบดเบเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบชเปเบฒเบ, เบเบตเปเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเปเบเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ, เบเบปเบงเบขเปเบฒเบ, เปเบเบเบเบปเบงเบเบงเบเบเบธเบกเบเบฒเบเบฎเบฝเบ spring เปเบกเบทเปเบญเปเบเปเบฎเบฑเบเบเบฒเบเบฎเปเบญเบเบเป, เบซเบผเบทเบเปเบงเบเบเบปเบเปเบญเบเบเปเบฒเบเปเปเบกเบต. เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบกเบฑเบเบเบทเบเบชเบปเปเบเบเปเบฒเบเบเบญเบเปเบเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเป. เบเปเบฒเบงเบดเบเบตเปเบเบฅเบธเปเบกเบเบตเปเบเปเบญเบเบเบฒเบเปเบเบตเปเบก Span, เบกเบฑเบเปเบเปเปเบงเบฅเบฒ activeSpan เบเบฐเบเบธเบเบฑเบเบเบฒเบเบเบญเบเปเบเบ, เบชเปเบฒเบ Span เปเปเป เปเบฅเบฐเบเบญเบเบงเปเบฒเบเปเปเปเบกเปเบเบญเบเบกเบฑเบเบเบท activeSpan เบเบตเปเปเบเบฑเบเบเบปเบ, เปเบฅเบฐเปเบฎเบฑเบเปเบซเป Span เปเปเปเบกเบตเบเบฒเบเปเบเบทเปเบญเบเปเบซเบง. เปเบกเบทเปเบญเปเบเบซเบฒเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบฒเบเบเบญเบ, span เบเบตเปเปเบเปเปเบเบเบฑเบเบเบธเบเบฑเบเบเบฐเบเบทเบเบชเบปเปเบเบเบฑเบเบเบงเบเปเบเบปเบฒ, เปเบฅเบฐเบเบฒเบเบเปเบฅเบดเบเบฒเบเปเบซเบผเบปเปเบฒเบเบฑเปเบเบชเปเบฒเบ spans เปเบซเบกเปเปเบเบเบญเปเบฒเบเบญเบตเบเปเบชเป span เบเบตเป.
เบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบซเบกเบปเบเบเปเบฒเบเบเบปเบงเบขเปเบฒเบ Tracer, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเปเบฎเบฑเบเบกเบฑเบเบเปเบฒเบเบเบปเบเปเบ DI, เบซเบผเบท GlobalTracer.get () เปเบเบฑเบเบเบปเบงเปเบเบเบปเปเบงเปเบฅเบเบเปเบฒเบเบปเบเปเบ DI เบเปเปเปเบฎเบฑเบเบงเบฝเบ. เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, เบเปเบฒ tracer เบเปเปเปเบเปเบเบทเบเปเบฅเบตเปเบกเบเบปเปเบ, NoopTracer เบเบฐเบเบฑเบเบเบทเบเบกเบฒเปเบเบดเปเบเบเปเปเบกเบตเบซเบเบฑเบเปเบฅเบตเบ.
เบเบญเบเบเบฒเบเบเบฑเปเบ, เบเบญเบเปเบเบเบเบฐเบเบธเบเบฑเบเปเบกเปเบเปเบเปเบฎเบฑเบเบเบฒเบ tracer เบเปเบฒเบ ScopeManager, เบเบญเบเปเบเบเปเบซเบกเปเบเบทเบเบชเปเบฒเบเบเบทเปเบเบเบฒเบเบเบฐเบเบธเบเบฑเบเบเบตเปเบกเบตเบเบฒเบเบเบนเบเบกเบฑเบเบเบญเบ span เปเบซเบกเป, เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ Scope เบเบตเปเบเบทเบเบชเปเบฒเบเบเบทเปเบเปเบกเปเบเบเบดเบ, เปเบเบดเปเบเบเบดเบ span เบเบตเปเบชเปเบฒเบเบเบทเปเบเปเบฅเบฐเบชเบปเปเบเบเบทเบเบเบญเบเปเบเบเบเบตเปเบเปเบฒเบเบกเบฒเปเบเบชเบนเปเบชเบฐเบเบฒเบเบฐเบเบตเปเปเบฎเบฑเบเบงเบฝเบ. เบเบญเบเปเบเบเบเบทเบเบเบนเบเบกเบฑเบเบเบฑเบเบเบฐเบเบนเป, เบเบฑเปเบเบเบฑเปเบเปเบกเบทเปเบญเบเบฝเบเปเบเบผเปเบเบผเบกเบซเบผเบฒเบเบเบฐเบเบนเป, เปเบเบปเปเบฒเบเปเบญเบเบเปเปเบฅเบทเบกเบเบตเปเบเบฐเปเบญเบ span เบเบตเปเปเบเปเบงเบฝเบเปเบเปเบชเปเบเบฐเบเบนเปเบญเบทเปเบ, เบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบตเบเปเบเปเบเบฒเบเบเบทเปเบกเบญเบตเบเบเบญเบเบเบญเบเปเบเบเบเบญเบเบเบฐเบเบนเปเบญเบทเปเบเปเบเบเบญเปเบฒเบเบญเบตเบเปเบชเป span เบเบตเป.
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 เปเบฅเบฐ wrappers เบเบตเปเบเปเบฒเบเบเบทเบเบฑเบเบเบตเปเบชเบปเปเบเบเปเป span เบเบฐเบเบธเบเบฑเบเปเบเบซเบฒ thread เปเบเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบกเบทเปเบญเบงเบฝเบเบเบฒเบ asynchronous เบเบทเบเปเบเบตเบเบเบปเบง:
private ExecutorService executor = new TracedExecutorService(
Executors.newFixedThreadPool(10), GlobalTracer.get()
);
เบชเปเบฒเบฅเบฑเบเบเบฒเบเบฎเปเบญเบเบเป http เบเบฒเบเบเบญเบเบกเบต
HttpClient httpClient = new TracingHttpClientBuilder().build();
เบเบฑเบเบซเบฒเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเบตเบ
- เบเบปเปเบงเปเบซเบผเบทเบญเบ, เบเบปเปเบงเปเบฅเบฐ DI เบเปเปเปเบเปเปเบฎเบฑเบเบงเบฝเบเบชเบฐเปเบซเบกเบตเบเปเบฒเบซเบฒเบเบงเปเบฒ tracer เบเปเปเปเบเปเบเบทเบเบเปเบฒเปเบเปเปเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบซเบผเบทเบญเบปเบเบเบฐเบเบญเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ
เบกเบตเบชเบฒเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ Tracer เบญเบฒเบเบเบฐเบเปเปเปเบฎเบฑเบเบงเบฝเบเปเบฅเบฐเบเปเบฒเบเบเบฐเบเปเบญเบเปเบเปเปเบเป GlobalTracer.get(). - เบเปเบฒเบเบฑเบเบเบฒเบเบเปเปเปเบฎเบฑเบเบงเบฝเบเบเปเบฒเบกเบฑเบเบเปเปเปเบกเปเบเบชเปเบงเบเบเบฐเบเบญเบเบซเบผเบทเบเบฒเบเบเปเบฅเบดเบเบฒเบ, เบซเบผเบทเบเปเบฒเบงเบดเบเบตเบเบฒเบเบเบทเบเปเบญเบตเปเบเบเบฒเบเบงเบดเบเบตเบเบฒเบเปเบเปเบเบฝเบเบเบญเบเบเบฑเปเบเบเบฝเบงเบเบฑเบ. เบเปเบฒเบเบเปเบญเบเบฅเบฐเบกเบฑเบเบฅเบฐเบงเบฑเบเปเบเบทเปเบญเบเบงเบเปเบเบดเปเบเบชเบดเปเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบเปเบฅเบฐเบเปเบฒเปเบเปเบเบฒเบเบชเปเบฒเบเบเบฒเบเบเบดเบเบเบฒเบกเบเปเบงเบเบเบปเบเปเบญเบเบเปเบฒ @Traced เบเปเปเปเบฎเบฑเบเบงเบฝเบ. เบเบญเบเบเบฑเปเบเบเปเบฒเบเบเบฑเบเบชเบฒเบกเบฒเบเปเบเบ compiler เปเบเบตเปเบกเปเบเบตเบกเบชเปเบฒเบฅเบฑเบ java annotations, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบงเบเปเบเบปเบฒเบเบงเบเบเบฐเปเบฎเบฑเบเบงเบฝเบเบขเบนเปเบเบปเปเบงเบเบธเบเปเบซเปเบ.
- เปเบเปเบเบตเบเบเบญเบเบเบฒเบเบฎเบฝเบ spring เปเบฅเบฐเบเบฒเบเบฎเบฝเบ spring เปเบเบปเปเบฒ, เบเบฒเบเบเบฑเปเบเบเปเบฒเบญเบฑเบเบเบฐเปเบเบกเบฑเบ opentraing spring cloud เบเปเปเปเบเปเปเบฎเบฑเบเบงเบฝเบเปเบเบทเปเบญเบเบเบฒเบเปเบกเบเปเบกเปเปเบ DI, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเปเบซเปเบฎเปเบญเบเบฎเบญเบเปเบเบญเบปเบเบเบฐเบเบญเบเบเบญเบเบเบฒเบเบฎเบฝเบ spring เปเบฎเบฑเบเบงเบฝเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเปเบเบเบเบฒเบเบเบฝเบเบเบฝเบเบเบฑเบ
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 - เบเบฐเบเบฒเบเบฒเบกเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเปเปเปเบเปเปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบ groovy, เบเปเบฒเบเบเปเบญเบเปเบเปเบเบงเบฒเบกเบเบฐเบเบฒเบเบฒเบกเบชเบธเบเบเปเบฒเบ.
- เปเบเปเบฅเบฐเบเปเบฅเบดเบเบฒเบเบเปเบญเบเบกเบตเบเบทเป spring.application.name เบเบญเบเบเบปเบเปเบญเบเบเบฒเบเปเบเปเบเบฒเบเบเบดเบเบเบฒเบกเบเบตเปเบเบฐเบเบทเบเบเบฑเบเบเบถเบ. เบเบทเปเปเบเบเบเปเบฒเบเบซเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฒเบเปเบฅเบฐเบเบฒเบเบเบปเบเบชเบญเบเปเบกเปเบเบซเบเบฑเบ, เปเบเบทเปเบญเบเปเปเปเบซเปเปเบเบเปเบเบเบเบงเบเปเบเบปเบฒเบฎเปเบงเบกเบเบฑเบ.
- เบเปเบฒเบเปเบฒเบเปเบเป GlobalTracer เปเบฅเบฐ tomcat, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฅเบดเบเบฒเบเบเบฑเบเบซเบกเบปเบเบเบตเปเปเบฅเปเบเบขเบนเปเปเบ tomcat เบเบตเปเบกเบต GlobalTracer เบซเบเบถเปเบ, เบเบฑเปเบเบเบฑเปเบเบเบงเบเบกเบฑเบเบเบฑเบเบซเบกเบปเบเบเบฐเบกเบตเบเบทเปเบเปเบฅเบดเบเบฒเบเบเบฝเบงเบเบฑเบ.
- เปเบกเบทเปเบญเปเบเบตเปเบกเบฎเปเบญเบเบฎเบญเบเบเบฑเบเบงเบดเบเบตเบเบฒเบ, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบซเปเปเบเปเปเบเบงเปเบฒเบกเบฑเบเบเปเปเปเบเปเบเบทเบเปเบญเบตเปเบเบซเบผเบฒเบเบเบฑเปเบเปเบ loop. เบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบเปเบฒเปเบเบฑเบเบเบตเปเบเบฐเปเบเบตเปเบกเบฎเปเบญเบเบฎเบญเบเบเบปเปเบงเปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบเบฑเบเบซเบกเบปเบ, เปเบเบดเปเบเบฎเบฑเบเบเบฐเบเบฑเบเปเบงเบฅเบฒเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบซเบกเบปเบ. เบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบ, เบเบฒเบเปเบซเบผเบเปเบเบตเบเบเบฐเบเบทเบเบชเปเบฒเบเบเบถเปเบ.
- เปเบกเบทเปเบญเบขเบนเปเปเบ jaeger-ui, เบเบฒเบเบฎเปเบญเบเบเปเบเบฐเบซเบเบฒเบเปเบซเบเปเปเบเบตเบเปเบเปเบเปเบเบทเบเปเบฎเบฑเบเบชเปเบฒเบฅเบฑเบเบเปเบฒเบเบงเบเบฎเปเบญเบเบฎเบญเบเบเปเบฒเบเบงเบเบซเบฅเบฒเบ, เปเบฅเบฐเบเปเบญเบเบงเปเบฒเบเบงเบเปเบเบปเบฒเบเปเปเปเบเปเบฅเปเบเปเบฒเบเปเบฒเบเบญเบ, เบเบงเบเปเบเบปเบฒเปเบเปเปเบฎเบฑเบเบกเบฑเบเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบ. เบเบฑเปเบเบเบฑเปเบ, jaeger-query เปเบฅเบตเปเบกเบเบดเบเบญเบฒเบซเบฒเบเบเบงเบฒเบกเบเบปเบเบเปเบฒเบซเบผเบฒเบเปเบฅเบฐเบเปเบฒเบฅเบปเบ elastic. เบเปเบงเบเปเบเปเปเบเบเบเบฒเบเบฃเบตเบชเบฐเบเบฒเบ jaeger-query
เบเบฒเบเปเบเบฑเบเบเบปเบงเบขเปเบฒเบ, เปเบเบฑเบเบฎเบฑเบเบชเบฒเปเบฅเบฐเปเบเบดเปเบเบฎเปเบญเบเบฎเบญเบ
เบกเบตเบชเบฒเบกเบเบฐเปเบเบ
- Const เบเบตเปเบชเบปเปเบเปเบฅเบฐเบเบฑเบเบเบถเบเบเบฒเบเบเบดเบเบเบฒเบกเบเบฑเบเบซเบกเบปเบ.
- Probabilistic เบเบตเปเบเบฑเปเบเบเบญเบเบเบฒเบเบเบดเบเบเบฒเบกเบเปเบงเบเบเบงเบฒเบกเปเบเบฑเบเปเบเปเบเปเบเบตเปเปเบซเปเปเบงเปเบเบฒเบเบญเบฑเบ.
- เบเบฒเบเบเบณเบเบฑเบเบญเบฑเบเบเบฒเบเบตเปเบเบณเบเบฑเบเบเบณเบเบงเบเบเบฒเบเบเบดเบเบเบฒเบกเบเปเปเบงเบดเบเบฒเบเบต. เบเปเบฒเบเบชเบฒเบกเบฒเบ configure เบเบฒเบเบเบฑเปเบเบเปเบฒเปเบซเบผเบปเปเบฒเบเบตเปเบขเบนเปเปเบเบฅเบนเบเบเปเบฒ, เบเปเปเบงเปเบฒเบเบฐเบขเบนเปเปเบ jaeger-agent เบซเบผเบทเปเบเบเบปเบงเปเบเบฑเบ. เปเบเบเบฑเบเบเบธเบเบฑเบเบเบงเบเปเบฎเบปเบฒเปเบเป const 1 เปเบ stack valuator, เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบเปเปเบกเบตเบเบฒเบเบฎเปเบญเบเบเปเบซเบผเบฒเบ, เปเบเปเบเบงเบเปเบเบปเบฒเปเบเปเปเบงเบฅเบฒเบเบปเบ. เปเบเบญเบฐเบเบฒเบเบปเบ, เบเปเบฒเบชเบดเปเบเบเบตเปเบเบฐเปเบฎเบฑเบเปเบซเปเบเบฒเบเปเบซเบผเบเบซเบผเบฒเบเปเบเบตเบเปเบเปเบเบฅเบฐเบเบปเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบฑเบเบกเบฑเบเปเบเป.
เบเปเบฒเบเปเบฒเบเปเบเป cassandra, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบกเบฑเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเบฝเบเปเบเปเบชเบญเบเบกเบทเป. เบเบงเบเปเบฎเบปเบฒเบเปเบฒเบฅเบฑเบเปเบเป
เปเบเบทเปเบญเปเบเบดเปเบเบเบฒเบเบเบดเบเบเบฒเบกเบเบตเปเบเปเบฒเบเบเปเบญเบเบเบฒเบ:
- เปเบฅเบทเบญเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบตเปเบเปเบฒเบเบเปเบญเบเบเบฒเบเบเบฑเปเบเบเบญเบเบเบฒเบเบเบดเบเบเบฒเบก, เบเบปเบงเบขเปเบฒเบ, tomcat7-default เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบ tomcat เปเบฅเบฐเบเปเปเบชเบฒเบกเบฒเบเบกเบตเบเบทเปเบเบญเบเบเบปเบเปเบญเบเปเบเป.
- เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เปเบฅเบทเบญเบเปเบญเบปเบฒเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบ, เปเบฅเบเบฐเปเบงเบฅเบฒเปเบฅเบฐเปเบงเบฅเบฒเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเปเบฒเปเบชเบธเบเบเบตเป, เบเบปเบงเบขเปเบฒเบเบเบฒเบ 10 เบงเบดเบเบฒเบเบต, เปเบเปเปเบงเบฅเบฒเบเบฝเบเปเบเปเบเบฐเบเบดเบเบฑเบเบเบฒเบง.
- เปเบเบซเบฒเบซเบเบถเปเบเปเบเบฎเปเบญเบเบฎเบญเบเปเบฅเบฐเปเบเบดเปเบเบชเบดเปเบเบเบตเปเบเปเบฒเบฅเบปเบเบขเบนเปเบเบตเปเบเบฑเปเบ.
เบเบญเบเบเบฒเบเบเบฑเปเบ, เบเปเบฒเบเบฒเบ id เบเบฒเบเบฎเปเบญเบเบเปเปเบกเปเบเปเบเบฑเบเบเบตเปเบฎเบนเปเบเบฑเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบญเบเบซเบฒ trace เปเบเบ id เบเบตเปเปเบเบเบเปเบฒเบเบเบฒเบเบเบปเปเบเบซเบฒเปเบเบฑเบ, เบเปเบฒ id เบเบตเปเบเบทเบเบเบฑเบเบเบถเบเบขเบนเปเปเบ trace span.
ะะพะบัะผะตะฝัะฐัะธั
- เปเบญเบเบฐเบชเบฒเบ opentracing
opentracing.io/docs/overview/what-is-tracing - เปเบญเบเบฐเบชเบฒเบ jaeger
www.jaegertracing.io/docs/1.10 - เบเบฒเบเปเบเบทเปเบญเบกเบเปเป Jaeger java
github.com/jaegertracing/jaeger-client-java - เบเบฒเบเบฎเบฝเบ spring เปเบเบตเบ tracing เบเบฒเบเปเบเบทเปเบญเบกเบเปเป
github.com/jaegertracing/jaeger-client-java
github.com/opentracing-contrib/java-spring-cloud
เบเบปเบโเบเบงเบฒเบกโเบเบตเป
habr.com/ru/company/carprice/blog/340946 Jaeger Opentracing เปเบฅเบฐ Microservices เปเบเปเบเบเบเบฒเบ PHP เปเบฅเบฐ Golang เบเบตเปเปเบเปเบเบดเบwww.uber.com/distributed-tracing Evolving Distributed Tracing เบขเบนเป Uber Engineeringopentracing.io/guides/java medium.com/jaegertracing/running-jaeger-agent-on-bare-metal-d1fc47d31fab เปเบฅเปเบเบเบปเบงเปเบเบ Jaeger เปเบเปเบฅเบซเบฐเปเบเบปเปเบฒ
เบงเบตโเบเบตโเปเบญ
www.youtube.com/watch?v=qg0ENOdP1Lo เบงเบดเบเบตเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเป Jaeger เปเบฅเบฐ Prometheus เปเบเบทเปเบญเบชเบปเปเบเบเปเบฒเบเบฒเบกเบเบนเปเปเบเปเปเบงเบเปเบฒเบเปเบฒ - Bryan Borehamwww.youtube.com/watch?v=WRntQsUajow Intro: Jaeger - Yuri Shkuro, Uber & Pavol Loffay, Red Hatwww.youtube.com/watch?v=fsHb0qK37bc Serghei Iakovlev, "เปเบฅเบทเปเบญเบเปเบฅเบฑเบเปเบเปเบญเบเปเบเบญเบเปเบเบเบฐเบเบฐเปเบซเบเป: OpenTracing, AWS เปเบฅเบฐ Jaeger"
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com