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

Ryan Burn rnickb731 at
Fri May 12 02:33:57 CEST 2017

>From the free function, is there any way to get the status code or
other properties of the request? I tried using VRT_r_obj_status with a
stored reference to the context, but that doesn't seem to work since
some of the request's resources have already been reclaimed:

Is there any other place something like the status would be stored?

On Mon, May 8, 2017 at 11:13 AM, Reza Naghibi <reza at> wrote:
> Sorry, email misfire.
> You can do this in a VMOD via PRIV_TASK:
> It might make sense to track this stuff in some kind of struct, in which
> case, put it into *priv and then register a *free callback. Otherwise, just
> put a dummy value into the *priv. *free will get called after the request is
> done and you can put your custom code in there.
> --
> Reza Naghibi
> Varnish Software
> On Mon, May 8, 2017 at 11:10 AM, Reza Naghibi <reza at>
> wrote:
>> You can do this in a VMOD via PRIV_TASK:
>> --
>> Reza Naghibi
>> Varnish Software
>> On Fri, May 5, 2017 at 10:15 PM, Ryan Burn <rnickb731 at> wrote:
>>> 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 []. 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
>>> []. Nginx provides an
>>> NGX_HTTP_LOG_PHASE [] 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
>>> _______________________________________________
>>> varnish-misc mailing list
>>> varnish-misc at

More information about the varnish-misc mailing list