File Coverage

blib/lib/Mojolicious/Plugin/Statsd/Adapter/Statsd.pm
Criterion Covered Total %
statement 22 22 100.0
branch n/a
condition 3 4 75.0
subroutine 7 7 100.0
pod 4 4 100.0
total 36 37 97.3


line stmt bran cond sub pod time code
1             package Mojolicious::Plugin::Statsd::Adapter::Statsd;
2              
3 3     3   102975 use Mojo::Base -base;
  3         5  
  3         22  
4              
5 3     3   1069 use Mojo::Loader qw(load_class);
  3         198522  
  3         207  
6              
7             our $VERSION = '0.06';
8              
9 3     3   556 use IO::Socket::INET ();
  3         7790  
  3         1499  
10              
11             has client => sub {
12             my $self = shift;
13             my ($host, $port) = split ':', $self->addr;
14             load_class "Net::Statsd::Tiny";
15             return Net::Statsd::Tiny->new(
16             socket => $self->socket,
17             );
18             };
19              
20             has socket => sub {
21             my $self = shift;
22             IO::Socket::INET->new(
23             Proto => 'udp',
24             PeerAddr => $self->addr,
25             Blocking => 0,
26             ) or die "Can't open write socket for stats: $@";
27             };
28              
29             has addr => sub {
30             $ENV{STATSD_ADDR} // '127.0.0.1:8125';
31             };
32              
33             sub counter {
34 3     3 1 181741 my ( $self, $names, $value, $rate ) = @_;
35 3   100     16 $self->client->counter($_, $value, $rate // 1) for @$names;
36 3         407 return -1;
37             }
38              
39             sub timing {
40 1     1 1 1219 my ( $self, $names, $value, $rate ) = @_;
41 1   50     5 $self->client->timing($_, $value, $rate // 1) for @$names;
42 1         79 return -1;
43             }
44              
45             sub gauge {
46 2     2 1 1091 my ( $self, $names, $value ) = @_;
47 2         7 $self->client->gauge($_, $value) for @$names;
48 2         144 return -1;
49             }
50              
51             sub set_add {
52 1     1 1 534 my ( $self, $names, @values ) = @_;
53 1         2 for my $value (@values) {
54 3         139 $self->client->set_add($_, $value) for @$names;
55             }
56 1         51 return -1;
57             }
58              
59             1;
60              
61             # ABSTRACT: Statsd UDP recording
62              
63             __END__