OpenTracing::Manual - A quick overview about Perl5 and OpenTracing
The OpenTracing module on CPAN is NOT COMPLIANT with anything remotely to OpenTracing.IO or the OpenTracing::Interface.
OpenTracing
DO NOT USE THE OPENTRACING PACKAGE
This Manual is a quick overview of what is available in Perl related to the OpenTracing API related Interface Definition.
This manual targets three different audiences:
Those that want to add instrumentation and tracing to their appilication or micro services.
Those writing integrations for frameworks, such that those can easily extract tracing information from incoming request or inject that into outgoing requests.
Those that want to have the Perl Implementation communicate with their tracing service provider.
Included is a list of Perl Modules and those that are on the horizon.
From the OpenTracing IO website:
OpenTracing is comprised of an API specification, frameworks and libraries that have implemented the specification, and documentation for the project. OpenTracing allows developers to add instrumentation to their application code using APIs that do not lock them into any one particular product or vendor.
Distributed tracing, also called distributed request tracing, is a method used to profile and monitor applications, especially those built using a microservices architecture. Distributed tracing helps pinpoint where failures occur and what causes poor performance.
See also: OpenTracing Overview.
Please have a look at the following modules or distributions to get more detailed information about all the puzzle pieces.
The description of the interface.
To make type-checking more easy.
Because we made mistakes.
Check that the classes/objects adhere to the defined OpenTracing::Interface description.
Do a cmp_deeply on a testing implementation.
cmp_deeply
Get access to a bootstrapped implementation.
A generic set of attributes and methods for building implementations.
Bootstrap an implementation and set a global tracer.
Prevent applications from crashing.
Build a data structure that can be used to do a cmp_deeply variant.
Send traces and spans to the DataDog agent on the local host.
Finish a span after exiting a scope.
Auto generate root-span on newly started trace, and on top a setup-span, a run-span and more.
Take care of all the specifics for DataDog. Comes bundled with CGI::Application::Plugin::OpenTracing.
The following modules will be needed for easier instrumentation of an application or better framework integration and distributed tracing.
Wrap full-qualified named subroutines in a scope, instead of modifying all the codebase.
Trace all DBI requests, using DBIx::QueryLog.
DBI
OpenTracing inject_context method for LWP::UserAgent.
inject_context
OpenTracing inject_context method for HTTP::Tiny.
OpenTracing extract_context and create initial root-spans.
extract_context
Inject current `SpanContext`, a drop-in replacement, or even override everywhere!.
Since all the work has been done for Peceptyx, no further development will be done on the following, unless ...
Please contact the author!
See ... .
See New Relic APM.
See Dancer2::Plugin.
See Mojolicious::Plugin.
See Catalyst.
Get access to the OpenTracing::GlobalTracer a la MooX::LogAny.
Theo van Hoesel <tvanhoesel@perceptyx.com>
'OpenTracing API for Perl' 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 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.
To install OpenTracing::Manual, copy and paste the appropriate command in to your terminal.
cpanm
cpanm OpenTracing::Manual
CPAN shell
perl -MCPAN -e shell install OpenTracing::Manual
For more information on module installation, please visit the detailed CPAN module installation guide.