如何记录响应请求的后端名称


1

我正在使用varnishncsa记录请求,这些请求花了很长时间才能在后端服务器上通过以下命令得到响应:

varnishncsa -F '%t "%r" %s %T' | awk '$7 > 10 {print}'

我试图在后端名称上添加信息,但是此信息未显示在varnishncsa输出中:

sub vcl_backend_response {
    std.log("backend_name:" + beresp.backend.name);
}

我做错了什么?

Answers:


1

它不适用于您,因为varnishncsa默认情况下使用“客户端”模式。使用-b开关启用它。

随后,这将起作用:

varnishncsa -b -F '%t "%r" %s %T %{VCL_Log:backend_name}x' | awk '$7 > 10 {print}'

您可能需要检查完整的说明,其中包括其他优化以查询缓慢的后端请求。


谢谢!我使用的清漆4.1.1和varnishncsa命令没有-b选项:varnishncsa: invalid option -- 'b'; 顺便说一句,顺便说一句。
hvelarde

啊,真可惜:)适用于Varnish 4.1.5大声笑。
Danila Vershinin

然后,您可能想要放入std.log语句vcl_recv并记录值req.backend_hint-这将起作用。
Danila Vershinin
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.