File Coverage

blib/lib/OpenTelemetry/Trace.pm
Criterion Covered Total %
statement 43 43 100.0
branch n/a
condition 10 14 71.4
subroutine 13 13 100.0
pod 7 7 100.0
total 73 77 94.8


line stmt bran cond sub pod time code
1             package OpenTelemetry::Trace;
2             # ABSTRACT: Generic methods for the OpenTelemetry Tracing API
3              
4             our $VERSION = '0.033';
5              
6 12     12   206716 use strict;
  12         25  
  12         640  
7 12     12   69 use warnings;
  12         24  
  12         789  
8 12     12   414 use experimental 'signatures';
  12         3046  
  12         112  
9              
10 12     12   3141 use OpenTelemetry::Common;
  12         28  
  12         686  
11 12     12   430 use OpenTelemetry::Context;
  12         22  
  12         562  
12 12     12   1810 use OpenTelemetry::Trace::Span;
  12         31  
  12         7493  
13              
14             my $current_span_key = OpenTelemetry::Context->key('current-span');
15              
16 13     13 1 313083 sub span_from_context ( $, $context = undef ) {
  13         21  
  13         19  
17 13   66     52 $context //= OpenTelemetry::Context->current;
18 13   100     55 $context->get( $current_span_key ) // OpenTelemetry::Trace::Span::INVALID;
19             }
20              
21 23     23 1 30745 sub context_with_span ( $, $span, $context = undef ) {
  22         83  
  22         66  
  22         46  
22 22   66     226 $context //= OpenTelemetry::Context->current;
23 22         255 $context->set( $current_span_key => $span );
24             }
25              
26 6     6 1 362 sub non_recording_span ( $, $context = undef ) {
  6         16  
  6         10  
27 6         65 OpenTelemetry::Trace::Span->new( context => $context );
28             }
29              
30 1     1 1 858 sub generate_trace_id { goto \&OpenTelemetry::Common::generate_trace_id }
31 1     1 1 3287 sub generate_span_id { goto \&OpenTelemetry::Common::generate_span_id }
32              
33             {
34             my $untraced_key = OpenTelemetry::Context->key('untraced');
35 3     3 1 1591 sub untraced_context ( $, $context = undef ) {
  3         8  
  3         6  
36 3   66     22 ( $context // OpenTelemetry::Context->current )->set( $untraced_key => 1 );
37             }
38              
39 5     5 1 1216 sub is_untraced_context ( $, $context = undef ) {
  5         11  
  5         9  
40 5   66     29 !! ( $context // OpenTelemetry::Context->current )->get( $untraced_key );
41             }
42             }
43              
44             1;