Net::Async::OpenTracing - basic proof-of-concept implementation for OpenTracing APM
This all relies on the abstract OpenTracing interface, so that'd be the first port of call for official documentation.
Start up a Jæger instance in Docker like so:
docker run -d --name jaeger \ -e COLLECTOR_ZIPKIN_HTTP_PORT=9411 \ -p 5775:5775/udp \ -p 6831:6831/udp \ -p 6832:6832/udp \ -p 5778:5778 \ -p 16686:16686 \ -p 14268:14268 \ -p 9411:9411 \ jaegertracing/all-in-one:1.12
Set up an Net::Async::OpenTracing instance with those connection details:
my $loop = IO::Async::Loop->new; $loop->add( my $tracing = Net::Async::OpenTracing->new( host => '127.0.0.1', port => 6832, ) ); { my $batch = $tracing->new_batch(); my $span = $batch->new_span( 'example_span' ); $span->log('test message ' . $_ . ' from the parent') for 1..3; my $child = $span->new_span('child_span'); $child->log('message ' . $_ . ' from the child span') for 1..3; } # Make sure all trace data is sent $tracing->sync->get;
You should then see a trace with 2 spans show up.
add_child, adopt_future, can_event, children, configure_unknown, debug_printf, get_loop, invoke_error, invoke_event, loop, make_event_cb, maybe_invoke_event, maybe_make_event_cb, new, notifier_name, parent, remove_child, remove_from_parent
Tom Molesworth <TEAM@cpan.org>
Copyright Tom Molesworth 2018-2019. Licensed under the same terms as Perl itself.
To install Net::Async::OpenTracing, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Net::Async::OpenTracing
CPAN shell
perl -MCPAN -e shell install Net::Async::OpenTracing
For more information on module installation, please visit the detailed CPAN module installation guide.