❗ This instrumentation is no longer recommended. Please review documentation on setting up and configuring the OpenTelemetry Python Launcher for more information on migrating to OpenTelemetry.
The LightStep distributed tracing library for Python.
apt-get install python-dev
pip install lightstep
pyenv install 2.7.15
pyenv install 3.4.9
pyenv install 3.5.6
pyenv install 3.6.6
pyenv install 3.7.0
pyenv local 2.7.15 3.4.9
tox
- Run the examples:
source .tox/py37/bin/activate
python examples/nontrivial/main.py
Only required for LightStep developers
pip install modernize
Only required for LightStep developers
brew install protobuf
- Generating the proto code
cd ..
git clone https://github.com/googleapis/googleapis.git
git clone https://github.com/lightstep/lightstep-tracer-common.git
cd lightstep-tracer-python
make proto
Please see the example programs for examples of how to use this library. In particular:
- Trivial Example shows how to use the library on a single host.
- Context in Headers shows how to pass a
TraceContext
throughHTTP
headers.
Or if your python code is already instrumented for OpenTracing, you can simply switch to LightStep's implementation with:
import opentracing
import lightstep
if __name__ == "__main__":
opentracing.tracer = lightstep.Tracer(
component_name='your_microservice_name',
access_token='{your_access_token}')
with opentracing.tracer.start_active_span('TestSpan') as scope:
scope.span.log_event('test message', payload={'life': 42})
opentracing.tracer.flush()
When using apache thrift rpc, make sure to both disable use_http by setting it to False as well as enabling use_thrift.
return lightstep.Tracer(
...
use_http=False,
use_thrift=True)
This library is the LightStep binding for OpenTracing. See the OpenTracing Python API for additional detail.