Any way to invoke code from VCL after a request has been serviced?

Ryan Burn rnickb731 at gmail.com
Sat May 6 04:15:30 CEST 2017


Hello,
>From VCL, is it possible to execute code that runs after a request has
been processed?

I'm looking into writing a module that enables Varnish for distributed
tracing using the OpenTracing project [opentracing.io]. This requires
invoking code at the beginning of a request to start a span and insert
tracing context into the request's headers and invoking code after a
request's been processed to finish the span and measure how long it
took to process.

I recently did a similar project for nginx
[github.com/rnburn/nginx-opentracing]. Nginx provides an
NGX_HTTP_LOG_PHASE [www.nginxguts.com/2011/01/phases/] that allows you
to set up handlers run after requests are serviced. Can anything
equivalent be done using VCL?

I image you could accomplish this by subscribing and regularly reading
from Varnish's shared memory log, but I'd much rather do it directly
if possible.

Thanks, Ryan



More information about the varnish-misc mailing list