=head1 NAME OpenTracing::Role - common attributes and methods for OpenTracing =head1 DESCRIPTION This package and related roles provide a set off attributes methods that will be required by a OpenTracing compliant implementation. If these are missing, then it may cause issues being compatible with other modules and or frameworks that need the deeper voodoo magic inside Opentracing. =head2 Provided roles This distribution provides the following roles: =over 4 =item L<OpenTracing::Role::ContextReference> References are used by C<Tracer> methods C<start_span> and C<start_active_span> to create "casual span references" =item L<OpenTracing::Role::Scope> A C<Scope> formalizes the activation and deactivation of a C<Span>, usually from a CPU standpoint. =item L<OpenTracing::Role::ScopeManager> The C<ScopeManager> interface abstracts both the activation of C<Span> instances via C<activate_span> and access to an active C<Scope> via C<get_active_scope>. =item L<OpenTracing::Role::Span> A C<Span> represents a unit of work executed on behalf of a C<Trace>. =item L<OpenTracing::Role::SpanContext> A C<SpanContext> represents C<Span> state that must be propagated to descendant C<Span>'s and across process boundaries. =item L<OpenTracing::Role::Tracer> The C<Tracer> is the entry point API between instrumentation code and the tracing implementation. =back =head1 AUTHOR Theo van Hoesel <email@example.com> =head1 COPYRIGHT AND LICENSE 'OpenTracing Roles' is Copyright (C) 2020, Perceptyx Inc This library is free software; you can redistribute it and/or modify it under the terms of the Artistic License 2.0. This library is distributed in the hope that it will be useful, but it is provided "as is" and without any express or implied warranties. For details, see the full text of the license in the file LICENSE.