Metadata-Version: 2.1
Name: chaostoolkit-opentracing
Version: 0.1.0
Summary: Chaos Toolkit OpenTracing Extension
Home-page: http://chaostoolkit.org
Author: chaostoolkit Team
Author-email: contact@chaostoolkit.org
License: Apache License Version 2.0
Platform: UNKNOWN
Classifier: Intended Audience :: Developers
Classifier: License :: Freely Distributable
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: Implementation
Classifier: Programming Language :: Python :: Implementation :: CPython
Requires-Python: >=3.5.*
Provides-Extra: jaeger
Requires-Dist: chaostoolkit-lib (>=1.0.0rc1)
Requires-Dist: logzero
Requires-Dist: opentracing
Provides-Extra: jaeger
Requires-Dist: opentracing (<2,>=1.2.2); extra == 'jaeger'
Requires-Dist: jaeger-client (==3.10.0); extra == 'jaeger'

# Chaos Toolkit Extension for Open Tracing

[![Build Status](https://travis-ci.org/chaostoolkit-incubator/chaostoolkit-opentracing.svg?branch=master)](https://travis-ci.org/chaostoolkit-incubator/chaostoolkit-opentracing)

This project is an extension for the Chaos Toolkit for [OpenTracing][].

[opentracing]: https://opentracing.io/

## Install

This package requires Python 3.5+

To be used from your experiment, this package must be installed in the Python
environment where [chaostoolkit][] already lives.

[chaostoolkit]: https://github.com/chaostoolkit/chaostoolkit

```
$ pip install -U chaostoolkit-opentracing
```

## Usage

Currently, this extension only provides control support to send traces to
your provider during the execution of the experiment. It does not yet expose
any probes or actions per-se.

To use this control, add the following section to your experiment, at the
top-level:

```json
{
    "configuration": {
        "tracing_provider": "jaeger",
        "tracing_host": "127.0.0.1",
        "tracing_port": 6831
    },
    "controls": [
        {
            "name": "opentracing",
            "provider": {
                "type": "python",
                "module": "chaostracing.control"
            }
        }
    ]
}
```

This will automatically create a [Jaeger][] client to emit traces onto the
address `127.0.0.1:6831`.

[jaeger]: https://www.jaegertracing.io/

You may also access the tracer from other extensions as follows:

```python
import opentracing

def some_function(...):
    opentracing.tracer
```

## Open Tracing Provider Support

For now, only the Jaeger tracer is supported but other providers will be added
as need be in the future.

### Jaeger tracer

To install the necessary dependencies for the Jaeger tracer, please run:

```
$ pip install chaostoolkit-opentracing[jaeger]
```

Unfortunately, the Jaeger client does not yet support Open Tracing 2.0.



## Test

To run the tests for the project execute the following:

```
$ pytest
```

## Contribute

If you wish to contribute more functions to this package, you are more than
welcome to do so. Please, fork this project, make your changes following the
usual [PEP 8][pep8] code style, sprinkling with tests and submit a PR for
review.

[pep8]: https://pycodestyle.readthedocs.io/en/latest/

The Chaos Toolkit projects require all contributors must sign a
[Developer Certificate of Origin][dco] on each commit they would like to merge
into the master branch of the repository. Please, make sure you can abide by
the rules of the DCO before submitting a PR.

[dco]: https://github.com/probot/dco#how-it-works

