Hi, Nginx developers: Currently, the request_time uses ngx_timeofday to get the time, which finally will call gettimeofday. Meanwhile, the upstream_x_time series uses ngx_current_msec to calculate the time, which finally will call ngx_monotonic_time.
On Linux, the gettimeofday will call clock_gettime(CLOCK_REALTIME, &ts) while the ngx_monotonic_time will call clock_gettime(CLOCK_MONOTONIC_COARSE, &ts). So the request_time uses CLOCK_REALTIME and the upstream_x_time series uses CLOCK_MONOTONIC_COARSE. As they are different sources, sometimes we observe that the upstream_response_time is larger than request_time. This behavior is unexpected and has caused bug in our software. A similar report can be also found in https://stackoverflow.com/questions/53978695/how-can-request-time-be-less-than-upstream-response-time-in-nginx. Is this behavior intended? Why not use the same time measurement for all metrics? Thanks for your reply. _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-devel