• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

jjatria / perl-opentelemetry / 6553776671

17 Oct 2023 10:57PM UTC coverage: 73.52% (-18.9%) from 92.443%
6553776671

push

github

jjatria
Add experimental support for testing metrics

2 of 2 new or added lines in 1 file covered. (100.0%)

472 of 642 relevant lines covered (73.52%)

4.18 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

37.04
/lib/OpenTelemetry/Trace/Tracer.pm
1
use Object::Pad;
7✔
2
# ABSTRACT: A span factory for OpenTelemetry
3

4
package OpenTelemetry::Trace::Tracer;
5

6
our $VERSION = '0.001';
7

8
use Log::Any;
7✔
9
my $logger = Log::Any->get_logger( category => 'OpenTelemetry' );
10

11
class OpenTelemetry::Trace::Tracer {
12
    use Feature::Compat::Try;
7✔
13
    use Syntax::Keyword::Dynamically;
7✔
14
    use Ref::Util 'is_coderef';
7✔
15

16
    use OpenTelemetry::Constants 'SPAN_STATUS_ERROR';
7✔
17
    use OpenTelemetry::Context;
7✔
18
    use OpenTelemetry::Trace::Span;
7✔
19
    use OpenTelemetry::Trace;
7✔
20
    use OpenTelemetry::X;
7✔
21

22
    method create_span ( %args ) {
×
23
        OpenTelemetry::Trace::Span::INVALID;
×
24
    }
25

26
    # Experimental
27
    method in_span {
×
28
        is_coderef $_[-1] or die OpenTelemetry::X->create(
×
29
            Invalid => 'Missing required code block in call to Tracer->in_span',
30
        );
31

32
        my $block = pop;
×
33
        my $name  = shift;
×
34
        my %args  = @_;
×
35

36
        $args{name} = $name or die OpenTelemetry::X->create(
×
37
            Invalid => 'Missing required span name to Tracer->in_span',
38
        );
39

40
        my $span = $self->create_span(
×
41
            %args,
42
            parent => OpenTelemetry::Context->current
43
        );
44

45
        my $context = OpenTelemetry::Trace->context_with_span($span);
×
46

47
        dynamically OpenTelemetry::Context->current = $context;
×
48

49
        try {
×
50
            return $block->( $span, $context );
×
51
        }
52
        catch ($e) {
53
            $span->record_exception($e);
×
54
            $span->set_status( SPAN_STATUS_ERROR, "$e" );
×
55
            die $e;
×
56
        }
57
        finally {
58
            $span->end;
×
59
        }
60
    }
61
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc