AWS-XRay

 view release on metacpan or  search on metacpan

lib/AWS/XRay.pm  view on Meta::CPAN

    local $TRACE_ID = $TRACE_ID // new_trace_id();

    my $segment = AWS::XRay::Segment->new({ name => $name });
    unless (defined $segment->{type} && $segment->{type} eq "subsegment") {
        $_->apply_plugin($segment) for @PLUGINS;
    }

    local $SEGMENT_ID = $segment->{id};

    my @ret;
    eval {
        if ($wantarray) {
            @ret = $code->($segment);
        }
        elsif (defined $wantarray) {
            $ret[0] = $code->($segment);
        }
        else {
            $code->($segment);
        }
    };

lib/AWS/XRay.pm  view on Meta::CPAN

        $segment->{cause} = {
            exceptions => [
                {
                    id      => new_id(),
                    message => "$error",
                    remote  => Types::Serialiser::true,
                },
            ],
        };
    }
    eval {
        $segment->close();
    };
    if ($@) {
        warn $@;
    }
    die $error if $error;
    return $wantarray ? @ret : $ret[0];
}

sub capture_from {

t/12_croak_capture.t  view on Meta::CPAN

subtest "carp", sub {
    local $AWS::XRay::CROAK_INVALID_NAME = 0;
    my $res = capture "my * App", sub {
        "result";
    };
    is $res, "result";
};

subtest "croak", sub {
    local $AWS::XRay::CROAK_INVALID_NAME = 1;
    eval {
        capture "my * App", sub {
            "result";
        };
    };
    diag $@;
    ok $@ =~ /invalid/;
};

done_testing;



( run in 2.162 seconds using v1.01-cache-2.11-cpan-98e64b0badf )