{ "info": { "author": "Yuri Shkuro", "author_email": "ys@uber.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "[![PyPI version][pypi-img]][pypi] [![Python versions][pyver-img]][pypi] [![Pypi Downloads][pydl-img]][pypi] [![Build Status][ci-img]][ci] [![Coverage Status][cov-img]][cov] \n\n\n# opentracing-python-instrumentation\n\nA collection of instrumentation tools to enable tracing with \n[OpenTracing API](http://opentracing.io).\n\n## Module\n\nMake sure you are running recent enough versions of `pip` and `setuptools`, e.g. before installing your project requirements execute this:\n\n```\npip install --upgrade \"setuptools>=29\" \"pip>=9\"\n```\n\nThe module name is `opentracing_instrumentation`.\n\n## What's inside\n\n### Supported client frameworks\n\nThe following libraries are instrumented for tracing in this module:\n * [boto3](https://github.com/boto/boto3) \u2014 AWS SDK for Python\n * [Celery](https://github.com/celery/celery) \u2014 Distributed Task Queue\n * `urllib2`\n * `requests`\n * `SQLAlchemy`\n * `MySQLdb`\n * `psycopg2`\n * Tornado HTTP client\n * `redis`\n\n#### Limitations\n\nFor some operations, `Boto3` uses `ThreadPoolExecutor` under the hood.\nSo, in order to make it thread-safe, the instrumentation is implemented using\n`span_in_stack_context()` which\n[forces you](https://github.com/uber-common/opentracing-python-instrumentation#in-process-context-propagation)\nto use `TornadoScopeManager`.\n\n### Server instrumentation\n\nFor inbound requests a helper function `before_request` is provided for creating middleware for frameworks like Flask and uWSGI.\n\n### Manual instrumentation\n\nFinally, a `@traced_function` decorator is provided for manual instrumentation.\n\n### In-process Context Propagation\n\nAs part of the OpenTracing 2.0 API, in-process `Span` propagation happens through the newly defined\n[ScopeManager](https://opentracing-python.readthedocs.io/en/latest/api.html#scope-managers)\ninterface. However, the existing functionality has been kept to provide backwards compatibility and\nease code migration:\n\n`span_in_context()` implements context propagation using the current `opentracing.tracer.scope_manager`,\nexpected to be a thread-local based `ScopeManager`, such as `opentracing.scope_managers.ThreadLocalScopeManager`.\n\n`span_in_stack_context()` implements context propagation for Tornado applications\nusing the current `opentracing.tracer.scope_manager` too, expected to be an instance of\n `opentracing.scope_managers.tornado.TornadoScopeManager`.\n\n`get_current_span()` returns the currently active `Span`, if any.\n\nDirect access to the `request_context` module as well as usage of `RequestContext` and `RequestContextManager`\nhave been **fully** deprecated, as they do not integrate with the new OpenTracing 2.0 API.\nUsing them along `get_current_span()` is guaranteed to work, but it is **highly** recommended\nto switch to the previously mentioned functions.\n\n## Usage\n\nThis library provides two types of instrumentation, explicit instrumentation\nfor server endpoints, and implicit instrumentation for client call sites.\n\nServer endpoints are instrumented by creating a middleware class that:\n\n 1. initializes the specific tracer implementation\n 2. wraps incoming request handlers into a method that reads the incoming\n tracing info from the request and creates a new tracing Span\n\nClient call sites are instrumented implicitly by executing a set of \navailable `client_hooks` that monkey-patch some API points in several \ncommon libraries like `SQLAlchemy`, `urllib2`, Tornado Async HTTP Client.\nThe initialization of those hooks is usually also done from the middleware\nclass's `__init__` method.\n\nThere is a client-server example using this library with Flask instrumentation\nfrom opentracing-contrib: https://github.com/opentracing-contrib/python-flask/tree/master/example.\n\nHere's an example of a middleware for [Clay framework](https://github.com/uber/clay):\n\n```python\n\nfrom opentracing_instrumentation import span_in_context\nfrom opentracing_instrumentation.http_server import before_request\nfrom opentracing_instrumentation.http_server import WSGIRequestWrapper\nfrom opentracing_instrumentation.client_hooks import install_all_patches\n\n\nclass TracerMiddleware(object):\n\n def __init__(self, app, wsgi_app):\n self.wsgi_app = wsgi_app\n self.service_name = app.name\n\n CONFIG.app_name = self.service_name\n CONFIG.caller_name_headers.append('X-Uber-Source')\n CONFIG.callee_endpoint_headers.append('X-Uber-Endpoint')\n\n install_all_patches()\n self.wsgi_app = create_wsgi_middleware(wsgi_app)\n self.init_tracer()\n\n def __call__(self, environ, start_response):\n return self.wsgi_app(environ, start_response)\n\n def init_tracer(self):\n # code specific to your tracer implementation\n pass\n\n\ndef create_wsgi_middleware(other_wsgi, tracer=None):\n \"\"\"\n Create a wrapper middleware for another WSGI response handler.\n If tracer is not passed in, 'opentracing.tracer' is used.\n \"\"\"\n\n def wsgi_tracing_middleware(environ, start_response):\n # TODO find out if the route can be retrieved from somewhere\n\n request = WSGIRequestWrapper.from_wsgi_environ(environ)\n span = before_request(request=request, tracer=tracer)\n\n # Wrapper around the real start_response object to log\n # additional information to opentracing Span\n def start_response_wrapper(status, response_headers, exc_info=None):\n if exc_info is not None:\n span.set_tag('error', str(exc_info))\n span.finish()\n\n return start_response(status, response_headers)\n\n with span_in_context(span):\n return other_wsgi(environ, start_response_wrapper)\n\n return wsgi_tracing_middleware\n```\n\nAnd here's an example for middleware in Tornado-based app:\n\n```python\n\nimport opentracing\nfrom opentracing.scope_managers.tornado import TornadoScopeManager\nfrom opentracing_instrumentation import span_in_stack_context, http_server\n\n\nopentracing.tracer = MyOpenTracingTracer(scope_manager=TornadoScopeManager())\n\n\nclass TracerMiddleware(object):\n\n def __init__(self):\n # perform initialization similar to above, including installing\n # the client_hooks\n\n @gen.coroutine\n def __call__(self, request, handler, next_mw):\n request_wrapper = http_server.TornadoRequestWrapper(request=request)\n span = http_server.before_request(request=request_wrapper)\n\n @gen.coroutine\n def next_middleware_with_span():\n yield next_mw()\n\n yield run_coroutine_with_span(span=span,\n func=next_middleware_with_span)\n\n span.finish()\n\n\ndef run_coroutine_with_span(span, func, *args, **kwargs):\n \"\"\"Wrap the execution of a Tornado coroutine func in a tracing span.\n\n This makes the span available through the get_current_span() function.\n\n :param span: The tracing span to expose.\n :param func: Co-routine to execute in the scope of tracing span.\n :param args: Positional args to func, if any.\n :param kwargs: Keyword args to func, if any.\n \"\"\"\n with span_in_stack_context(span):\n return func(*args, **kwargs)\n```\n\n### Customization\n\nFor the `requests` library, in case you want to set custom tags\nto spans depending on content or some metadata of responses,\nyou can set `response_handler_hook`.\nThe hook must be a method with a signature `(response, span)`,\nwhere `response` and `span` are positional arguments,\nso you can use different names for them if needed.\n\n```python\nfrom opentracing_instrumentation.client_hooks.requests import patcher\n\n\ndef hook(response, span):\n if not response.ok:\n span.set_tag('error', 'true')\n\n\npatcher.set_response_handler_hook(hook)\n```\n\nIf you have issues with getting the parent span, it is possible to override\ndefault function that retrieves parent span. \n\n```python \nfrom opentracing_instrumentation.client_hooks import install_all_patches,\n set_current_span_func\n\nset_current_span_func(my_custom_extractor_func)\ninstall_all_patches()\n\n``` \n\n## Development\n\n`PostgreSQL`, `RabbitMQ`, `Redis`, and `DynamoDB` are required for certain tests.\n\n```bash\ndocker-compose up -d\n```\n\nTo prepare a development environment please execute the following commands.\n```bash\nvirtualenv env\nsource env/bin/activate\nmake bootstrap\nmake test\n```\n\nYou can use [tox](https://tox.readthedocs.io) to run tests as well.\n```bash\ntox\n```\n\n[ci-img]: https://travis-ci.org/uber-common/opentracing-python-instrumentation.svg?branch=master\n[ci]: https://travis-ci.org/uber-common/opentracing-python-instrumentation\n[pypi-img]: https://img.shields.io/pypi/v/opentracing_instrumentation.svg\n[pypi]: https://pypi.python.org/pypi/opentracing_instrumentation\n[cov-img]: https://coveralls.io/repos/github/uber-common/opentracing-python-instrumentation/badge.svg\n[cov]: https://coveralls.io/github/uber-common/opentracing-python-instrumentation\n[pyver-img]: https://img.shields.io/pypi/pyversions/opentracing-instrumentation.svg \n[pydl-img]: https://img.shields.io/pypi/dm/opentracing-instrumentation.svg \n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/uber-common/opentracing-python-instrumentation", "keywords": "opentracing", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "opentracing-instrumentation", "package_url": "https://pypi.org/project/opentracing-instrumentation/", "platform": "any", "project_url": "https://pypi.org/project/opentracing-instrumentation/", "project_urls": { "Homepage": "https://github.com/uber-common/opentracing-python-instrumentation" }, "release_url": "https://pypi.org/project/opentracing-instrumentation/3.2.1/", "requires_dist": [ "future", "wrapt", "tornado (<6,>=4.1)", "contextlib2", "opentracing (<3,>=2)", "six", "boto3 ; extra == 'tests'", "botocore ; extra == 'tests'", "celery ; extra == 'tests'", "doubles ; extra == 'tests'", "flake8 ; extra == 'tests'", "flake8-quotes ; extra == 'tests'", "mock ; extra == 'tests'", "moto ; extra == 'tests'", "psycopg2-binary ; extra == 'tests'", "sqlalchemy (>=1.3.7) ; extra == 'tests'", "pytest ; extra == 'tests'", "pytest-cov ; extra == 'tests'", "pytest-localserver ; extra == 'tests'", "pytest-mock ; extra == 'tests'", "pytest-tornado ; extra == 'tests'", "basictracer (<4,>=3) ; extra == 'tests'", "redis ; extra == 'tests'", "Sphinx ; extra == 'tests'", "sphinx-rtd-theme ; extra == 'tests'", "testfixtures ; extra == 'tests'", "MySQL-python ; (python_version == \"2.7\") and extra == 'tests'" ], "requires_python": "", "summary": "Tracing Instrumentation using OpenTracing API (http://opentracing.io)", "version": "3.2.1" }, "last_serial": 5920227, "releases": { "0.3.11": [ { "comment_text": "", "digests": { "md5": "e0a5d25f758f2aff9405a529e0ac52d4", "sha256": "758cd85720e79e7f86422b3860a525199043430d18ee26a54857db41edbe2d49" }, "downloads": -1, "filename": "opentracing_instrumentation-0.3.11.tar.gz", "has_sig": false, "md5_digest": "e0a5d25f758f2aff9405a529e0ac52d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11341, "upload_time": "2016-02-07T02:18:22", "url": "https://files.pythonhosted.org/packages/9e/bf/b30aae8e7d2445a43c2c4cca4f7e4ae2b488fcf395731d7462943c3fda97/opentracing_instrumentation-0.3.11.tar.gz" } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "bb315b3a19b181b76b42a2d6e0414032", "sha256": "818817bd66a5e9e43f854bcd9560d324602e4fc064dbe9655d5b7f07fb5db1e7" }, "downloads": -1, "filename": "opentracing_instrumentation-0.3.6.tar.gz", "has_sig": false, "md5_digest": "bb315b3a19b181b76b42a2d6e0414032", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10690, "upload_time": "2016-01-20T20:46:36", "url": "https://files.pythonhosted.org/packages/0e/93/4105ec9e884fb6c3a3fb03865e598403310f985b4d570c18818e62170e77/opentracing_instrumentation-0.3.6.tar.gz" } ], "0.3.6.dev0": [ { "comment_text": "", "digests": { "md5": "0af0fba609e0482e9ed6a41f48703a92", "sha256": "97b34b23cb1005291763d03123ee75c5249602e63695cf8cb5fa8eca702504cf" }, "downloads": -1, "filename": "opentracing_instrumentation-0.3.6.dev0.tar.gz", "has_sig": false, "md5_digest": "0af0fba609e0482e9ed6a41f48703a92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10423, "upload_time": "2016-01-20T15:54:17", "url": "https://files.pythonhosted.org/packages/6b/5d/8e4703277d8362abc8bb078f3352fde529453b27c27689f01d4c78b1838c/opentracing_instrumentation-0.3.6.dev0.tar.gz" } ], "0.3.7": [ { "comment_text": "", "digests": { "md5": "77dab0234f63932005dc0518d611ac60", "sha256": "93f36891529d38103c7911ac9c20877a024644aacb1564997f7ba2526502d7be" }, "downloads": -1, "filename": "opentracing_instrumentation-0.3.7.tar.gz", "has_sig": false, "md5_digest": "77dab0234f63932005dc0518d611ac60", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10807, "upload_time": "2016-01-22T22:51:30", "url": "https://files.pythonhosted.org/packages/7e/6b/3d1b32d83fbb7d7806b9b835f8630e20c5223ead54ec485e8d839dbce49c/opentracing_instrumentation-0.3.7.tar.gz" } ], "0.3.8": [ { "comment_text": "", "digests": { "md5": "d910dec2b86206bb07a2a42f0693e656", "sha256": "95d564a2ed7e804955d00c975c00ae88a34b947c7d50e550c3d8068b4571f806" }, "downloads": -1, "filename": "opentracing_instrumentation-0.3.8.tar.gz", "has_sig": false, "md5_digest": "d910dec2b86206bb07a2a42f0693e656", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10822, "upload_time": "2016-01-23T01:15:16", "url": "https://files.pythonhosted.org/packages/eb/ed/10a2f9b98cc0785b9850ed795c8d2d7bc16f8c24d6c59fd2b2f667e88f99/opentracing_instrumentation-0.3.8.tar.gz" } ], "0.3.9": [ { "comment_text": "", "digests": { "md5": "75270dc68e69a9257a136fa053b14074", "sha256": "16f6597131f3ccdced13b17cb1184fb81efc0771687a9c2c9cbad300d1bee95a" }, "downloads": -1, "filename": "opentracing_instrumentation-0.3.9.tar.gz", "has_sig": false, "md5_digest": "75270dc68e69a9257a136fa053b14074", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10975, "upload_time": "2016-02-04T15:40:04", "url": "https://files.pythonhosted.org/packages/b1/dd/5385549365232c0a1ee968562a533e9e852ef31dbb8cc148364cc6d4120c/opentracing_instrumentation-0.3.9.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "368f9bdb9afe7cc928f8f9058d3b5c70", "sha256": "f4e10e711bc0820eac163b79d5e20e41a479791b28ec5f1a6c0cae2477b52169" }, "downloads": -1, "filename": "opentracing_instrumentation-0.4.0.tar.gz", "has_sig": false, "md5_digest": "368f9bdb9afe7cc928f8f9058d3b5c70", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12261, "upload_time": "2016-02-26T20:57:45", "url": "https://files.pythonhosted.org/packages/0b/3a/5ffcc035b51b4017c253d3ac4750de99cc72e75a48f4e960589e28e3a23b/opentracing_instrumentation-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "f98261d7e429bc1deab436679b66387b", "sha256": "2f38641df281bab3e5a77fd37ecdbe0222cda5da6a97ec55c94547fb863db67a" }, "downloads": -1, "filename": "opentracing_instrumentation-0.4.1.tar.gz", "has_sig": false, "md5_digest": "f98261d7e429bc1deab436679b66387b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12261, "upload_time": "2016-03-03T18:50:17", "url": "https://files.pythonhosted.org/packages/65/7a/ac5a4f5e9d9e3415faa35c585cfceecdf160e3220a7b04a9e389afe120d6/opentracing_instrumentation-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "6b5db68b0e322b47dc967b0f36b3bebc", "sha256": "d6023b921ad59c8b2295f5e4907e6d344aa3bdf34bf975b076739b9f86f792c9" }, "downloads": -1, "filename": "opentracing_instrumentation-0.4.2.tar.gz", "has_sig": false, "md5_digest": "6b5db68b0e322b47dc967b0f36b3bebc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12469, "upload_time": "2016-03-29T01:30:49", "url": "https://files.pythonhosted.org/packages/60/23/5187f82f52988fd38a1c89b3417b32f030dc9b9d0baab6d662a11a59c32d/opentracing_instrumentation-0.4.2.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "9ff287dd03e47c8f42b8eb65d75140a1", "sha256": "665c57395a3f12f7ce6fb6a0569ee8744a8838013107e4eba17c0218a6f53969" }, "downloads": -1, "filename": "opentracing_instrumentation-1.0.0.tar.gz", "has_sig": false, "md5_digest": "9ff287dd03e47c8f42b8eb65d75140a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12574, "upload_time": "2016-05-24T18:24:20", "url": "https://files.pythonhosted.org/packages/b6/0e/62802132b988e7a71000d2ac7bf974e9ba7c9c77ee91497a312f1c69d0a0/opentracing_instrumentation-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "87c27b917d20da57f7499032f015bb11", "sha256": "d32696a47924ec27b211e895edbfd137c14c373d051ff0ae2423d2df6138d5e7" }, "downloads": -1, "filename": "opentracing_instrumentation-1.0.1.tar.gz", "has_sig": false, "md5_digest": "87c27b917d20da57f7499032f015bb11", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12618, "upload_time": "2016-06-06T20:58:10", "url": "https://files.pythonhosted.org/packages/07/08/c623358bed52acff27fcbe25d4477e254951dfc4ec7ab45cc45f51e35ccc/opentracing_instrumentation-1.0.1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "a9acb7f01eef105a441a3ba9c447f5d9", "sha256": "40a2311880eb1dad203e7b3f9c739fdbaa29e869f1aea48d3e44cd4f7d8bbe80" }, "downloads": -1, "filename": "opentracing_instrumentation-1.1.0.tar.gz", "has_sig": false, "md5_digest": "a9acb7f01eef105a441a3ba9c447f5d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13096, "upload_time": "2016-06-10T01:40:09", "url": "https://files.pythonhosted.org/packages/ab/53/5668be96b4464c259eed46d5c014eff38e3c5e3bd03132840a561d74e2f5/opentracing_instrumentation-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "f44bccc3bceeb13b1fb839d168ac69be", "sha256": "755a2c5607f3c0ec19ba8c21d58aee24e8c79c52d234f311d5903aed0a496bc2" }, "downloads": -1, "filename": "opentracing_instrumentation-1.1.1.tar.gz", "has_sig": false, "md5_digest": "f44bccc3bceeb13b1fb839d168ac69be", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16413, "upload_time": "2016-07-14T17:38:25", "url": "https://files.pythonhosted.org/packages/75/b4/cfedb4b1986786a71d4d2f40694e53f5faa216cb2793bc862595b466a357/opentracing_instrumentation-1.1.1.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "0e5ea664f169b09637c359cabb4de101", "sha256": "0e0733c4f12ea08c4a42136992e8b5d273b12cf75205ca532612c4ade7674d35" }, "downloads": -1, "filename": "opentracing_instrumentation-1.2.0.tar.gz", "has_sig": false, "md5_digest": "0e5ea664f169b09637c359cabb4de101", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17002, "upload_time": "2016-07-19T16:48:17", "url": "https://files.pythonhosted.org/packages/88/21/ad32a35951dd5ae85623c914bd8c2870bf081e4414cceb0f3185d08abb2e/opentracing_instrumentation-1.2.0.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "a657e354bda1d2e2d3f992bbeb43eb6f", "sha256": "1a1a315108070dcc9e738ea893176d7bd122d618d05d6c2225afa762fa0fd855" }, "downloads": -1, "filename": "opentracing_instrumentation-1.3.0.tar.gz", "has_sig": false, "md5_digest": "a657e354bda1d2e2d3f992bbeb43eb6f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17458, "upload_time": "2016-07-29T06:05:19", "url": "https://files.pythonhosted.org/packages/e0/73/ae02a1dc5767106878c1f6f042d8f2e540ff9c8f0ccdb82d7c049e772dee/opentracing_instrumentation-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "f74cadace7e2986d691cb19d71ab879a", "sha256": "8a26d92b16878d51773f0c16ffa73270c3c27d394930755d18d8ead2e8e28dcf" }, "downloads": -1, "filename": "opentracing_instrumentation-1.4.0.tar.gz", "has_sig": false, "md5_digest": "f74cadace7e2986d691cb19d71ab879a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17711, "upload_time": "2016-08-02T22:06:58", "url": "https://files.pythonhosted.org/packages/e7/08/893eafab10b75e0148f4503f8d65a88263da95db4f8ade6af381c12762e1/opentracing_instrumentation-1.4.0.tar.gz" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "77dc6f9eadbc6cae8b6b8e085ebf85ae", "sha256": "78d2608e7adfcb95556ca6f5fc5b323402bd3fa36a2fd7c308d4b2e4499b4831" }, "downloads": -1, "filename": "opentracing_instrumentation-1.4.1.tar.gz", "has_sig": false, "md5_digest": "77dc6f9eadbc6cae8b6b8e085ebf85ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17738, "upload_time": "2016-08-07T22:17:43", "url": "https://files.pythonhosted.org/packages/b7/86/f6fd900334af87a99128f481ac37b57d9ace085c38cb18627952fe4bb16d/opentracing_instrumentation-1.4.1.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "2185802128ff6107efb92137bd7c1fcc", "sha256": "bb0ac875b935666065f19c6568224b90f762c84cff5587511dcb279a041953d9" }, "downloads": -1, "filename": "opentracing_instrumentation-2.0.0.tar.gz", "has_sig": false, "md5_digest": "2185802128ff6107efb92137bd7c1fcc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18167, "upload_time": "2016-08-08T01:52:48", "url": "https://files.pythonhosted.org/packages/47/07/f0600b60440cf2181849c2f203adb5c77551bd0b65e2a43dce827dfa262a/opentracing_instrumentation-2.0.0.tar.gz" } ], "2.0.0.dev1": [ { "comment_text": "", "digests": { "md5": "bd7192c9248528a83759ca6c18932045", "sha256": "0136df0adb40974f49653b7528525ed940955139a8169690ffdbdc32beb37aa0" }, "downloads": -1, "filename": "opentracing_instrumentation-2.0.0.dev1.tar.gz", "has_sig": false, "md5_digest": "bd7192c9248528a83759ca6c18932045", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13418, "upload_time": "2016-07-12T19:39:10", "url": "https://files.pythonhosted.org/packages/01/71/33bc0b72f7e55358c88f25e8cc9144e97affdf08a391db6ba8229ff9d7c5/opentracing_instrumentation-2.0.0.dev1.tar.gz" } ], "2.0.0.dev2": [ { "comment_text": "", "digests": { "md5": "ebe6b5d5344d4a900b930abf6b488acc", "sha256": "e15290cb153e918c7baa8dcaafae8f0216ac2823165745488e9dcbeaf27f5a71" }, "downloads": -1, "filename": "opentracing_instrumentation-2.0.0.dev2.tar.gz", "has_sig": false, "md5_digest": "ebe6b5d5344d4a900b930abf6b488acc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18166, "upload_time": "2016-08-07T18:25:09", "url": "https://files.pythonhosted.org/packages/f9/ab/11c7807821306906825a8f11eb96b1c6c912f88cd52580c1c663f3fa52f1/opentracing_instrumentation-2.0.0.dev2.tar.gz" } ], "2.0.0.dev3": [ { "comment_text": "", "digests": { "md5": "c758b4806693bce12420df2f9d0c61df", "sha256": "4e9a51aa190a173fe05020a8d546ae95c8f7302b12dda940f767a27c6620dabc" }, "downloads": -1, "filename": "opentracing_instrumentation-2.0.0.dev3.tar.gz", "has_sig": false, "md5_digest": "c758b4806693bce12420df2f9d0c61df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18183, "upload_time": "2016-08-07T22:20:25", "url": "https://files.pythonhosted.org/packages/12/81/dd5b1339c1b1d23d90dfdded77458d011f52ff924d668ddd76a16fd30f5e/opentracing_instrumentation-2.0.0.dev3.tar.gz" } ], "2.0.0.dev4": [ { "comment_text": "", "digests": { "md5": "bfd006c3e6ebd7b4211f42d862aa8e54", "sha256": "c7bd8a248c1de0527492d8e652b587e1e154abd276bfa61016927abc4e32bc86" }, "downloads": -1, "filename": "opentracing_instrumentation-2.0.0.dev4.tar.gz", "has_sig": false, "md5_digest": "bfd006c3e6ebd7b4211f42d862aa8e54", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18190, "upload_time": "2016-08-07T23:18:04", "url": "https://files.pythonhosted.org/packages/6f/c9/ccb7a984ec17888912af01df22b0e40fdd7f9845a333ca04a0b022981829/opentracing_instrumentation-2.0.0.dev4.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "125869ee39dbb45def2a4f839f3aff70", "sha256": "bb7b181cfae18736fd29669ee1e327727ab9ff8d249cafc3b3b0f1e1fed471a2" }, "downloads": -1, "filename": "opentracing_instrumentation-2.0.1.tar.gz", "has_sig": false, "md5_digest": "125869ee39dbb45def2a4f839f3aff70", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18195, "upload_time": "2016-08-10T02:52:51", "url": "https://files.pythonhosted.org/packages/dc/50/1f9421f25a346df13a66a0463205f54ba780d3d327440bc79259d092e9ae/opentracing_instrumentation-2.0.1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "72228512d4448b358d2f309642a449c0", "sha256": "0e63e50b38583f2690bf75b0701d3b6fab73299f477bc672bc045147973ca6c7" }, "downloads": -1, "filename": "opentracing_instrumentation-2.0.2.tar.gz", "has_sig": false, "md5_digest": "72228512d4448b358d2f309642a449c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18233, "upload_time": "2016-08-11T01:22:38", "url": "https://files.pythonhosted.org/packages/77/46/6ffff939c3a3ebdda16ea5e8f21c91f0b05b2d1b9e826ff8058a4dc07c5c/opentracing_instrumentation-2.0.2.tar.gz" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "d54009da302722767febd00ebbfa612a", "sha256": "2c9bbe201b27c623438897d2f6ecb3b82321c99fabab336021728867e5945168" }, "downloads": -1, "filename": "opentracing_instrumentation-2.0.3.tar.gz", "has_sig": false, "md5_digest": "d54009da302722767febd00ebbfa612a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18308, "upload_time": "2016-08-12T00:12:43", "url": "https://files.pythonhosted.org/packages/13/01/e9814fe05205cb59cc62712dbe198e773a0cc383c57d2aa86370bd9a88be/opentracing_instrumentation-2.0.3.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "cc8a488769c66d950adcce8cfb71e8b0", "sha256": "990d0b1f377f718bc9491ce7a9aa168b3f79adcb1c87c67cda9ac9da83acc1ce" }, "downloads": -1, "filename": "opentracing_instrumentation-2.1.0.tar.gz", "has_sig": false, "md5_digest": "cc8a488769c66d950adcce8cfb71e8b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18528, "upload_time": "2016-09-08T22:25:14", "url": "https://files.pythonhosted.org/packages/31/f9/ee55be65b9658886622ba36413cf9da743118151042bb8899dc8355a9db2/opentracing_instrumentation-2.1.0.tar.gz" } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "cfb85ab8737d548a0a0881ba1e1cac24", "sha256": "d7d5cfa5862048f824e7cc33289c359c7d972287d45806701aeda455652513ee" }, "downloads": -1, "filename": "opentracing_instrumentation-2.2.0.tar.gz", "has_sig": false, "md5_digest": "cfb85ab8737d548a0a0881ba1e1cac24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18556, "upload_time": "2016-10-04T16:26:58", "url": "https://files.pythonhosted.org/packages/7d/80/8612e4ecb5eb435376a546e8a713878153dc7124fe297028850cafc8802f/opentracing_instrumentation-2.2.0.tar.gz" } ], "2.3.0": [ { "comment_text": "", "digests": { "md5": "b569e3d7bbdd6027acdd0ee7ac62f1dc", "sha256": "5af7c75b3500ffe6e88796f45c1a1f15fee0727f11b7e6b1512520b0dc1fd4f5" }, "downloads": -1, "filename": "opentracing_instrumentation-2.3.0.tar.gz", "has_sig": false, "md5_digest": "b569e3d7bbdd6027acdd0ee7ac62f1dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17760, "upload_time": "2017-10-25T22:48:59", "url": "https://files.pythonhosted.org/packages/05/a3/cde8042e14109e6909537ed5bffdb0bac896e6a806689fabcfa29fd1ee57/opentracing_instrumentation-2.3.0.tar.gz" } ], "2.4.0": [ { "comment_text": "", "digests": { "md5": "f036753e325f9d7ea6f417c2e3587d58", "sha256": "04265c373c05054b4e62b787159b63c2b2a7aeaa370f46194c1efc4bcfe23294" }, "downloads": -1, "filename": "opentracing_instrumentation-2.4.0.tar.gz", "has_sig": false, "md5_digest": "f036753e325f9d7ea6f417c2e3587d58", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18007, "upload_time": "2018-01-09T17:12:17", "url": "https://files.pythonhosted.org/packages/e5/0b/c207f57ee4dad7dc9f9306d9228e2d755417912296c6cc4a7db29a4eb568/opentracing_instrumentation-2.4.0.tar.gz" } ], "2.4.1": [ { "comment_text": "", "digests": { "md5": "82039c7540e7870b81345885cda442ed", "sha256": "1ae4c2c3cd05ffda3eb1fb6324214a049baa68e6c2f2ec2e20106e3fc21f46f0" }, "downloads": -1, "filename": "opentracing_instrumentation-2.4.1.tar.gz", "has_sig": false, "md5_digest": "82039c7540e7870b81345885cda442ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18478, "upload_time": "2018-04-19T21:56:31", "url": "https://files.pythonhosted.org/packages/f3/7a/8b3502efa71179806235c29826272130d34d50f022530cdff176b25fc18f/opentracing_instrumentation-2.4.1.tar.gz" } ], "2.4.2": [ { "comment_text": "", "digests": { "md5": "ee54516b1a87f8e38ea73d8c3c7c9966", "sha256": "ccbbcdb0fb29586396f51b56713d8816555f1252e53311dcd434b83996907ade" }, "downloads": -1, "filename": "opentracing_instrumentation-2.4.2.tar.gz", "has_sig": false, "md5_digest": "ee54516b1a87f8e38ea73d8c3c7c9966", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18763, "upload_time": "2018-08-03T14:48:22", "url": "https://files.pythonhosted.org/packages/c0/2a/adc266147f20269ab811c63d745e26cf320d515c5737a4b004ee458212f0/opentracing_instrumentation-2.4.2.tar.gz" } ], "2.4.3": [ { "comment_text": "", "digests": { "md5": "e488c43ecc7296104b18e92e7c45ec32", "sha256": "8532d4358ff5acbf3a9be719ebe4a2d88f81d3a4b08210242abb4d78fc4936b5" }, "downloads": -1, "filename": "opentracing_instrumentation-2.4.3.tar.gz", "has_sig": false, "md5_digest": "e488c43ecc7296104b18e92e7c45ec32", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21181, "upload_time": "2018-08-24T16:14:30", "url": "https://files.pythonhosted.org/packages/e0/a5/c99f58a9972bebe075190924524e62cb0a124f08df4fef806cdca5061d02/opentracing_instrumentation-2.4.3.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "7b84e590714b21b45188cdf49f1e47ef", "sha256": "d29c2767614abb5ed53e6dbe6d27fdb2aa3716a0f6c0e12e254127ff24f60983" }, "downloads": -1, "filename": "opentracing_instrumentation-3.0.0.tar.gz", "has_sig": false, "md5_digest": "7b84e590714b21b45188cdf49f1e47ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23307, "upload_time": "2019-04-27T19:45:24", "url": "https://files.pythonhosted.org/packages/e6/9d/f906272cb2293b3205b9437bec60df1a7d14e69835264daaf367c5e3356c/opentracing_instrumentation-3.0.0.tar.gz" } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "d0162ac660014eb5c0c30ef213371036", "sha256": "4354c7552e2bf3573749a5dc523e19353732e94ab13af8104737a01f58972a87" }, "downloads": -1, "filename": "opentracing_instrumentation-3.0.1.tar.gz", "has_sig": false, "md5_digest": "d0162ac660014eb5c0c30ef213371036", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23306, "upload_time": "2019-04-28T20:17:07", "url": "https://files.pythonhosted.org/packages/19/de/e41da1a3ba42f8254a83a34c090872a124d364441d369b76c09f27092fac/opentracing_instrumentation-3.0.1.tar.gz" } ], "3.1.1": [ { "comment_text": "", "digests": { "md5": "6f966222df1b66cc16f4fd628a84ce36", "sha256": "1296d972a28b880f8718ce2fa200fb23a82167d8785563da614815a31a4fe2eb" }, "downloads": -1, "filename": "opentracing_instrumentation-3.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6f966222df1b66cc16f4fd628a84ce36", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 43648, "upload_time": "2019-07-05T05:43:52", "url": "https://files.pythonhosted.org/packages/c1/88/2b17c97887e5f3441bbdb9894b16738d9803924552f54ea5ff6e723cf9b7/opentracing_instrumentation-3.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8f9c5195b8203f6bae8cac07b21f872a", "sha256": "4afedf1469cb1f868e95eb98668bbae4c26088db98cbd6bf0cfde2b087e80472" }, "downloads": -1, "filename": "opentracing_instrumentation-3.1.1.tar.gz", "has_sig": false, "md5_digest": "8f9c5195b8203f6bae8cac07b21f872a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25123, "upload_time": "2019-07-05T05:43:54", "url": "https://files.pythonhosted.org/packages/6f/fb/d538935fb73e34a803b022e631e169d10f77f620051aa802a639a4988419/opentracing_instrumentation-3.1.1.tar.gz" } ], "3.2.0": [ { "comment_text": "", "digests": { "md5": "5ed9cce287cab19a64c321ef313d5d8e", "sha256": "2f0dbf4dcbb405d69cf1a479455e02dc5ca9f5bed5a5783d43de6fadd4fcc662" }, "downloads": -1, "filename": "opentracing_instrumentation-3.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5ed9cce287cab19a64c321ef313d5d8e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 44723, "upload_time": "2019-09-02T19:10:49", "url": "https://files.pythonhosted.org/packages/15/37/0f39a56c1a4b9bf11d2dabca46dd85929e51d46379b4c2c3ecf719681251/opentracing_instrumentation-3.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "df7473d786cb537cbb707b0634e02a81", "sha256": "744d30178d8cfda08b859a8b79f8f41698d8170da5dd87c7d07c5bccbf53a0df" }, "downloads": -1, "filename": "opentracing_instrumentation-3.2.0.tar.gz", "has_sig": false, "md5_digest": "df7473d786cb537cbb707b0634e02a81", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26216, "upload_time": "2019-09-02T19:10:51", "url": "https://files.pythonhosted.org/packages/19/e8/f7c59e5edf1ba712efbc0e9821fbc046c3c17d85cf836a5ce62f2052ea41/opentracing_instrumentation-3.2.0.tar.gz" } ], "3.2.1": [ { "comment_text": "", "digests": { "md5": "3f9f1d2bef2360b7eea5fdaa180173a3", "sha256": "918b1f52e3db035002bb26a366bb6cbaea9715d567015ce9f514e08047f84185" }, "downloads": -1, "filename": "opentracing_instrumentation-3.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3f9f1d2bef2360b7eea5fdaa180173a3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 44632, "upload_time": "2019-10-02T19:55:18", "url": "https://files.pythonhosted.org/packages/d7/55/8236cbaa316ad43028f49570389d9893ac49f402de41b1411797db412dda/opentracing_instrumentation-3.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1a0da702749f5a36e23b1b014fbe9f0f", "sha256": "a8fb8499c6ab71665313c179e327b406bfa09b0277bd7cb02b2941eaa659d8dd" }, "downloads": -1, "filename": "opentracing_instrumentation-3.2.1.tar.gz", "has_sig": false, "md5_digest": "1a0da702749f5a36e23b1b014fbe9f0f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26236, "upload_time": "2019-10-02T19:55:20", "url": "https://files.pythonhosted.org/packages/0d/c7/21cb06a5b9356e3328f1bbea47575b62bd697382276c43f240e615eabfc5/opentracing_instrumentation-3.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3f9f1d2bef2360b7eea5fdaa180173a3", "sha256": "918b1f52e3db035002bb26a366bb6cbaea9715d567015ce9f514e08047f84185" }, "downloads": -1, "filename": "opentracing_instrumentation-3.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3f9f1d2bef2360b7eea5fdaa180173a3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 44632, "upload_time": "2019-10-02T19:55:18", "url": "https://files.pythonhosted.org/packages/d7/55/8236cbaa316ad43028f49570389d9893ac49f402de41b1411797db412dda/opentracing_instrumentation-3.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1a0da702749f5a36e23b1b014fbe9f0f", "sha256": "a8fb8499c6ab71665313c179e327b406bfa09b0277bd7cb02b2941eaa659d8dd" }, "downloads": -1, "filename": "opentracing_instrumentation-3.2.1.tar.gz", "has_sig": false, "md5_digest": "1a0da702749f5a36e23b1b014fbe9f0f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26236, "upload_time": "2019-10-02T19:55:20", "url": "https://files.pythonhosted.org/packages/0d/c7/21cb06a5b9356e3328f1bbea47575b62bd697382276c43f240e615eabfc5/opentracing_instrumentation-3.2.1.tar.gz" } ] }