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.