Sample scripts in Perl to use statsd. See also Statsd with Python.
examples/statsd/datadog_demo.pl
use strict;
use warnings;
use Net::Dogstatsd;
#prints warning to STDERR if no StatsD server running on the local machine
my $n = 10;
for (1 .. $n) {
sleep rand(2);
my $elapsed_time = rand;
my $dogstatsd = Net::Dogstatsd->new();
my $socket = $dogstatsd->get_socket();
$dogstatsd->increment( name => 'demo.page_views', );
$dogstatsd->gauge(
name => 'demo.elapsed_time',
value => $elapsed_time,
);
$dogstatsd->histogram(
name => 'demo.elapsed_time_histogram',
value => $elapsed_time,
);
}
use strict;
use warnings;
use Net::Statsd;
# no warning even if no StatsD server running on the local machine
# $Net::Statsd::HOST = 'localhost'; # Default
# $Net::Statsd::PORT = 8125; # Default
my $n = 10;
for (1 .. $n) {
sleep rand(2);
my $elapsed_time = rand;
Net::Statsd::increment('demo.page_views');
Net::Statsd::gauge('demo.elapsed_time' => $elapsed_time);
# Net::Statsd::histogram('demo.elapsed_time_histogram' => $elapsed_time);
}
examples/statsd/net_statsd_client.pl
use strict;
use warnings;
use Net::Statsd::Client;
# no warning even if no StatsD server running on the local machine
my $stats = Net::Statsd::Client->new(prefix => "demo.");
my $n = 10;
for (1 .. $n) {
sleep rand(2);
my $elapsed_time = rand;
$stats->increment('page_views');
$stats->gauge('elapsed_time' => $elapsed_time);
}