Skip to content
This repository has been archived by the owner on Oct 19, 2023. It is now read-only.

Latest commit

 

History

History
87 lines (50 loc) · 3.06 KB

README.rst

File metadata and controls

87 lines (50 loc) · 3.06 KB

HTTP Example

This example shows how to use OpenTelemetryMiddleware and requests integrations to instrument a client and a server in Python. It supports exporting spans either to the console or to Jaeger.

The source files required to run this example are available :scm_web:`here <docs/examples/http/>`.

Installation

$ pip install opentelemetry-api
$ pip install opentelemetry-sdk
$ pip install opentelemetry-ext-wsgi
$ pip install opentelemetry-ext-http-requests

Run the application

Console

  • Run the server
$ python server.py
  • Run the client from a different terminal
$ python tracer_client.py

The output will be displayed at the console on the client side

Span(name="/", context=SpanContext(trace_id=0x7c5c0d62031570f00fd106d968139300, span_id=0x3703fd889dcdeb2b, trace_state={}), kind=SpanKind.CLIENT, parent=None, start_time=2019-11-07T21:52:59.591634Z, end_time=2019-11-07T21:53:00.386014Z)

And on the server

127.0.0.1 - - [07/Nov/2019 13:53:00] "GET / HTTP/1.1" 200 -
Span(name="/wiki/Rabbit", context=SpanContext(trace_id=0x7c5c0d62031570f00fd106d968139300, span_id=0x4bf0be462b91d6ef, trace_state={}), kind=SpanKind.CLIENT, parent=Span(name="parent", context=SpanContext(trace_id=0x7c5c0d62031570f00fd106d968139300, span_id=0x68338643ccb2d53b, trace_state={})), start_time=2019-11-07T21:52:59.601597Z, end_time=2019-11-07T21:53:00.380491Z)
Span(name="parent", context=SpanContext(trace_id=0x7c5c0d62031570f00fd106d968139300, span_id=0x68338643ccb2d53b, trace_state={}), kind=SpanKind.INTERNAL, parent=Span(name="/", context=SpanContext(trace_id=0x7c5c0d62031570f00fd106d968139300, span_id=0x36050ac596949bc1, trace_state={})), start_time=2019-11-07T21:52:59.601233Z, end_time=2019-11-07T21:53:00.384485Z)
Span(name="/", context=SpanContext(trace_id=0x7c5c0d62031570f00fd106d968139300, span_id=0x36050ac596949bc1, trace_state={}), kind=SpanKind.SERVER, parent=SpanContext(trace_id=0x7c5c0d62031570f00fd106d968139300, span_id=0x3703fd889dcdeb2b, trace_state={}), start_time=2019-11-07T21:52:59.600816Z, end_time=2019-11-07T21:53:00.385322Z)

Jaeger

Setup Jaeger Tracing.

  • Run the server
$ pip install opentelemetry-ext-jaeger
$ EXPORTER=jaeger python server.py
  • Run the client from a different terminal
$ EXPORTER=jaeger python tracer_client.py

The traces should be available in the Jaeger UI at http://localhost:16686

Useful links

  • For more information on OpenTelemetry, visit OpenTelemetry.
  • For more information on tracing in Python, visit Jaeger.