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.