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 )