libvmod-statsd icon indicating copy to clipboard operation
libvmod-statsd copied to clipboard

Varnish module to send statistics to statsd

============ vmod_statsd


Varnish Statsd Module

:Author: Jos Boumans :Date: 2014-01-14 :Version: 1.2 :Manual section: 3

SYNOPSIS

            import statsd;

            sub vcl_init {
                # Optional, defaults to localhost:8125
                statsd.server( "statsd.example.com", "8125" );
            }

            sub vcl_deliver {
                statsd.incr(    "incr"          );
                statsd.gauge(   "gauge",    42  );
                statsd.timing(  "timing",   42  );
                statsd.counter( "counter",  42  );
            }

DESCRIPTION

Varnish Module (vmod) for sending statistics to Statsd.

See https://github.com/etsy/statsd for documentation on Statsd.

FUNCTIONS

server

Prototype::

            server(STRING S, STRING S)

Return value NONE Description Set the address of your Statsd server. Best used in vcl_init. Defaults to "localhost", "8125"

Example::

            statsd.server( "statsd.example.com", "8125" );

prefix

Prototype::

            prefix(STRING S)

Return value NONE Description Set a string to prefix to all the stats you will be sending. Best used in vcl_init. Defaults to an empty string.

Example::

            # statsd.incr( "foo" ) will now send "dev.foo" to Statsd
            statsd.prefix( "dev." );

suffix

Prototype::

            suffix(STRING S)

Return value NONE Description Set a string to suffix to all the stats you will be sending. Best used in vcl_init. Defaults to an empty string.

Example::

            # statsd.incr( "foo" ) will now send "foo.dev" to Statsd
            statsd.suffix( ".dev" );

incr

Prototype::

            incr(STRING S)

Return value NONE Description Send a stat counter with value '1' to Statsd. Will be prefixed & suffixed with whatever you set statsd.prefix & statsd.suffix to.

Example::

            statsd.incr( "foo" );

counter

Prototype::

            counter(STRING S, INT I)

Return value NONE Description Send a stat counter with value I to Statsd. Will be prefixed & suffixed with whatever you set statsd.prefix & statsd.suffix to.

Example::

            statsd.counter( "foo", 42 );

timing

Prototype::

            timing(STRING S, INT I)

Return value NONE Description Send a stat timer with value I to Statsd. Will be prefixed & suffixed with whatever you set statsd.prefix & statsd.suffix to.

Example::

            statsd.timing( "foo", 42 );

gauge

Prototype::

            gauge(STRING S, INT I)

Return value NONE Description Send a stat gauge with value I to Statsd. Will be prefixed & suffixed with whatever you set statsd.prefix & statsd.suffix to.

Example::

            statsd.gauge( "foo", 42 );

INSTALLATION

To install this module, you'll need to install some prerequisites. On Ubuntu, you can get these by running::

$ apt-get install automake libtool python-docutils libvarnishapi-dev make

You will also need a compiled version of the varnish source code, which you can get from here:

https://www.varnish-cache.org

The compilation of varnish is similar to this package. Please refer to the varnish documentation for all the options, but briefly, it is::

$ ./autogen.sh $ ./configure $ make

If you received this packge without a pre-generated configure script, you will have to generate it using 'autogen.sh'. Otherwise, you can move straight on to the 'configure' section under Usage.

Usage::

Generate configure script

./autogen.sh

Execute configure script

./configure VARNISHSRC=DIR [VMODDIR=DIR]

VARNISHSRC is the directory of the Varnish source tree for which to compile your vmod. Both the VARNISHSRC and VARNISHSRC/include will be added to the include search paths for your module.

Optionally you can also set the vmod install directory by adding VMODDIR=DIR (defaults to the pkg-config discovered directory from your Varnish installation).

Make targets:

  • make - builds the vmod
  • make install - installs your vmod in VMODDIR
  • make check - runs the unit tests in src/tests/*.vtc

SEE ALSO

  • https://github.com/etsy/statsd
  • https://www.varnish-cache.org
  • http://jiboumans.wordpress.com/2013/02/27/realtime-stats-from-varnish/
  • https://gist.github.com/jib/5034755

COPYRIGHT

This document is licensed under the same license as the libvmod-statsd project. See LICENSE for details.

  • Copyright (c) 2012 Jos Boumans