We are running a java trading application and have around 50 orders per second. When an order comes in, it jumps between services and we want to measure latency inside every service and between services by an external service which should gather all data with timestamps and produce distributions with percentiles. We want to measure latency for every order in order to find issues and explain them to our members if they have latency-related questions. The issue we are facing is a framework to choose to propagate orders from every service to another service with timestamps attached to calculate and produce latencies. Given the flow of orders we have, what will be the most promising approach for us? We looked into Zipkin, it also supports gRPC - does it fit our use-case? Any other recommendations?
p.s. we cannot use the transport we use for the business logic as we are going to get rid of it soon.