NAME
OpenTracing::Integration::System - support tracing system calls
SYNOPSIS
To create trace each time a system is called:
use OpenTracing::Any qw($tracer);
use OpenTracing::Integration qw(System);
system("ls");
Additionally, this modules supports span context propagation using the OPENTRACING_CONTEXT environment variable. Any call to system will fill the environment variable OPENTRACING_CONTEXT=<traceid>:<id> in order to propagate down the context to other programs.
Of course, this requires that the child process implements extracting the span from that variable. Luckily, this perl module can do that for you using:
use OpenTracing::Any qw($tracer);
use OpenTracing::Integration qw(System);
my $span_context = OpenTracing::Integration::System->extract_context();
my $span;
if ($span_context)
{
$span = $tracer->span(operation_name => 'main', references => [$tracer->child_of($span_context)]);
}
else
{
$span = $tracer->span(operation_name => 'main');
}
DESCRIPTION
See OpenTracing::Integration for more details.
AUTHOR
Francis Tremblay francis.tremblay@unity3d.com
LICENSE
Copyright Unity 2021. Licensed under the same terms as Perl itself.