OpenTelemetry-SDK
view release on metacpan or search on metacpan
lib/OpenTelemetry/SDK/Trace/Span.pm view on Meta::CPAN
our $VERSION = '0.027';
use OpenTelemetry::Attributes;
class OpenTelemetry::SDK::Trace::Span
:isa(OpenTelemetry::Trace::Span)
:does(OpenTelemetry::Attributes)
{
use List::Util qw( any pairs );
use Ref::Util qw( is_arrayref is_hashref );
use Time::HiRes 'time';
use OpenTelemetry::Constants
-span_kind => { -as => sub { shift =~ s/^SPAN_KIND_//r } };
use OpenTelemetry::Common ();
use OpenTelemetry::SDK::Trace::SpanLimits;
use OpenTelemetry::SDK::Trace::Span::Readable;
use OpenTelemetry::Trace::Event;
use OpenTelemetry::Trace::Link;
lib/OpenTelemetry/SDK/Trace/SpanLimits.pm view on Meta::CPAN
use Object::Pad ':experimental( init_expr mop )';
# ABSTRACT: A class that governs the configuration of spans
package OpenTelemetry::SDK::Trace::SpanLimits;
our $VERSION = '0.027';
class OpenTelemetry::SDK::Trace::SpanLimits {
use List::Util 'first';
use OpenTelemetry::Common 'config';
use Ref::Util 'is_arrayref';
use Scalar::Util 'looks_like_number';
my $logger = OpenTelemetry::Common::internal_logger;
field $attribute_count_limit :reader = config(qw( SPAN_ATTRIBUTE_COUNT_LIMIT ATTRIBUTE_COUNT_LIMIT )) // 128;
field $event_attribute_count_limit :reader = config(qw( EVENT_ATTRIBUTE_COUNT_LIMIT ATTRIBUTE_COUNT_LIMIT )) // 128;
field $link_attribute_count_limit :reader = config(qw( LINK_ATTRIBUTE_COUNT_LIMIT ATTRIBUTE_COUNT_LIMIT )) // 128;
field $attribute_length_limit :reader = config(qw( SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT ATTRIBUTE_VALUE_LENGTH_LIMIT ));
field $event_attribute_length_limit :reader = config(qw( EVENT_ATTRIBUTE_VALUE_LENGTH_LIMIT ATTRIBUTE_VALUE_LENGTH_LIMIT ));
lib/OpenTelemetry/SDK/Trace/Tracer.pm view on Meta::CPAN
package OpenTelemetry::SDK::Trace::Tracer;
our $VERSION = '0.027';
class OpenTelemetry::SDK::Trace::Tracer :isa(OpenTelemetry::Trace::Tracer) {
use OpenTelemetry::Constants 'SPAN_KIND_INTERNAL';
use OpenTelemetry::Context;
use OpenTelemetry::Trace;
use OpenTelemetry::Common ();
use Ref::Util 'is_hashref';
field $span_creator :param;
method create_span ( %args ) {
$args{name} //= 'empty';
$args{kind} //= SPAN_KIND_INTERNAL;
unless (is_hashref( $args{attributes} // {} )) {
OpenTelemetry::Common::internal_logger
->warn('The \'attributes\' parameter to create_span must be a hash reference, it was instead a ' . ( ref($args{attribute}) || 'plain scalar' ) );
( run in 0.522 second using v1.01-cache-2.11-cpan-a5abf4f5562 )