NAME

OpenTracing::Implementation::NoOp - Stops Crashing, doing nothing else

SYNOPSIS

    use OpenTracing::Implementation::NoOp;
    
    my $tracer = OpenTracing::Implementation::NoOp->bootstrap_tracer( );

DESCRIPTION

The NoOp Implementation will 'disable' the entire OpenTracing infrastructure by making almost every method do nothing, or return a 'NoOp' object.

This way, none of the code will break if there is no OpenTracing active.

This implementation does not rely on OpenTracing::Role, because those already add attributes and methods that are totally useless in this context of a 'NoOp'. Instead, this only requires the OpenTrace::Interface if the OPENTRACING_INTERFACE environment variable has been set (for development purposes).

CLASS METHODS

bootstrap_tracer

    my $tracer = OpenTracing::Implementation::NoOp->bootstrap_tracer( @args );

Returns a OpenTracing::Interface::Tracer compliant tracer, using the OpenTracing::Implementation::NoOp::Tracer implementation.

Any arguments passed in, are dutyfully passed, but are supposedly useless.

ENVIRONMENT VARIABLES

OPENTRACING_INTERFACE

If set to true, this will wrap all methods inside Type::Tiny typechecks, for incomming parameters and return values. Beside that, it will add check for required methods according to the OpenTracing::Interface API description.

AUTHOR

Theo van Hoesel <tvanhoesel@perceptyx.com>

COPYRIGHT AND LICENSE

'OpenTracing::Implementation::NoOp' is Copyright (C) 2019 .. 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 package 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.