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.