NAME
DataDog::DogStatsd::Helper - helper for DataDog::DogStatsd
SYNOPSIS
use DataDog::DogStatsd::Helper qw(stats_inc stats_dec stats_timing
stats_gauge stats_count
stats_histogram stats_timed);
stats_inc('logins'); # shortcut for DataDog::DogStatsd->new->increment('logins')
stats_dec('logins'); # shortcut for DataDog::DogStatsd->new->decrement('logins')
stats_timing('test.timing', 1); # ->timing
stats_gauge('test.gauge', 10); # ->gauge
stats_count('test.count', 20); # ->count
stats_histogram('test.histogram', 100); # ->histogram
stats_event('event title', 'event text'); # ->event
stats_timed {
my @param = @_;
# some code
...
} 'test.timing', {tags => \@tags}, @params;
DataDog::DogStatsd::Helper->get_dogstatsd;
DataDog::DogStatsd::Helper->set_dogstatsd(DataDog::DogStatsd->new(...));
DESCRIPTION
DataDog::DogStatsd::Helper is a helper for DataDog::DogStatsd. It's main purpose is to maintain a global DataDog::DogStatsd object.
FUNCTIONS
For all the functions below, $what
is the name of a metric sent to datadog. \%opts
is a hash reference which can contain a key tags
pointing to an array of tags sent to datadog along with the metric and a key sample_rate
with a number between 0
and 1
as value. See https://docs.datadoghq.com/developers/metrics/dogstatsd_metrics_submission/#sample-rates for more information on sample rates.
stats_inc $what, \%opts
equivalent to $dogstatsd->increment($what, \%opts)
stats_inc $what, $sample_rate
equivalent to $dogstatsd->increment($what, +{sample_rate=>$sample_rate})
stats_dec $what, \%opts
equivalent to $dogstatsd->decrement($what, \%opts)
stats_timing $what $millisec, \%opts
equivalent to $dogstatsd->timing($what, $millisec, \%opts)
stats_timing $what $millisec, $sample_rate
equivalent to $dogstatsd->timing($what, $millisec, +{sample_rate=>$sample_rate})
Note, $millisec
will be truncated to an integer value.
stats_gauge $what, $measured_value, \%opts
equivalent to $dogstatsd->gauge($what, $measured_value, \%opts)
stats_count $what, $increment, \%opts
equivalent to $dogstatsd->count($what, $increment, \%opts)
stats_histogram $what, $measured_value, \%opts
equivalent to $dogstatsd->histogram($what, $measured_value, \%opts)
stats_event $title, $text, \%opts
equivalent to $dogstatsd->event($what, $title, $text, \%opts)
Naturally, sample_rate
does not make sense in \%opts
. $opts{tags}
is processed as usual. Besides that, the %opts
hash can contain the following optional keys:
- date_happened
- hostname
- aggregation_key
- priority
- source_type_name
- alert_type
For more information see https://docs.datadoghq.com/developers/events/dogstatsd/
stats_timed {BLOCK} $what, \%opts, @other_params
this offers a somewhat more convenient interface to timing a piece of code. It's supposed to be called like this:
my $value = stats_timed {
# timed piece of code
my ($p1, $p2, ...) = @_;
...
} $what, {tags => \@tags}, $param1, $param2, ...;
Before the code block is executed the current time is taken with Time::HiRes::gettimeofday
. Then the code block is executed in an eval
environment. If no exception is thrown the time is reported the same way stats_timing
does. If the code block ends in an exception, the $what.failure
metric is incremented passing the same tags.
If called in scalar context, the code block is also called in scalar context and the resulting value is returned.
If called in list context, the code block is also called in list context and the resulting list is returned.
If called in void context, the code block is also called in void context.
DataDog::DogStatsd::Helper->get_dogstatsd
returns the internal DataDog::DogStatsd
object. This can be used to modify certain parameters like the namespace
.
This function is not exported. It can be called both as function and as class method.
DataDog::DogStatsd::Helper->set_dogstatsd(DataDog::DogStatsd->new)
allows to set the internal DataDog::DogStatsd
object. Useful mainly for testing.
This function is not exported. It can be called both as function and as class method.
AUTHOR
Fayland Lam <fayland@binary.com>
COPYRIGHT
Copyright 2015- Fayland Lam
INHERITED METHODS
- Exporter
-
as_heavy, export, export_fail, export_ok_tags, export_tags, export_to_level, import, require_version
LICENSE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.