File Coverage

blib/lib/Devel/KYTProf/Logger/XRay.pm
Criterion Covered Total %
statement 31 35 88.5
branch 4 8 50.0
condition n/a
subroutine 7 7 100.0
pod 0 1 0.0
total 42 51 82.3


line stmt bran cond sub pod time code
1             package Devel::KYTProf::Logger::XRay;
2              
3 2     2   85723 use 5.012000;
  2         10  
4 2     2   10 use strict;
  2         4  
  2         34  
5 2     2   17 use warnings;
  2         4  
  2         42  
6              
7 2     2   377 use AWS::XRay;
  2         25596  
  2         64  
8 2     2   832 use Devel::KYTProf;
  2         24621  
  2         14  
9 2     2   60 use Time::HiRes();
  2         4  
  2         377  
10              
11             our $VERSION = "0.02";
12              
13             sub log {
14 1     1 0 1004992 my ($class, %args) = @_;
15              
16 1 50       11 return if !$AWS::XRay::ENABLED;
17              
18             my $segment = AWS::XRay::Segment->new({
19             name => $args{module},
20 1         27 });
21 1         149 my $elapsed = $args{time} / 1000; # msec -> sec
22 1         10 my $end = Time::HiRes::time();
23 1         6 my $start = $end - $elapsed;
24 1         13 $segment->{start_time} = $start;
25 1         5 $segment->{end_time} = $end;
26              
27 1         5 my $data = $args{data};
28 1 50       11 if (exists $data->{http_method}) {
    50          
29             $segment->{http} = {
30             request => {
31             method => $data->{http_method},
32             url => $data->{http_url},
33             },
34 0         0 };
35             }
36             elsif (exists $data->{sql}) {
37             $segment->{sql} = {
38             sanitized_query => delete $data->{sql},
39 0         0 };
40 0         0 $segment->{metadata} = $data;
41             }
42             else {
43 1         4 $segment->{metadata} = $data;
44             }
45 1         5 eval {
46 1         10 $segment->close();
47             };
48 1 50       379 if ($@) {
49 0           warn $@;
50             }
51             }
52              
53             1;
54             __END__