The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Net::Statsd::Client::Timer - Measure event timings and send them to StatsD

VERSION

version 0.34

SYNOPSIS

    use Net::Statsd::Client;
    my $stats = Net::Statsd::Client->new(prefix => "service.frobnitzer.");

    my $timer = $stats->timer("request_duration");
    # ... do something expensive ...
    $timer->finish;

METHODS

Net::Statsd::Client::Timer->new(...)

To build a timer object, call Net::Statsd::Client's timer method, instead of calling this constructor directly.

A timer has an associated statsd object, metric name, and sample rate, and begins counting as soon as it's constructed.

$timer->finish

Stop timing, and send the elapsed time to the server. Returns the elapsed time in milliseconds.

$timer->cancel

Stop timing, but do not send the elapsed time to the server. A timer that goes out of scope without having finish or cancel called on it will generate a warning, since this probably points to bugs and lost timing information.

$timer->metric($new)

Change the metric name of a timer on the fly. This is useful if you don't know what kind of event you're timing until it's finished. Harebrained example:

    my $timer = $statsd->timer("item.fetch");
    my $item = $cache->get("blah");
    if ($item) {
        $timer->metric("item.fetch_from_cache");
    } else {
        $item = get_it_the_long_way();
    }
    $timer->finish;

AUTHOR

Andrew Rodland <arodland@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2018 by Andrew Rodland.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.