opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentati...
Leighton Chen 698acb835e
Release for 1.1.0/0.20b0 (#462)
2021-04-20 14:20:16 -07:00
..
src/opentelemetry/instrumentation/aiohttp_client Release for 1.1.0/0.20b0 (#462) 2021-04-20 14:20:16 -07:00
tests Sync with auto generated semantic convention constants (#428) 2021-04-19 23:37:10 -07:00
LICENSE Rename web framework packages from "ext" to "instrumentation" (#961) 2020-08-03 10:10:45 -07:00
MANIFEST.in Rename web framework packages from "ext" to "instrumentation" (#961) 2020-08-03 10:10:45 -07:00
README.rst Added link to examples folder in each instrumentation (#438) 2021-04-13 14:56:30 -07:00
setup.cfg Release for 1.1.0/0.20b0 (#462) 2021-04-20 14:20:16 -07:00
setup.py Rename web framework packages from "ext" to "instrumentation" (#961) 2020-08-03 10:10:45 -07:00

README.rst

OpenTelemetry aiohttp client Integration
========================================

|pypi|

.. |pypi| image:: https://badge.fury.io/py/opentelemetry-instrumentation-aiohttp-client.svg
   :target: https://pypi.org/project/opentelemetry-instrumentation-aiohttp-client/

This library allows tracing HTTP requests made by the
`aiohttp client <https://docs.aiohttp.org/en/stable/client.html>`_ library.

Installation
------------

::

     pip install opentelemetry-instrumentation-aiohttp-client


Example
-------

.. code:: python

   import asyncio
   
   import aiohttp

   from opentelemetry.instrumentation.aiohttp_client import AioHttpClientInstrumentor
   from opentelemetry import trace
   from opentelemetry.exporter.jaeger.thrift import JaegerExporter
   from opentelemetry.sdk.trace import TracerProvider
   from opentelemetry.sdk.trace.export import BatchSpanProcessor


   _JAEGER_EXPORTER = JaegerExporter(
      service_name="example-xxx",
      agent_host_name="localhost",
      agent_port=6831,
   )

   _TRACE_PROVIDER = TracerProvider()
   _TRACE_PROVIDER.add_span_processor(BatchSpanProcessor(_JAEGER_EXPORTER))
   trace.set_tracer_provider(_TRACE_PROVIDER)

   AioHttpClientInstrumentor().instrument()


   async def span_emitter():
      async with aiohttp.ClientSession() as session:
         async with session.get("https://example.com") as resp:
               print(resp.status)


   asyncio.run(span_emitter())


References
----------

* `OpenTelemetry Project <https://opentelemetry.io/>`_
* `aiohttp client Tracing <https://docs.aiohttp.org/en/stable/tracing_reference.html>`_
* `OpenTelemetry Python Examples <https://github.com/open-telemetry/opentelemetry-python/tree/main/docs/examples>`_