如何使用HAProxy设置请求的开始时间?

我想测量完整请求堆栈的时间。 中间件的New Relic捕获时间(例如java,python,ruby)和请求时间(请参阅https://newrelic.com/docs/features/tracking-front-end-time )。 为此,我需要将X-Request-Start头configuration为通过HAProxy负载平衡的请求。 haproxy.cfg应该如下所示:

 backend www balance roundrobin mode http reqadd "X-Request-Start" UNKNOWN_TIME_FUNCTION() server servername 192.168.0.1:80 weight 1 check 

有一个haproxy原生函数来replaceUNKNOWN_TIME_FUNCTION()

你现在不能这样做,尽pipe在我们可以传递SSL信息之后就可以做到这一点,因为我们将允许在标题中传递任何dynamic信息。 这段信息也是当前时间。

如果你确实需要这个,在代码中实现并不是很难。 理想情况下,应该在可以在服务器头中发送服务器名称的函数中完成,以便在连接重试或重新分配的情况下更新时间,尽pipe这似乎并不重要。

哦,顺便说一句,你为什么不简单地使用haproxy的日志作为每个人来衡量你的精确处理时间? 它不需要更改服务器中的任何内容,并且更准确(两台机器同步时间less于1毫秒并不容易),它可以完全满足你所需要的更多细节(例如:拆分连接/处理/传输)。