GitHub - rflemig/python-sensor: :snake: Python Distributed Tracing & Metrics Sensor for Instana
The instana package provides Python metrics and traces (request, queue & cross-host) for Instana.
This package supports Python 2.7 or greater.
Any and all feedback is welcome. Happy Python visibility.
Usage & Installation
The instana package will automatically collect metrics and distributed traces from your Python processes. Just install and go.
pip install instana into the virtual-env or container (hosted on pypi)
The Instana package can then be activated without any code changes required by setting the following environment variable for your Python application:
export AUTOWRAPT_BOOTSTRAP=instana
alternatively, if you prefer the manual method, simply import the instana package inside of your Python application:
See our detailed Installation document for additional information covering Django, Flask, End-user Monitoring (EUM) and more.
OpenTracing
This Python package supports OpenTracing. When using this package, the OpenTracing tracer (opentracing.tracer) is automatically set to the InstanaTracer.
import opentracing parent_span = opentracing.tracer.start_span(operation_name="asteroid") # ... work child_span = opentracing.tracer.start_span(operation_name="spacedust", child_of=parent_span) child_span.set_tag(ext.SPAN_KIND, ext.SPAN_KIND_RPC_CLIENT) # ... work child_span.finish() # ... work parent_span.finish()
Note: The Instana sensor has automatic instrumentation that activates at runtime. If you need to get the current tracing context from existing instrumentation, you can use opentracing.tracer.current_context() and pass that return value as childof:
context = opentracing.tracer.current_context()
span = opentracing.tracer.start_span("my_span", child_of=context)
Also note that under evented systems such as gevent, concurrence and/or greenlets (which aren't supportet yet), the value opentracing.tracer.current_context() is likely to be inconsistent.
Configuration
For details on how to configure the Instana Python package, see Configuration.md
Documentation
You can find more documentation covering supported components and minimum versions in the Instana documentation portal.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/instana/python-sensor.
More
Want to instrument other languages? See our Nodejs, Go, Ruby instrumentation or many other supported technologies.
