File Coverage

blib/lib/Linux/GetPidstat/Writer.pm
Criterion Covered Total %
statement 32 32 100.0
branch 6 8 75.0
condition n/a
subroutine 8 8 100.0
pod 0 2 0.0
total 46 50 92.0


line stmt bran cond sub pod time code
1             package Linux::GetPidstat::Writer;
2 14     14   75009 use 5.008001;
  14         44  
3 14     14   68 use strict;
  14         29  
  14         234  
4 14     14   45 use warnings;
  14         29  
  14         256  
5              
6 14     14   62 use Time::Piece;
  14         82  
  14         132  
7 14     14   5086 use Linux::GetPidstat::Writer::File;
  14         50  
  14         422  
8 14     14   4249 use Linux::GetPidstat::Writer::Mackerel;
  14         54  
  14         2407  
9              
10             sub new {
11 21     21 0 12014 my ( $class, %opt ) = @_;
12 21         184 bless \%opt, $class;
13             }
14              
15             sub output {
16 20     20 0 1861 my ($self, $ret_pidstats) = @_;
17              
18 20         55 my $file;
19 20 50       282 if (length $self->{res_file}) {
20             $file = Linux::GetPidstat::Writer::File->new(
21             res_file => $self->{res_file},
22             now => $self->{now},
23             dry_run => $self->{dry_run},
24 20         323 );
25             }
26              
27 20         63 my $mackerel;
28 20 100       89 if (length $self->{mackerel_metric_type}) {
29             $mackerel = Linux::GetPidstat::Writer::Mackerel->new(
30             mackerel_metric_type => $self->{mackerel_metric_type},
31             mackerel_api_key => $self->{mackerel_api_key},
32             mackerel_service_name => $self->{mackerel_service_name},
33             mackerel_metric_key_prefix => $self->{mackerel_metric_key_prefix},
34             mackerel_host_id => $self->{mackerel_host_id},
35             now => $self->{now},
36             dry_run => $self->{dry_run},
37 6         95 );
38             }
39              
40             # ex. backup_mysql => { cpu => 21.0 }
41 20         162 while (my ($program_name, $s) = each %$ret_pidstats) {
42 40         2311 while (my ($metric_name, $metric) = each %$s) {
43 360 50       34615 if ($file) {
44 360         1156 $file->output($program_name, $metric_name, $metric);
45             }
46             }
47             }
48 20 100       2825 if ($mackerel) {
49 6         47 $mackerel->bulk_output($ret_pidstats);
50             }
51             }
52              
53             1;
54             __END__