From b1c28bb77afd37fde75899e49ffd60d63e567eb1 Mon Sep 17 00:00:00 2001 From: alrex Date: Fri, 15 Nov 2019 13:45:51 -0800 Subject: [PATCH 01/14] Skip pytest 5.2.3 (#293) --- tox.ini | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index e0e076fe77d..30e1d3745b8 100644 --- a/tox.ini +++ b/tox.ini @@ -20,7 +20,10 @@ python = [testenv] deps = - test: pytest + ; skip 5.2.3 pytest due to bug + ; https://github.com/pytest-dev/pytest/issues/6194 + test: pytest!=5.2.3 + coverage: pytest!=5.2.3 coverage: pytest-cov mypy,mypyinstalled: mypy~=0.740 From d5b580f0d05e301b9eee0a9ddd44fdcc7ae01047 Mon Sep 17 00:00:00 2001 From: Cheng-Lung Sung Date: Sat, 16 Nov 2019 06:12:33 +0800 Subject: [PATCH 02/14] Fix typo, wording (#289) --- CONTRIBUTING.md | 6 +++--- ext/opentelemetry-ext-jaeger/README.rst | 2 +- ext/opentelemetry-ext-wsgi/README.rst | 6 +++--- .../context/propagation/tracecontexthttptextformat.py | 2 +- opentelemetry-api/src/opentelemetry/trace/__init__.py | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 74cc3458742..e84971fa4a7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -19,7 +19,7 @@ If you are looking for someone to help you find a starting point and be a resour Gitter and find a buddy! 1. Join [Gitter.im](https://gitter.im) and join our [chat room](https://gitter.im/open-telemetry/opentelemetry-python). -2. Post in the room with an introduction to yourself, what area you are interested in (checks issues marked "Help Wanted"), +2. Post in the room with an introduction to yourself, what area you are interested in (check issues marked "Help Wanted"), and say you are looking for a buddy. We will match you with someone who has experience in that area. Your OpenTelemetry buddy is your resource to talk to directly on all aspects of contributing to OpenTelemetry: providing @@ -37,7 +37,7 @@ You can run: under multiple Python versions - `tox -e docs` to regenerate the API docs - `tox -e test-api` and `tox -e test-sdk` to run the API and SDK unit tests -- `tox -e py37-test-api` to e.g. run the the API unit tests under a specific +- `tox -e py37-test-api` to e.g. run the API unit tests under a specific Python version - `tox -e lint` to run lint checks on all code @@ -115,7 +115,7 @@ It's especially valuable to read through the [library guidelines](https://github OpenTelemetry is an evolving specification, one where the desires and use cases are clear, but the method to satisfy those uses cases are not. -As such, Contributions should provide functionality and behavior that +As such, contributions should provide functionality and behavior that conforms to the specification, but the interface and structure is flexible. It is preferable to have contributions follow the idioms of the language diff --git a/ext/opentelemetry-ext-jaeger/README.rst b/ext/opentelemetry-ext-jaeger/README.rst index 321e993be1c..a03d1b0c1e0 100644 --- a/ext/opentelemetry-ext-jaeger/README.rst +++ b/ext/opentelemetry-ext-jaeger/README.rst @@ -26,7 +26,7 @@ gRPC is still not supported by this implementation. .. _Jaeger: https://www.jaegertracing.io/ -.. _OpenTelemetry: https://github.com/opentelemetry/opentelemetry-python/ +.. _OpenTelemetry: https://github.com/open-telemetry/opentelemetry-python/ .. code:: python diff --git a/ext/opentelemetry-ext-wsgi/README.rst b/ext/opentelemetry-ext-wsgi/README.rst index e14d2dd05a5..82641bcaa4a 100644 --- a/ext/opentelemetry-ext-wsgi/README.rst +++ b/ext/opentelemetry-ext-wsgi/README.rst @@ -3,8 +3,8 @@ OpenTelemetry WSGI Middleware |pypi| -.. |pypi| image:: https://badge.fury.io/py/opentelemetry-wsgi.svg - :target: https://pypi.org/project/opentelemetry-opentracing-wsgi/ +.. |pypi| image:: https://badge.fury.io/py/opentelemetry-ext-wsgi.svg + :target: https://pypi.org/project/opentelemetry-ext-wsgi/ This library provides a WSGI middleware that can be used on any WSGI framework @@ -15,7 +15,7 @@ Installation :: - pip install opentelemetry-opentracing-wsgi + pip install opentelemetry-ext-wsgi Usage (Flask) diff --git a/opentelemetry-api/src/opentelemetry/context/propagation/tracecontexthttptextformat.py b/opentelemetry-api/src/opentelemetry/context/propagation/tracecontexthttptextformat.py index 20f2601fa20..5d00632ed17 100644 --- a/opentelemetry-api/src/opentelemetry/context/propagation/tracecontexthttptextformat.py +++ b/opentelemetry-api/src/opentelemetry/context/propagation/tracecontexthttptextformat.py @@ -21,7 +21,7 @@ _T = typing.TypeVar("_T") # Keys and values are strings of up to 256 printable US-ASCII characters. -# Implementations should conform to the the `W3C Trace Context - Tracestate`_ +# Implementations should conform to the `W3C Trace Context - Tracestate`_ # spec, which describes additional restrictions on valid field values. # # .. _W3C Trace Context - Tracestate: diff --git a/opentelemetry-api/src/opentelemetry/trace/__init__.py b/opentelemetry-api/src/opentelemetry/trace/__init__.py index 412a106229d..74ee0f5dd1e 100644 --- a/opentelemetry-api/src/opentelemetry/trace/__init__.py +++ b/opentelemetry-api/src/opentelemetry/trace/__init__.py @@ -135,7 +135,7 @@ class SpanKind(enum.Enum): #: path latency relationship between producer and consumer spans. PRODUCER = 3 - #: Indicates that the span describes consumer receiving a message from a + #: Indicates that the span describes a consumer receiving a message from a #: broker. Unlike client and server, there is usually no direct critical #: path latency relationship between producer and consumer spans. CONSUMER = 4 @@ -285,7 +285,7 @@ class TraceState(typing.Dict[str, str]): """A list of key-value pairs representing vendor-specific trace info. Keys and values are strings of up to 256 printable US-ASCII characters. - Implementations should conform to the the `W3C Trace Context - Tracestate`_ + Implementations should conform to the `W3C Trace Context - Tracestate`_ spec, which describes additional restrictions on valid field values. .. _W3C Trace Context - Tracestate: From 30a1bb8e9af2abb960eec9388a99ce8cbb7420b1 Mon Sep 17 00:00:00 2001 From: alrex Date: Fri, 15 Nov 2019 18:09:34 -0800 Subject: [PATCH 03/14] Removing add_link and add_lazy_link from api/sdk (#259) Prevents adding links after spans are created for OTEP 0006. --- .../examples/jaeger_exporter_example.py | 5 +- .../ext/opentracing_shim/__init__.py | 9 ++- .../src/opentelemetry/trace/__init__.py | 34 +++++------ .../src/opentelemetry/trace/sampling.py | 5 +- .../src/opentelemetry/sdk/trace/__init__.py | 48 ++++++--------- opentelemetry-sdk/tests/trace/test_trace.py | 61 ++++++++++++++----- 6 files changed, 95 insertions(+), 67 deletions(-) diff --git a/ext/opentelemetry-ext-jaeger/examples/jaeger_exporter_example.py b/ext/opentelemetry-ext-jaeger/examples/jaeger_exporter_example.py index 5cf57bfccad..89d93809e40 100644 --- a/ext/opentelemetry-ext-jaeger/examples/jaeger_exporter_example.py +++ b/ext/opentelemetry-ext-jaeger/examples/jaeger_exporter_example.py @@ -33,10 +33,11 @@ time.sleep(0.1) foo.set_attribute("my_atribbute", True) foo.add_event("event in foo", {"name": "foo1"}) - with tracer.start_as_current_span("bar") as bar: + with tracer.start_as_current_span( + "bar", links=[trace.Link(foo.get_context())] + ) as bar: time.sleep(0.2) bar.set_attribute("speed", 100.0) - bar.add_link(foo.get_context()) with tracer.start_as_current_span("baz") as baz: time.sleep(0.3) diff --git a/ext/opentelemetry-ext-opentracing-shim/src/opentelemetry/ext/opentracing_shim/__init__.py b/ext/opentelemetry-ext-opentracing-shim/src/opentelemetry/ext/opentracing_shim/__init__.py index dae4d848653..eefb85466ae 100644 --- a/ext/opentelemetry-ext-opentracing-shim/src/opentelemetry/ext/opentracing_shim/__init__.py +++ b/ext/opentelemetry-ext-opentracing-shim/src/opentelemetry/ext/opentracing_shim/__init__.py @@ -17,6 +17,7 @@ import opentracing from deprecated import deprecated +import opentelemetry.trace as trace_api from opentelemetry import propagators from opentelemetry.ext.opentracing_shim import util @@ -231,11 +232,15 @@ def start_span( # Use the specified parent or the active span if possible. Otherwise, # use a `None` parent, which triggers the creation of a new trace. parent = child_of.unwrap() if child_of else None - span = self._otel_tracer.create_span(operation_name, parent) + links = [] if references: for ref in references: - span.add_link(ref.referenced_context.unwrap()) + links.append(trace_api.Link(ref.referenced_context.unwrap())) + + span = self._otel_tracer.create_span( + operation_name, parent, links=links + ) if tags: for key, value in tags.items(): diff --git a/opentelemetry-api/src/opentelemetry/trace/__init__.py b/opentelemetry-api/src/opentelemetry/trace/__init__.py index 74ee0f5dd1e..4f1dc539a39 100644 --- a/opentelemetry-api/src/opentelemetry/trace/__init__.py +++ b/opentelemetry-api/src/opentelemetry/trace/__init__.py @@ -80,7 +80,10 @@ def __init__( self, context: "SpanContext", attributes: types.Attributes = None ) -> None: self._context = context - self._attributes = attributes + if attributes is None: + self._attributes = {} # type: types.Attributes + else: + self._attributes = attributes @property def context(self) -> "SpanContext": @@ -198,23 +201,6 @@ def add_lazy_event(self, event: Event) -> None: Adds an `Event` that has previously been created. """ - def add_link( - self, - link_target_context: "SpanContext", - attributes: types.Attributes = None, - ) -> None: - """Adds a `Link` to another span. - - Adds a single `Link` from this Span to another Span identified by the - `SpanContext` passed as argument. - """ - - def add_lazy_link(self, link: "Link") -> None: - """Adds a `Link` to another span. - - Adds a `Link` that has previously been created. - """ - def update_name(self, name: str) -> None: """Updates the `Span` name. @@ -416,6 +402,8 @@ def start_span( name: str, parent: ParentSpan = CURRENT_SPAN, kind: SpanKind = SpanKind.INTERNAL, + attributes: typing.Optional[types.Attributes] = None, + links: typing.Sequence[Link] = (), ) -> "Span": """Starts a span. @@ -444,6 +432,8 @@ def start_span( parent: The span's parent. Defaults to the current span. kind: The span's kind (relationship to parent). Note that is meaningful even if there is no parent. + attributes: The span's attributes. + links: Links span to other spans Returns: The newly-created span. @@ -457,6 +447,8 @@ def start_as_current_span( name: str, parent: ParentSpan = CURRENT_SPAN, kind: SpanKind = SpanKind.INTERNAL, + attributes: typing.Optional[types.Attributes] = None, + links: typing.Sequence[Link] = (), ) -> typing.Iterator["Span"]: """Context manager for creating a new span and set it as the current span in this tracer's context. @@ -492,6 +484,8 @@ def start_as_current_span( parent: The span's parent. Defaults to the current span. kind: The span's kind (relationship to parent). Note that is meaningful even if there is no parent. + attributes: The span's attributes. + links: Links span to other spans Yields: The newly-created span. @@ -505,6 +499,8 @@ def create_span( name: str, parent: ParentSpan = CURRENT_SPAN, kind: SpanKind = SpanKind.INTERNAL, + attributes: typing.Optional[types.Attributes] = None, + links: typing.Sequence[Link] = (), ) -> "Span": """Creates a span. @@ -534,6 +530,8 @@ def create_span( parent: The span's parent. Defaults to the current span. kind: The span's kind (relationship to parent). Note that is meaningful even if there is no parent. + attributes: The span's attributes. + links: Links span to other spans Returns: The newly-created span. diff --git a/opentelemetry-api/src/opentelemetry/trace/sampling.py b/opentelemetry-api/src/opentelemetry/trace/sampling.py index f16e80495bf..967f4fd46b9 100644 --- a/opentelemetry-api/src/opentelemetry/trace/sampling.py +++ b/opentelemetry-api/src/opentelemetry/trace/sampling.py @@ -17,7 +17,7 @@ # pylint: disable=unused-import from opentelemetry.trace import Link, SpanContext -from opentelemetry.util.types import AttributeValue +from opentelemetry.util.types import Attributes, AttributeValue class Decision: @@ -53,6 +53,7 @@ def should_sample( trace_id: int, span_id: int, name: str, + attributes: Optional[Attributes] = None, links: Sequence["Link"] = (), ) -> "Decision": pass @@ -70,6 +71,7 @@ def should_sample( trace_id: int, span_id: int, name: str, + attributes: Optional[Attributes] = None, links: Sequence["Link"] = (), ) -> "Decision": return self._decision @@ -107,6 +109,7 @@ def should_sample( trace_id: int, span_id: int, name: str, + attributes: Optional[Attributes] = None, # TODO links: Sequence["Link"] = (), ) -> "Decision": if parent_context is not None: diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py b/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py index d06d34d93bc..9ac9d81bc2c 100644 --- a/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py +++ b/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py @@ -130,7 +130,7 @@ def __init__( resource: None = None, # TODO attributes: types.Attributes = None, # TODO events: Sequence[trace_api.Event] = None, # TODO - links: Sequence[trace_api.Link] = None, # TODO + links: Sequence[trace_api.Link] = (), kind: trace_api.SpanKind = trace_api.SpanKind.INTERNAL, span_processor: SpanProcessor = SpanProcessor(), ) -> None: @@ -226,30 +226,6 @@ def add_lazy_event(self, event: trace_api.Event) -> None: return self.events.append(event) - def add_link( - self, - link_target_context: "trace_api.SpanContext", - attributes: types.Attributes = None, - ) -> None: - if attributes is None: - attributes = ( - Span.empty_attributes - ) # TODO: empty_attributes is not a Dict. Use Mapping? - self.add_lazy_link(trace_api.Link(link_target_context, attributes)) - - def add_lazy_link(self, link: "trace_api.Link") -> None: - with self._lock: - if not self.is_recording_events(): - return - has_ended = self.end_time is not None - if not has_ended: - if self.links is Span.empty_links: - self.links = BoundedList(MAX_NUM_LINKS) - if has_ended: - logger.warning("Calling add_link() on an ended span.") - return - self.links.append(link) - def start(self, start_time: Optional[int] = None) -> None: with self._lock: if not self.is_recording_events(): @@ -343,10 +319,12 @@ def start_span( name: str, parent: trace_api.ParentSpan = trace_api.Tracer.CURRENT_SPAN, kind: trace_api.SpanKind = trace_api.SpanKind.INTERNAL, + attributes: Optional[types.Attributes] = None, + links: Sequence[trace_api.Link] = (), ) -> "Span": """See `opentelemetry.trace.Tracer.start_span`.""" - span = self.create_span(name, parent, kind) + span = self.create_span(name, parent, kind, attributes, links) span.start() return span @@ -355,10 +333,12 @@ def start_as_current_span( name: str, parent: trace_api.ParentSpan = trace_api.Tracer.CURRENT_SPAN, kind: trace_api.SpanKind = trace_api.SpanKind.INTERNAL, + attributes: Optional[types.Attributes] = None, + links: Sequence[trace_api.Link] = (), ) -> Iterator[trace_api.Span]: """See `opentelemetry.trace.Tracer.start_as_current_span`.""" - span = self.start_span(name, parent, kind) + span = self.start_span(name, parent, kind, attributes, links) return self.use_span(span, end_on_exit=True) def create_span( @@ -366,6 +346,8 @@ def create_span( name: str, parent: trace_api.ParentSpan = trace_api.Tracer.CURRENT_SPAN, kind: trace_api.SpanKind = trace_api.SpanKind.INTERNAL, + attributes: Optional[types.Attributes] = None, + links: Sequence[trace_api.Link] = (), ) -> "trace_api.Span": """See `opentelemetry.trace.Tracer.create_span`. @@ -412,18 +394,26 @@ def create_span( context.trace_id, context.span_id, name, - {}, # TODO: links + attributes, + links, ) if sampling_decision.sampled: + if attributes is None: + span_attributes = sampling_decision.attributes + else: + # apply sampling decision attributes after initial attributes + span_attributes = attributes.copy() + span_attributes.update(sampling_decision.attributes) return Span( name=name, context=context, parent=parent, sampler=self.sampler, - attributes=sampling_decision.attributes, + attributes=span_attributes, span_processor=self._active_span_processor, kind=kind, + links=links, ) return trace_api.DefaultSpan(context=context) diff --git a/opentelemetry-sdk/tests/trace/test_trace.py b/opentelemetry-sdk/tests/trace/test_trace.py index 50249479a7e..0d36c003e0f 100644 --- a/opentelemetry-sdk/tests/trace/test_trace.py +++ b/opentelemetry-sdk/tests/trace/test_trace.py @@ -248,6 +248,46 @@ def test_attributes(self): self.assertEqual(root.attributes["misc.pi"], 3.14) self.assertEqual(root.attributes["attr-key"], "attr-value2") + attributes = { + "attr-key": "val", + "attr-key2": "val2", + "attr-in-both": "span-attr", + } + with self.tracer.start_as_current_span( + "root2", attributes=attributes + ) as root: + self.assertEqual(len(root.attributes), 3) + self.assertEqual(root.attributes["attr-key"], "val") + self.assertEqual(root.attributes["attr-key2"], "val2") + self.assertEqual(root.attributes["attr-in-both"], "span-attr") + + decision_attributes = { + "sampler-attr": "sample-val", + "attr-in-both": "decision-attr", + } + self.tracer.sampler = sampling.StaticSampler( + sampling.Decision(sampled=True, attributes=decision_attributes) + ) + + with self.tracer.start_as_current_span("root2") as root: + self.assertEqual(len(root.attributes), 2) + self.assertEqual(root.attributes["sampler-attr"], "sample-val") + self.assertEqual(root.attributes["attr-in-both"], "decision-attr") + + attributes = { + "attr-key": "val", + "attr-key2": "val2", + "attr-in-both": "span-attr", + } + with self.tracer.start_as_current_span( + "root2", attributes=attributes + ) as root: + self.assertEqual(len(root.attributes), 4) + self.assertEqual(root.attributes["attr-key"], "val") + self.assertEqual(root.attributes["attr-key2"], "val2") + self.assertEqual(root.attributes["sampler-attr"], "sample-val") + self.assertEqual(root.attributes["attr-in-both"], "decision-attr") + def test_events(self): self.assertIsNone(self.tracer.get_current_span()) @@ -297,13 +337,12 @@ def test_links(self): trace_id=trace.generate_trace_id(), span_id=trace.generate_span_id(), ) - - with self.tracer.start_as_current_span("root") as root: - root.add_link(other_context1) - root.add_link(other_context2, {"name": "neighbor"}) - root.add_lazy_link( - trace_api.Link(other_context3, {"component": "http"}) - ) + links = [ + trace_api.Link(other_context1), + trace_api.Link(other_context2, {"name": "neighbor"}), + trace_api.Link(other_context3, {"component": "http"}), + ] + with self.tracer.start_as_current_span("root", links=links) as root: self.assertEqual(len(root.links), 3) self.assertEqual( @@ -374,11 +413,6 @@ def test_span_override_start_and_end_time(self): def test_ended_span(self): """"Events, attributes are not allowed after span is ended""" - other_context1 = trace_api.SpanContext( - trace_id=trace.generate_trace_id(), - span_id=trace.generate_span_id(), - ) - with self.tracer.start_as_current_span("root") as root: # everything should be empty at the beginning self.assertEqual(len(root.attributes), 0) @@ -400,9 +434,6 @@ def test_ended_span(self): root.add_event("event1") self.assertEqual(len(root.events), 0) - root.add_link(other_context1) - self.assertEqual(len(root.links), 0) - root.update_name("xxx") self.assertEqual(root.name, "root") From 348889d90a02cfaddc61a2f7a49f3d6101904055 Mon Sep 17 00:00:00 2001 From: alrex Date: Fri, 15 Nov 2019 18:10:21 -0800 Subject: [PATCH 04/14] Adding more documentation around examples (#277) --- README.md | 6 +- examples/README.md | 11 +++ examples/basic_tracer/README.md | 62 ++++++++++++++ examples/basic_tracer/__init__.py | 14 +++ .../basic_tracer/images/jaeger-ui-detail.png | Bin 0 -> 123383 bytes examples/basic_tracer/images/jaeger-ui.png | Bin 0 -> 256630 bytes examples/basic_tracer/tests/__init__.py | 13 +++ examples/basic_tracer/tests/test_tracer.py | 27 ++++++ examples/basic_tracer/tracer.py | 52 ++++++++++++ examples/http/README.md | 80 ++++++++++++++++++ examples/http/__init__.py | 13 +++ examples/http/images/jaeger-ui-detail.png | Bin 0 -> 144383 bytes examples/http/images/jaeger-ui.png | Bin 0 -> 234643 bytes examples/http/requirements.txt | 1 + examples/{trace => http}/server.py | 29 +++++-- examples/http/tests/__init__.py | 13 +++ examples/http/tests/test_http.py | 36 ++++++++ .../client.py => http/tracer_client.py} | 24 ++++-- tox.ini | 18 +++- 19 files changed, 377 insertions(+), 22 deletions(-) create mode 100644 examples/README.md create mode 100644 examples/basic_tracer/README.md create mode 100644 examples/basic_tracer/__init__.py create mode 100644 examples/basic_tracer/images/jaeger-ui-detail.png create mode 100644 examples/basic_tracer/images/jaeger-ui.png create mode 100644 examples/basic_tracer/tests/__init__.py create mode 100644 examples/basic_tracer/tests/test_tracer.py create mode 100755 examples/basic_tracer/tracer.py create mode 100644 examples/http/README.md create mode 100644 examples/http/__init__.py create mode 100644 examples/http/images/jaeger-ui-detail.png create mode 100644 examples/http/images/jaeger-ui.png create mode 100644 examples/http/requirements.txt rename examples/{trace => http}/server.py (75%) create mode 100644 examples/http/tests/__init__.py create mode 100644 examples/http/tests/test_http.py rename examples/{trace/client.py => http/tracer_client.py} (79%) diff --git a/README.md b/README.md index c7b9a837c8d..bb199eebd5f 100644 --- a/README.md +++ b/README.md @@ -95,11 +95,7 @@ exporter.export([(counter, label_values)]) exporter.shutdown() ``` -See the [API -documentation](https://open-telemetry.github.io/opentelemetry-python/) for more -detail, and the -[opentelemetry-example-app](./examples/opentelemetry-example-app/README.rst) -for a complete example. +See the [API documentation](https://open-telemetry.github.io/opentelemetry-python/) for more detail, and the [examples folder](./examples) for a more sample code. ## Contributing diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 00000000000..7fcc3f7dc48 --- /dev/null +++ b/examples/README.md @@ -0,0 +1,11 @@ +# Examples +This folder contains various examples to demonstrate using OpenTelemetry. + +##### basic_tracer +This example shows how to use OpenTelemetry to instrument an application - e.g. a batch job. + +##### http +This example shows how to use [OpenTelemetryMiddleware](https://github.com/open-telemetry/opentelemetry-python/tree/master/ext/opentelemetry-ext-wsgi) and [requests](https://github.com/open-telemetry/opentelemetry-python/tree/master/ext/opentelemetry-ext-http-requests) integrations to instrument a client and a server. + +##### opentelemetry-example-app +This package is a complete example of an application instrumented with OpenTelemetry. \ No newline at end of file diff --git a/examples/basic_tracer/README.md b/examples/basic_tracer/README.md new file mode 100644 index 00000000000..4dc0e96bea6 --- /dev/null +++ b/examples/basic_tracer/README.md @@ -0,0 +1,62 @@ +# Overview + +This example shows how to use OpenTelemetry to instrument a Python application - e.g. a batch job. +It supports exporting spans either to the console or to [Jaeger](https://www.jaegertracing.io). + +## Installation + +```sh +$ pip install opentelemetry-api opentelemetry-sdk +``` + +Setup [Jaeger Tracing](https://www.jaegertracing.io/docs/latest/getting-started/#all-in-one) + +## Run the Application + +### Console + +* Run the sample + +```bash +$ # from this directory +$ python tracer.py +``` + +The output will be displayed at the console + +```bash +AsyncRuntimeContext({'current_span': Span(name="baz", context=SpanContext(trace_id=0xf906f80f64d57c71ea8da4dfbbd2ddf2, span_id=0x5611c1407e06e4d7, trace_state={}))}) +Span(name="baz", context=SpanContext(trace_id=0xf906f80f64d57c71ea8da4dfbbd2ddf2, span_id=0x5611c1407e06e4d7, trace_state={}), kind=SpanKind.INTERNAL, parent=Span(name="bar", context=SpanContext(trace_id=0xf906f80f64d57c71ea8da4dfbbd2ddf2, span_id=0x1b9db0e0cc1a3f60, trace_state={})), start_time=2019-11-07T21:26:45.934412Z, end_time=2019-11-07T21:26:45.934567Z) +Span(name="bar", context=SpanContext(trace_id=0xf906f80f64d57c71ea8da4dfbbd2ddf2, span_id=0x1b9db0e0cc1a3f60, trace_state={}), kind=SpanKind.INTERNAL, parent=Span(name="foo", context=SpanContext(trace_id=0xf906f80f64d57c71ea8da4dfbbd2ddf2, span_id=0x1d5d87441ec2f410, trace_state={})), start_time=2019-11-07T21:26:45.934396Z, end_time=2019-11-07T21:26:45.934576Z) +Span(name="foo", context=SpanContext(trace_id=0xf906f80f64d57c71ea8da4dfbbd2ddf2, span_id=0x1d5d87441ec2f410, trace_state={}), kind=SpanKind.INTERNAL, parent=None, start_time=2019-11-07T21:26:45.934369Z, end_time=2019-11-07T21:26:45.934580Z) +``` + + +### Jaeger + +* Run the sample + +```sh +$ pip install opentelemetry-ext-jaeger +$ # from this directory +$ EXPORTER=jaeger python tracer.py +``` + +#### Jaeger UI + +Open the Jaeger UI in your browser [http://localhost:16686](http://localhost:16686) + +

+Select `basic-service` under *Service Name* and click on *Find Traces*. + +Click on the trace to view its details. + +

+ +## Useful links +- For more information on OpenTelemetry, visit: +- For more information on tracing in Python, visit: + +## LICENSE + +Apache License 2.0 diff --git a/examples/basic_tracer/__init__.py b/examples/basic_tracer/__init__.py new file mode 100644 index 00000000000..88051cd8bb0 --- /dev/null +++ b/examples/basic_tracer/__init__.py @@ -0,0 +1,14 @@ +# pylint: disable=C0103 +# Copyright 2019, OpenTelemetry Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/examples/basic_tracer/images/jaeger-ui-detail.png b/examples/basic_tracer/images/jaeger-ui-detail.png new file mode 100644 index 0000000000000000000000000000000000000000..63491e132b5db66441142e4fea3c60d287f00e89 GIT binary patch literal 123383 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 RiUT{7_ce*lKEH^u+} literal 0 HcmV?d00001 diff --git a/examples/basic_tracer/images/jaeger-ui.png b/examples/basic_tracer/images/jaeger-ui.png new file mode 100644 index 0000000000000000000000000000000000000000..08e6718eef130bc6afb927930a85b3f4ca26fdb6 GIT binary patch literal 256630 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�PJzltjD}U+3J1Fhj9N+@ul9#Q>e@b!2-*j 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%0D^~Nd4 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

@1Mo?R_t*le-o)^%={swm`v%L;#W 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:JSBU;A9<9|;+0!G3J@6XGw7@&0=6 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%0A%*Nk z_K^cAKe4-@7cGHu1Xw)h&2DW5T&8<-J+$6lpT3Lz{WGNb@{zJg4(B50_6m5stGhd} zf-UA2Am-NV^X<_zWUfEZu8ag<6y2q48l+%QS8V z>lk|Y6WJTj<}RrpndqqE>^XT2if;vLqa1PYwKH2}t%3JGYXX1XILE@EIWGdsc__MO z9*2P%KuPlQMGD*)Xb8`njV0$@mvR{R-w(bH^@xGr7m=B$b7iOwf;r3C9oGMm)$C7h zBD0;`mafbGYcHCG6uF%XyYUgwcZqu01GYnL7?D+(IPen}cCSX~3opIA-#8M8o=#Up zYn@^L^&=Z;InY{kajG+00)v1-i4A3gYTWwX3%w~HxWi%DVpyuiXuPWcm)5Ri=vzQQ zH;yePcx_mnX~(tP76(M?^n8v$385pvHHYI|j{rr`u}nB|EoWuWqxGi15pJ);!y-WD z$hU!?QR@-|JTIQgo2SW^fge}LAre;Z+4)>qwk#_j2b$wVEVa4JFwqviFJ7amfF?!K zK+E`>&Ksw>^*}=T29Paz&4%L_O$LD?3m$9~;L^I$0Q!Cr8DYtGe~>udV)gw$lFa#J zN)ciR+&O~p3;_}pp?UgdTm*`81q8}Kw4;~9Zq5PGM~TZMUGD?gr=Al=QERdj(q9pi zPHtLr3^8G^fdz+ZJ!H~K?lQO$GK2)K^X+jBG&b!T45T6SK#^NefFzJDB-p3I=2#;? z@W=4{nXNwxHTx5iGdd?Z+mu{ni~cy!)fiW;!-d=UcmB|w9UuE^Whh9GId3|Y%x%BC zi7av5JMn!S^+hJ@Vmgt_B=HZC`f64NvRf-4^(_h;Si*(dt22QKn~&yks5UqZD|zGB zX7)ZhhsZh;;QOIxMpQJm!x9*XcBIjd+tot|S)Kixu5#991K3vAT`NjBTh)(T++v33 z#jEySx8Rt|Y@jP$o_(O5)0QA-+-ETk>qTMjQQrOgD|0T~R(1krn+ed>Iqbd&T^}6p z;ASk_6hKq{d{}o)g2oB+%>CK2`y(Zk)xd+9vu^u%=rE~h>82r=IHQIA$ Im&2L=0Y^SHMF0Q* literal 0 HcmV?d00001 diff --git a/examples/basic_tracer/tests/__init__.py b/examples/basic_tracer/tests/__init__.py new file mode 100644 index 00000000000..d853a7bcf65 --- /dev/null +++ b/examples/basic_tracer/tests/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2019, OpenTelemetry Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/examples/basic_tracer/tests/test_tracer.py b/examples/basic_tracer/tests/test_tracer.py new file mode 100644 index 00000000000..d5922d6086b --- /dev/null +++ b/examples/basic_tracer/tests/test_tracer.py @@ -0,0 +1,27 @@ +# Copyright 2019, OpenTelemetry Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import os +import subprocess +import unittest + + +class TestBasicTracerExample(unittest.TestCase): + def test_basic_tracer(self): + dirpath = os.path.dirname(os.path.realpath(__file__)) + test_script = "{}/../tracer.py".format(dirpath) + output = subprocess.check_output(test_script).decode() + + self.assertIn('name="foo"', output) + self.assertIn('name="bar"', output) + self.assertIn('name="baz"', output) diff --git a/examples/basic_tracer/tracer.py b/examples/basic_tracer/tracer.py new file mode 100755 index 00000000000..c99141f5aac --- /dev/null +++ b/examples/basic_tracer/tracer.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python3 +# +# Copyright 2019, OpenTelemetry Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os + +from opentelemetry import trace +from opentelemetry.context import Context +from opentelemetry.sdk.trace import Tracer +from opentelemetry.sdk.trace.export import ( + BatchExportSpanProcessor, + ConsoleSpanExporter, +) + +if os.getenv("EXPORTER") == "jaeger": + from opentelemetry.ext.jaeger import JaegerSpanExporter + + exporter = JaegerSpanExporter( + service_name="basic-service", + agent_host_name="localhost", + agent_port=6831, + ) +else: + exporter = ConsoleSpanExporter() + +# The preferred tracer implementation must be set, as the opentelemetry-api +# defines the interface with a no-op implementation. +trace.set_preferred_tracer_implementation(lambda T: Tracer()) +tracer = trace.tracer() + +# SpanExporter receives the spans and send them to the target location. +span_processor = BatchExportSpanProcessor(exporter) + +tracer.add_span_processor(span_processor) +with tracer.start_as_current_span("foo"): + with tracer.start_as_current_span("bar"): + with tracer.start_as_current_span("baz"): + print(Context) + +span_processor.shutdown() diff --git a/examples/http/README.md b/examples/http/README.md new file mode 100644 index 00000000000..5e6f2d7efad --- /dev/null +++ b/examples/http/README.md @@ -0,0 +1,80 @@ +# Overview + +This example shows how to use [OpenTelemetryMiddleware](https://github.com/open-telemetry/opentelemetry-python/tree/master/ext/opentelemetry-ext-wsgi) and [requests](https://github.com/open-telemetry/opentelemetry-python/tree/master/ext/opentelemetry-ext-http-requests) integrations to instrument a client and a server in Python. +It supports exporting spans either to the console or to [Jaeger](https://www.jaegertracing.io). + +## Installation + +```sh +$ pip install opentelemetry-api opentelemetry-sdk opentelemetry-ext-wsgi opentelemetry-ext-http-requests +``` + +Setup [Jaeger Tracing](https://www.jaegertracing.io/docs/latest/getting-started/#all-in-one) + +## Run the Application + +### Console + +* Run the server + +```bash +$ # from this directory +$ python server.py +``` + +* Run the client from a different terminal + +```bash +$ # from this directory +$ python tracer_client.py +``` + +The output will be displayed at the console on the client side + +```bash +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 + +```bash +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 + +* Run the server + +```sh +$ pip install opentelemetry-ext-jaeger +$ # from this directory +$ EXPORTER=jaeger python server.py +``` + +* Run the client from a different terminal + +```bash +$ EXPORTER=jaeger python tracer_client.py +``` + +#### Jaeger UI + +Open the Jaeger UI in your browser [http://localhost:16686](http://localhost:16686) + +

+Select `http-server` under *Service Name* and click on *Find Traces*. + +Click on the trace to view its details. + +

+ +## Useful links +- For more information on OpenTelemetry, visit: +- For more information on tracing in Python, visit: + +## LICENSE + +Apache License 2.0 diff --git a/examples/http/__init__.py b/examples/http/__init__.py new file mode 100644 index 00000000000..d853a7bcf65 --- /dev/null +++ b/examples/http/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2019, OpenTelemetry Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/examples/http/images/jaeger-ui-detail.png b/examples/http/images/jaeger-ui-detail.png new file mode 100644 index 0000000000000000000000000000000000000000..50d1901de6cd0ea353c329a46d09c905c3a461a1 GIT binary patch literal 144383 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

2r<gW0;4e?1fR&{<1m2+dVX_NwhGsxN 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≶suyKf1?zgA!UX%HT9bV-aZ#MpmE|bc715P* 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 literal 0 HcmV?d00001 diff --git a/examples/http/requirements.txt b/examples/http/requirements.txt new file mode 100644 index 00000000000..7e1060246fd --- /dev/null +++ b/examples/http/requirements.txt @@ -0,0 +1 @@ +flask diff --git a/examples/trace/server.py b/examples/http/server.py similarity index 75% rename from examples/trace/server.py rename to examples/http/server.py index 3632540e213..82cb070c272 100755 --- a/examples/trace/server.py +++ b/examples/http/server.py @@ -14,6 +14,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +import os + import flask import requests @@ -22,30 +24,41 @@ from opentelemetry.ext.wsgi import OpenTelemetryMiddleware from opentelemetry.sdk.trace import Tracer from opentelemetry.sdk.trace.export import ( + BatchExportSpanProcessor, ConsoleSpanExporter, - SimpleExportSpanProcessor, ) +if os.getenv("EXPORTER") == "jaeger": + from opentelemetry.ext.jaeger import JaegerSpanExporter + + exporter = JaegerSpanExporter( + service_name="http-server", + agent_host_name="localhost", + agent_port=6831, + ) +else: + exporter = ConsoleSpanExporter() + # The preferred tracer implementation must be set, as the opentelemetry-api # defines the interface with a no-op implementation. trace.set_preferred_tracer_implementation(lambda T: Tracer()) +tracer = trace.tracer() + +# SpanExporter receives the spans and send them to the target location. +span_processor = BatchExportSpanProcessor(exporter) +tracer.add_span_processor(span_processor) # Integrations are the glue that binds the OpenTelemetry API and the # frameworks and libraries that are used together, automatically creating # Spans and propagating context as appropriate. -http_requests.enable(trace.tracer()) - -# SpanExporter receives the spans and send them to the target location. -span_processor = SimpleExportSpanProcessor(ConsoleSpanExporter()) -trace.tracer().add_span_processor(span_processor) - +http_requests.enable(tracer) app = flask.Flask(__name__) app.wsgi_app = OpenTelemetryMiddleware(app.wsgi_app) @app.route("/") def hello(): - with trace.tracer().start_as_current_span("parent"): + with tracer.start_as_current_span("parent"): requests.get("https://www.wikipedia.org/wiki/Rabbit") return "hello" diff --git a/examples/http/tests/__init__.py b/examples/http/tests/__init__.py new file mode 100644 index 00000000000..d853a7bcf65 --- /dev/null +++ b/examples/http/tests/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2019, OpenTelemetry Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/examples/http/tests/test_http.py b/examples/http/tests/test_http.py new file mode 100644 index 00000000000..7aa3f93c153 --- /dev/null +++ b/examples/http/tests/test_http.py @@ -0,0 +1,36 @@ +# Copyright 2019, OpenTelemetry Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import os +import subprocess +import unittest +from time import sleep + + +class TestHttpExample(unittest.TestCase): + @classmethod + def setup_class(cls): + dirpath = os.path.dirname(os.path.realpath(__file__)) + server_script = "{}/../server.py".format(dirpath) + cls.server = subprocess.Popen([server_script]) + sleep(1) + + def test_http(self): + dirpath = os.path.dirname(os.path.realpath(__file__)) + test_script = "{}/../tracer_client.py".format(dirpath) + output = subprocess.check_output(test_script).decode() + self.assertIn('name="/"', output) + + @classmethod + def teardown_class(cls): + cls.server.terminate() diff --git a/examples/trace/client.py b/examples/http/tracer_client.py similarity index 79% rename from examples/trace/client.py rename to examples/http/tracer_client.py index 662cea8d969..671d1d71f91 100755 --- a/examples/trace/client.py +++ b/examples/http/tracer_client.py @@ -14,29 +14,41 @@ # See the License for the specific language governing permissions and # limitations under the License. +import os + import requests from opentelemetry import trace from opentelemetry.ext import http_requests from opentelemetry.sdk.trace import Tracer from opentelemetry.sdk.trace.export import ( + BatchExportSpanProcessor, ConsoleSpanExporter, - SimpleExportSpanProcessor, ) +if os.getenv("EXPORTER") == "jaeger": + from opentelemetry.ext.jaeger import JaegerSpanExporter + + exporter = JaegerSpanExporter( + service_name="http-client", + agent_host_name="localhost", + agent_port=6831, + ) +else: + exporter = ConsoleSpanExporter() + # The preferred tracer implementation must be set, as the opentelemetry-api # defines the interface with a no-op implementation. trace.set_preferred_tracer_implementation(lambda T: Tracer()) tracer = trace.tracer() +# SpanExporter receives the spans and send them to the target location. +span_processor = BatchExportSpanProcessor(exporter) +tracer.add_span_processor(span_processor) + # Integrations are the glue that binds the OpenTelemetry API and the # frameworks and libraries that are used together, automatically creating # Spans and propagating context as appropriate. http_requests.enable(tracer) - -# SpanExporter receives the spans and send them to the target location. -span_processor = SimpleExportSpanProcessor(ConsoleSpanExporter()) -tracer.add_span_processor(span_processor) - response = requests.get(url="http://127.0.0.1:5000/") span_processor.shutdown() diff --git a/tox.ini b/tox.ini index 30e1d3745b8..8f0d02d1ccb 100644 --- a/tox.ini +++ b/tox.ini @@ -2,8 +2,8 @@ skipsdist = True skip_missing_interpreters = True envlist = - py3{4,5,6,7,8}-test-{api,sdk,example-app,ext-wsgi,ext-http-requests,ext-jaeger,ext-pymongo,opentracing-shim} - pypy3-test-{api,sdk,example-app,ext-wsgi,ext-http-requests,ext-jaeger,ext-pymongo,opentracing-shim} + py3{4,5,6,7,8}-test-{api,sdk,example-app,example-basic-tracer,example-http,ext-wsgi,ext-http-requests,ext-jaeger,ext-pymongo,opentracing-shim} + pypy3-test-{api,sdk,example-app,example-basic-tracer,example-http,ext-wsgi,ext-http-requests,ext-jaeger,ext-pymongo,opentracing-shim} py3{4,5,6,7,8}-coverage ; Coverage is temporarily disabled for pypy3 due to the pytest bug. @@ -38,6 +38,8 @@ changedir = test-ext-pymongo: ext/opentelemetry-ext-pymongo/tests test-ext-wsgi: ext/opentelemetry-ext-wsgi/tests test-example-app: examples/opentelemetry-example-app/tests + test-example-basic-tracer: examples/basic_tracer/tests + test-example-http: examples/http/tests test-opentracing-shim: ext/opentelemetry-ext-opentracing-shim/tests commands_pre = @@ -49,6 +51,14 @@ commands_pre = example-app: pip install {toxinidir}/ext/opentelemetry-ext-http-requests example-app: pip install {toxinidir}/ext/opentelemetry-ext-wsgi example-app: pip install {toxinidir}/examples/opentelemetry-example-app + example-basic-tracer: pip install -e {toxinidir}/opentelemetry-api + example-basic-tracer: pip install -e {toxinidir}/opentelemetry-sdk + example-http: pip install -e {toxinidir}/opentelemetry-api + example-http: pip install -e {toxinidir}/opentelemetry-sdk + example-http: pip install -e {toxinidir}/ext/opentelemetry-ext-http-requests + example-http: pip install -e {toxinidir}/ext/opentelemetry-ext-wsgi + example-http: pip install -r {toxinidir}/examples/http/requirements.txt + ext: pip install {toxinidir}/opentelemetry-api wsgi: pip install {toxinidir}/ext/opentelemetry-ext-wsgi pymongo: pip install {toxinidir}/ext/opentelemetry-ext-pymongo @@ -125,7 +135,9 @@ commands = ext/opentelemetry-ext-pymongo/tests/ \ ext/opentelemetry-ext-wsgi/tests/ \ examples/opentelemetry-example-app/src/opentelemetry_example_app/ \ - examples/opentelemetry-example-app/tests/ + examples/opentelemetry-example-app/tests/ \ + examples/basic_tracer/ \ + examples/http/ flake8 . isort --check-only --diff --recursive . From fb3e71522d9937cb8b559ebed780114ab3352221 Mon Sep 17 00:00:00 2001 From: Chris Kleinknecht Date: Sun, 17 Nov 2019 10:10:25 -0800 Subject: [PATCH 05/14] Change v3 alpha release date to 12/6 (#294) --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index bb199eebd5f..19f65b5d1aa 100644 --- a/README.md +++ b/README.md @@ -158,16 +158,16 @@ estimates, and subject to change. Future releases targets include: -| Component | Version | Target Date | -| ----------------------------------- | ---------- | ---------------- | -| Zipkin Trace Exporter | Alpha v0.3 | November 15 2019 | -| W3C Correlation Context Propagation | Alpha v0.3 | November 15 2019 | -| Support for Tags/Baggage | Alpha v0.3 | November 15 2019 | -| Metrics Aggregation | Alpha v0.3 | November 15 2019 | -| gRPC Integrations | Alpha v0.3 | November 15 2019 | -| Prometheus Metrics Exporter | Alpha v0.3 | November 15 2019 | +| Component | Version | Target Date | +| ----------------------------------- | ---------- | --------------- | +| Zipkin Trace Exporter | Alpha v0.3 | December 6 2019 | +| W3C Correlation Context Propagation | Alpha v0.3 | December 6 2019 | +| Support for Tags/Baggage | Alpha v0.3 | December 6 2019 | +| Metrics Aggregation | Alpha v0.3 | December 6 2019 | +| gRPC Integrations | Alpha v0.3 | December 6 2019 | +| Prometheus Metrics Exporter | Alpha v0.3 | December 6 2019 | | Component | Version | Target Date | | ---------------------- | ---------- | ---------------- | | OpenCensus Bridge | Alpha v0.4 | December 31 2019 | -| Metrics SDK (Complete) | Alpha v0.4 | December 31 2019 | +| Metrics SDK (Complete) | Alpha v0.4 | December 31 2019 | From 077a08e36f48f197b85df7c628f393fb8888bab5 Mon Sep 17 00:00:00 2001 From: Leighton Chen Date: Thu, 21 Nov 2019 08:13:14 -0800 Subject: [PATCH 06/14] Remove Azure Exporters out of main repo (master) (#272) --- README.md | 8 + .../CHANGELOG.md | 15 -- .../README.rst | 17 -- .../examples/client.py | 30 --- .../examples/server.py | 44 ---- .../examples/trace.py | 27 --- ext/opentelemetry-ext-azure-monitor/setup.cfg | 46 ---- ext/opentelemetry-ext-azure-monitor/setup.py | 26 --- .../ext/azure_monitor/__init__.py | 23 -- .../ext/azure_monitor/protocol.py | 201 ------------------ .../opentelemetry/ext/azure_monitor/trace.py | 173 --------------- .../opentelemetry/ext/azure_monitor/util.py | 42 ---- .../ext/azure_monitor/version.py | 15 -- .../tests/__init__.py | 0 tox.ini | 5 - 15 files changed, 8 insertions(+), 664 deletions(-) delete mode 100644 ext/opentelemetry-ext-azure-monitor/CHANGELOG.md delete mode 100644 ext/opentelemetry-ext-azure-monitor/README.rst delete mode 100644 ext/opentelemetry-ext-azure-monitor/examples/client.py delete mode 100644 ext/opentelemetry-ext-azure-monitor/examples/server.py delete mode 100644 ext/opentelemetry-ext-azure-monitor/examples/trace.py delete mode 100644 ext/opentelemetry-ext-azure-monitor/setup.cfg delete mode 100644 ext/opentelemetry-ext-azure-monitor/setup.py delete mode 100644 ext/opentelemetry-ext-azure-monitor/src/opentelemetry/ext/azure_monitor/__init__.py delete mode 100644 ext/opentelemetry-ext-azure-monitor/src/opentelemetry/ext/azure_monitor/protocol.py delete mode 100644 ext/opentelemetry-ext-azure-monitor/src/opentelemetry/ext/azure_monitor/trace.py delete mode 100644 ext/opentelemetry-ext-azure-monitor/src/opentelemetry/ext/azure_monitor/util.py delete mode 100644 ext/opentelemetry-ext-azure-monitor/src/opentelemetry/ext/azure_monitor/version.py delete mode 100644 ext/opentelemetry-ext-azure-monitor/tests/__init__.py diff --git a/README.md b/README.md index 19f65b5d1aa..793d46d5884 100644 --- a/README.md +++ b/README.md @@ -97,6 +97,14 @@ exporter.shutdown() See the [API documentation](https://open-telemetry.github.io/opentelemetry-python/) for more detail, and the [examples folder](./examples) for a more sample code. +## Extensions + +### Third-party exporters + +OpenTelemetry supports integration with the following third-party exporters. + +- [Azure Monitor](https://github.com/microsoft/opentelemetry-exporters-python/tree/master/azure_monitor) + ## Contributing See [CONTRIBUTING.md](CONTRIBUTING.md) diff --git a/ext/opentelemetry-ext-azure-monitor/CHANGELOG.md b/ext/opentelemetry-ext-azure-monitor/CHANGELOG.md deleted file mode 100644 index ac7fc896a3b..00000000000 --- a/ext/opentelemetry-ext-azure-monitor/CHANGELOG.md +++ /dev/null @@ -1,15 +0,0 @@ -# Changelog - -## Unreleased - -## 0.2a0 - -Released 2019-10-29 - -- Updates for core library changes - -## 0.1a0 - -Released 2019-09-30 - -- Initial release diff --git a/ext/opentelemetry-ext-azure-monitor/README.rst b/ext/opentelemetry-ext-azure-monitor/README.rst deleted file mode 100644 index 976d9a531e0..00000000000 --- a/ext/opentelemetry-ext-azure-monitor/README.rst +++ /dev/null @@ -1,17 +0,0 @@ -OpenTelemetry Azure Monitor Exporters -===================================== - -This library provides integration with Microsoft Azure Monitor. - -Installation ------------- - -:: - - pip install opentelemetry-ext-azure-monitor - -References ----------- - -* `Azure Monitor `_ -* `OpenTelemetry Project `_ diff --git a/ext/opentelemetry-ext-azure-monitor/examples/client.py b/ext/opentelemetry-ext-azure-monitor/examples/client.py deleted file mode 100644 index ff954788e66..00000000000 --- a/ext/opentelemetry-ext-azure-monitor/examples/client.py +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright 2019, OpenCensus Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import requests - -from opentelemetry import trace -from opentelemetry.ext import http_requests -from opentelemetry.ext.azure_monitor import AzureMonitorSpanExporter -from opentelemetry.sdk.trace import Tracer -from opentelemetry.sdk.trace.export import BatchExportSpanProcessor - -trace.set_preferred_tracer_implementation(lambda T: Tracer()) -tracer = trace.tracer() -http_requests.enable(tracer) -span_processor = BatchExportSpanProcessor(AzureMonitorSpanExporter()) -tracer.add_span_processor(span_processor) - -response = requests.get(url="http://127.0.0.1:5000/") -span_processor.shutdown() diff --git a/ext/opentelemetry-ext-azure-monitor/examples/server.py b/ext/opentelemetry-ext-azure-monitor/examples/server.py deleted file mode 100644 index 9374c986a4a..00000000000 --- a/ext/opentelemetry-ext-azure-monitor/examples/server.py +++ /dev/null @@ -1,44 +0,0 @@ -# Copyright 2019, OpenCensus Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import flask -import requests - -from opentelemetry import trace -from opentelemetry.ext import http_requests -from opentelemetry.ext.azure_monitor import AzureMonitorSpanExporter -from opentelemetry.ext.wsgi import OpenTelemetryMiddleware -from opentelemetry.sdk.trace import Tracer -from opentelemetry.sdk.trace.export import BatchExportSpanProcessor - -trace.set_preferred_tracer_implementation(lambda T: Tracer()) - -http_requests.enable(trace.tracer()) -span_processor = BatchExportSpanProcessor(AzureMonitorSpanExporter()) -trace.tracer().add_span_processor(span_processor) - -app = flask.Flask(__name__) -app.wsgi_app = OpenTelemetryMiddleware(app.wsgi_app) - - -@app.route("/") -def hello(): - with trace.tracer().start_as_current_span("parent"): - requests.get("https://www.wikipedia.org/wiki/Rabbit") - return "hello" - - -if __name__ == "__main__": - app.run(debug=True) - span_processor.shutdown() diff --git a/ext/opentelemetry-ext-azure-monitor/examples/trace.py b/ext/opentelemetry-ext-azure-monitor/examples/trace.py deleted file mode 100644 index 75b7dfa1512..00000000000 --- a/ext/opentelemetry-ext-azure-monitor/examples/trace.py +++ /dev/null @@ -1,27 +0,0 @@ -# Copyright 2019, OpenCensus Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from opentelemetry import trace -from opentelemetry.ext.azure_monitor import AzureMonitorSpanExporter -from opentelemetry.sdk.trace import Tracer -from opentelemetry.sdk.trace.export import SimpleExportSpanProcessor - -trace.set_preferred_tracer_implementation(lambda T: Tracer()) -tracer = trace.tracer() -tracer.add_span_processor( - SimpleExportSpanProcessor(AzureMonitorSpanExporter()) -) - -with tracer.start_as_current_span("hello") as span: - print("Hello, World!") diff --git a/ext/opentelemetry-ext-azure-monitor/setup.cfg b/ext/opentelemetry-ext-azure-monitor/setup.cfg deleted file mode 100644 index 3110ed35312..00000000000 --- a/ext/opentelemetry-ext-azure-monitor/setup.cfg +++ /dev/null @@ -1,46 +0,0 @@ -# Copyright 2019, OpenTelemetry Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -[metadata] -name = opentelemetry-ext-azure-monitor -description = Azure Monitor integration for OpenTelemetry -long_description = file: README.rst -long_description_content_type = text/x-rst -author = OpenTelemetry Authors -author_email = cncf-opentelemetry-contributors@lists.cncf.io -url = https://github.com/open-telemetry/opentelemetry-python/ext/opentelemetry-ext-azure-monitor -platforms = any -license = Apache-2.0 -classifiers = - Development Status :: 3 - Alpha - Intended Audience :: Developers - License :: OSI Approved :: Apache Software License - Programming Language :: Python - Programming Language :: Python :: 3 - Programming Language :: Python :: 3.4 - Programming Language :: Python :: 3.5 - Programming Language :: Python :: 3.6 - Programming Language :: Python :: 3.7 - -[options] -python_requires = >=3.4 -package_dir= - =src -packages=find_namespace: -install_requires = - opentelemetry-api - opentelemetry-sdk - -[options.packages.find] -where = src diff --git a/ext/opentelemetry-ext-azure-monitor/setup.py b/ext/opentelemetry-ext-azure-monitor/setup.py deleted file mode 100644 index 5f8afcb23a2..00000000000 --- a/ext/opentelemetry-ext-azure-monitor/setup.py +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright 2019, OpenTelemetry Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import os - -import setuptools - -BASE_DIR = os.path.dirname(__file__) -VERSION_FILENAME = os.path.join( - BASE_DIR, "src", "opentelemetry", "ext", "azure_monitor", "version.py" -) -PACKAGE_INFO = {} -with open(VERSION_FILENAME) as f: - exec(f.read(), PACKAGE_INFO) - -setuptools.setup(version=PACKAGE_INFO["__version__"]) diff --git a/ext/opentelemetry-ext-azure-monitor/src/opentelemetry/ext/azure_monitor/__init__.py b/ext/opentelemetry-ext-azure-monitor/src/opentelemetry/ext/azure_monitor/__init__.py deleted file mode 100644 index 81222c546eb..00000000000 --- a/ext/opentelemetry-ext-azure-monitor/src/opentelemetry/ext/azure_monitor/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright 2019, OpenTelemetry Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -""" -The opentelemetry-ext-azure-monitor package provides integration with -Microsoft Azure Monitor. -""" - -from opentelemetry.ext.azure_monitor.trace import AzureMonitorSpanExporter -from opentelemetry.ext.azure_monitor.version import __version__ # noqa - -__all__ = ["AzureMonitorSpanExporter"] diff --git a/ext/opentelemetry-ext-azure-monitor/src/opentelemetry/ext/azure_monitor/protocol.py b/ext/opentelemetry-ext-azure-monitor/src/opentelemetry/ext/azure_monitor/protocol.py deleted file mode 100644 index ccdf5eef8d2..00000000000 --- a/ext/opentelemetry-ext-azure-monitor/src/opentelemetry/ext/azure_monitor/protocol.py +++ /dev/null @@ -1,201 +0,0 @@ -# Copyright 2019, OpenTelemetry Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -class BaseObject(dict): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - for key in kwargs: - self[key] = kwargs[key] - - def __repr__(self): - tmp = {} - current = self - while True: - for item in current.items(): - if item[0] not in tmp: - tmp[item[0]] = item[1] - if ( - current._default # noqa pylint: disable=protected-access - == current - ): - break - current = current._default # noqa pylint: disable=protected-access - return repr(tmp) - - def __setattr__(self, name, value): - self[name] = value - - def __getattr__(self, name): - try: - return self[name] - except KeyError: - raise AttributeError( - "'{}' object has no attribute {}".format( - type(self).__name__, name - ) - ) - - def __getitem__(self, key): - if self._default is self: - return super().__getitem__(key) - if key in self: - return super().__getitem__(key) - return self._default[key] - - -BaseObject._default = BaseObject() # noqa pylint: disable=protected-access - - -class Data(BaseObject): - _default = BaseObject(baseData=None, baseType=None) - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.baseData = self.baseData # noqa pylint: disable=invalid-name - self.baseType = self.baseType # noqa pylint: disable=invalid-name - - -class DataPoint(BaseObject): - _default = BaseObject( - ns="", - name="", - kind=None, - value=0.0, - count=None, - min=None, - max=None, - stdDev=None, - ) - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.name = self.name - self.value = self.value - - -class Envelope(BaseObject): - _default = BaseObject( - ver=1, - name="", - time="", - sampleRate=None, - seq=None, - iKey=None, - flags=None, - tags=None, - data=None, - ) - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.name = self.name - self.time = self.time - - -class Event(BaseObject): - _default = BaseObject(ver=2, name="", properties=None, measurements=None) - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.ver = self.ver - self.name = self.name - - -class ExceptionData(BaseObject): - _default = BaseObject( - ver=2, - exceptions=[], - severityLevel=None, - problemId=None, - properties=None, - measurements=None, - ) - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.ver = self.ver - self.exceptions = self.exceptions - - -class Message(BaseObject): - _default = BaseObject( - ver=2, - message="", - severityLevel=None, - properties=None, - measurements=None, - ) - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.ver = self.ver - self.message = self.message - - -class MetricData(BaseObject): - _default = BaseObject(ver=2, metrics=[], properties=None) - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.ver = self.ver - self.metrics = self.metrics - - -class RemoteDependency(BaseObject): - _default = BaseObject( - ver=2, - name="", - id="", - resultCode="", - duration="", - success=True, - data=None, - type=None, - target=None, - properties=None, - measurements=None, - ) - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.ver = self.ver - self.name = self.name - self.resultCode = self.resultCode # noqa pylint: disable=invalid-name - self.duration = self.duration - - -class Request(BaseObject): - _default = BaseObject( - ver=2, - id="", - duration="", - responseCode="", - success=True, - source=None, - name=None, - url=None, - properties=None, - measurements=None, - ) - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.ver = self.ver - self.id = self.id # noqa pylint: disable=invalid-name - self.duration = self.duration - self.responseCode = ( # noqa pylint: disable=invalid-name - self.responseCode - ) - self.success = self.success diff --git a/ext/opentelemetry-ext-azure-monitor/src/opentelemetry/ext/azure_monitor/trace.py b/ext/opentelemetry-ext-azure-monitor/src/opentelemetry/ext/azure_monitor/trace.py deleted file mode 100644 index 16f9252fd01..00000000000 --- a/ext/opentelemetry-ext-azure-monitor/src/opentelemetry/ext/azure_monitor/trace.py +++ /dev/null @@ -1,173 +0,0 @@ -# Copyright 2019, OpenTelemetry Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import json -import logging -from urllib.parse import urlparse - -import requests - -from opentelemetry.ext.azure_monitor import protocol, util -from opentelemetry.sdk.trace.export import SpanExporter, SpanExportResult -from opentelemetry.sdk.util import ns_to_iso_str -from opentelemetry.trace import Span, SpanKind - -logger = logging.getLogger(__name__) - - -class AzureMonitorSpanExporter(SpanExporter): - def __init__(self, **options): - self.options = util.Options(**options) - if not self.options.instrumentation_key: - raise ValueError("The instrumentation_key is not provided.") - - def export(self, spans): - envelopes = tuple(map(self.span_to_envelope, spans)) - - try: - response = requests.post( - url=self.options.endpoint, - data=json.dumps(envelopes), - headers={ - "Accept": "application/json", - "Content-Type": "application/json; charset=utf-8", - }, - timeout=self.options.timeout, - ) - except requests.RequestException as ex: - logger.warning("Transient client side error %s.", ex) - return SpanExportResult.FAILED_RETRYABLE - - text = "N/A" - data = None # noqa pylint: disable=unused-variable - try: - text = response.text - except Exception as ex: # noqa pylint: disable=broad-except - logger.warning("Error while reading response body %s.", ex) - else: - try: - data = json.loads(text) # noqa pylint: disable=unused-variable - except Exception: # noqa pylint: disable=broad-except - pass - - if response.status_code == 200: - logger.info("Transmission succeeded: %s.", text) - return SpanExportResult.SUCCESS - - if response.status_code in ( - 206, # Partial Content - 429, # Too Many Requests - 500, # Internal Server Error - 503, # Service Unavailable - ): - return SpanExportResult.FAILED_RETRYABLE - - return SpanExportResult.FAILED_NOT_RETRYABLE - - @staticmethod - def ns_to_duration(nanoseconds): - value = (nanoseconds + 500000) // 1000000 # duration in milliseconds - value, microseconds = divmod(value, 1000) - value, seconds = divmod(value, 60) - value, minutes = divmod(value, 60) - days, hours = divmod(value, 24) - return "{:d}.{:02d}:{:02d}:{:02d}.{:03d}".format( - days, hours, minutes, seconds, microseconds - ) - - def span_to_envelope(self, span): # noqa pylint: disable=too-many-branches - envelope = protocol.Envelope( - iKey=self.options.instrumentation_key, - tags=dict(util.azure_monitor_context), - time=ns_to_iso_str(span.start_time), - ) - envelope.tags["ai.operation.id"] = "{:032x}".format( - span.context.trace_id - ) - parent = span.parent - if isinstance(parent, Span): - parent = parent.context - if parent: - envelope.tags[ - "ai.operation.parentId" - ] = "|{:032x}.{:016x}.".format(parent.trace_id, parent.span_id) - if span.kind in (SpanKind.CONSUMER, SpanKind.SERVER): - envelope.name = "Microsoft.ApplicationInsights.Request" - data = protocol.Request( - id="|{:032x}.{:016x}.".format( - span.context.trace_id, span.context.span_id - ), - duration=self.ns_to_duration(span.end_time - span.start_time), - responseCode="0", - success=False, - properties={}, - ) - envelope.data = protocol.Data( - baseData=data, baseType="RequestData" - ) - if "http.method" in span.attributes: - data.name = span.attributes["http.method"] - if "http.route" in span.attributes: - data.name = data.name + " " + span.attributes["http.route"] - envelope.tags["ai.operation.name"] = data.name - if "http.url" in span.attributes: - data.url = span.attributes["http.url"] - if "http.status_code" in span.attributes: - status_code = span.attributes["http.status_code"] - data.responseCode = str(status_code) - data.success = 200 <= status_code < 400 - else: - envelope.name = "Microsoft.ApplicationInsights.RemoteDependency" - data = protocol.RemoteDependency( - name=span.name, - id="|{:032x}.{:016x}.".format( - span.context.trace_id, span.context.span_id - ), - resultCode="0", # TODO - duration=self.ns_to_duration(span.end_time - span.start_time), - success=True, # TODO - properties={}, - ) - envelope.data = protocol.Data( - baseData=data, baseType="RemoteDependencyData" - ) - if span.kind in (SpanKind.CLIENT, SpanKind.PRODUCER): - data.type = "HTTP" # TODO - if "http.url" in span.attributes: - url = span.attributes["http.url"] - # TODO: error handling, probably put scheme as well - data.name = urlparse(url).netloc - if "http.status_code" in span.attributes: - data.resultCode = str(span.attributes["http.status_code"]) - else: # SpanKind.INTERNAL - data.type = "InProc" - for key in span.attributes: - data.properties[key] = span.attributes[key] - if span.links: - links = [] - for link in span.links: - links.append( - { - "operation_Id": "{:032x}".format( - link.context.trace_id - ), - "id": "|{:032x}.{:016x}.".format( - link.context.trace_id, link.context.span_id - ), - } - ) - data.properties["_MS.links"] = json.dumps(links) - print(data.properties["_MS.links"]) - # TODO: tracestate, tags - return envelope diff --git a/ext/opentelemetry-ext-azure-monitor/src/opentelemetry/ext/azure_monitor/util.py b/ext/opentelemetry-ext-azure-monitor/src/opentelemetry/ext/azure_monitor/util.py deleted file mode 100644 index f97dbd3e33c..00000000000 --- a/ext/opentelemetry-ext-azure-monitor/src/opentelemetry/ext/azure_monitor/util.py +++ /dev/null @@ -1,42 +0,0 @@ -# Copyright 2019, OpenTelemetry Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import locale -import os -import platform -import sys - -from opentelemetry.ext.azure_monitor.protocol import BaseObject -from opentelemetry.ext.azure_monitor.version import __version__ as ext_version -from opentelemetry.sdk.version import __version__ as opentelemetry_version - -azure_monitor_context = { - "ai.cloud.role": os.path.basename(sys.argv[0]) or "Python Application", - "ai.cloud.roleInstance": platform.node(), - "ai.device.id": platform.node(), - "ai.device.locale": locale.getdefaultlocale()[0], - "ai.device.osVersion": platform.version(), - "ai.device.type": "Other", - "ai.internal.sdkVersion": "py{}:ot{}:ext{}".format( - platform.python_version(), opentelemetry_version, ext_version - ), -} - - -class Options(BaseObject): - _default = BaseObject( - endpoint="https://dc.services.visualstudio.com/v2/track", - instrumentation_key=os.getenv("APPINSIGHTS_INSTRUMENTATIONKEY", None), - timeout=10.0, # networking timeout in seconds - ) diff --git a/ext/opentelemetry-ext-azure-monitor/src/opentelemetry/ext/azure_monitor/version.py b/ext/opentelemetry-ext-azure-monitor/src/opentelemetry/ext/azure_monitor/version.py deleted file mode 100644 index 93ef792d051..00000000000 --- a/ext/opentelemetry-ext-azure-monitor/src/opentelemetry/ext/azure_monitor/version.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright 2019, OpenTelemetry Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -__version__ = "0.3.dev0" diff --git a/ext/opentelemetry-ext-azure-monitor/tests/__init__.py b/ext/opentelemetry-ext-azure-monitor/tests/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tox.ini b/tox.ini index 8f0d02d1ccb..88f1a858992 100644 --- a/tox.ini +++ b/tox.ini @@ -71,7 +71,6 @@ commands_pre = ; we have to install packages in editable mode. coverage: pip install -e {toxinidir}/opentelemetry-api coverage: pip install -e {toxinidir}/opentelemetry-sdk - coverage: pip install -e {toxinidir}/ext/opentelemetry-ext-azure-monitor coverage: pip install -e {toxinidir}/ext/opentelemetry-ext-http-requests coverage: pip install -e {toxinidir}/ext/opentelemetry-ext-jaeger coverage: pip install -e {toxinidir}/ext/opentelemetry-ext-opentracing-shim @@ -106,7 +105,6 @@ deps = commands_pre = pip install -e {toxinidir}/opentelemetry-api pip install -e {toxinidir}/opentelemetry-sdk - pip install -e {toxinidir}/ext/opentelemetry-ext-azure-monitor pip install -e {toxinidir}/ext/opentelemetry-ext-http-requests pip install -e {toxinidir}/ext/opentelemetry-ext-jaeger pip install -e {toxinidir}/ext/opentelemetry-ext-pymongo @@ -122,9 +120,6 @@ commands = opentelemetry-api/tests/ \ opentelemetry-sdk/src/opentelemetry \ opentelemetry-sdk/tests/ \ - ext/opentelemetry-ext-azure-monitor/examples/ \ - ext/opentelemetry-ext-azure-monitor/src/ \ - ext/opentelemetry-ext-azure-monitor/tests/ \ ext/opentelemetry-ext-http-requests/src/ \ ext/opentelemetry-ext-http-requests/tests/ \ ext/opentelemetry-ext-jaeger/src/opentelemetry \ From da8b8d907c29fc358ca635114dac2967b6501563 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Neum=C3=BCller?= Date: Sat, 23 Nov 2019 01:27:55 +0100 Subject: [PATCH 07/14] Add Flask integration based on WSGI ext (#206) The flask integration has (only) two advantages over the plain WSGI middleware approach: - It can use the endpoint as span name (which is lower cardinality than the route; cf #270) - It can set the http.route attribute. In addition, it also has an easier syntax to enable (you don't have to know about Flask.wsgi_app). --- examples/opentelemetry-example-app/setup.py | 2 +- .../flask_example.py | 4 +- ext/opentelemetry-ext-flask/README.rst | 35 ++++ ext/opentelemetry-ext-flask/setup.cfg | 50 ++++++ ext/opentelemetry-ext-flask/setup.py | 26 +++ .../src/opentelemetry/ext/flask/__init__.py | 93 ++++++++++ .../src/opentelemetry/ext/flask/version.py | 15 ++ ext/opentelemetry-ext-flask/tests/__init__.py | 0 .../tests/test_flask_integration.py | 136 ++++++++++++++ ext/opentelemetry-ext-testutil/setup.cfg | 47 +++++ ext/opentelemetry-ext-testutil/setup.py | 26 +++ .../opentelemetry/ext/testutil/__init__.py | 0 .../src/opentelemetry/ext/testutil/version.py | 1 + .../ext/testutil/wsgitestutil.py | 41 +++++ ext/opentelemetry-ext-wsgi/setup.cfg | 4 + .../src/opentelemetry/ext/wsgi/__init__.py | 169 ++++++++++-------- .../tests/test_wsgi_middleware.py | 68 ++----- tox.ini | 21 ++- 18 files changed, 603 insertions(+), 135 deletions(-) create mode 100644 ext/opentelemetry-ext-flask/README.rst create mode 100644 ext/opentelemetry-ext-flask/setup.cfg create mode 100644 ext/opentelemetry-ext-flask/setup.py create mode 100644 ext/opentelemetry-ext-flask/src/opentelemetry/ext/flask/__init__.py create mode 100644 ext/opentelemetry-ext-flask/src/opentelemetry/ext/flask/version.py create mode 100644 ext/opentelemetry-ext-flask/tests/__init__.py create mode 100644 ext/opentelemetry-ext-flask/tests/test_flask_integration.py create mode 100644 ext/opentelemetry-ext-testutil/setup.cfg create mode 100644 ext/opentelemetry-ext-testutil/setup.py create mode 100644 ext/opentelemetry-ext-testutil/src/opentelemetry/ext/testutil/__init__.py create mode 100644 ext/opentelemetry-ext-testutil/src/opentelemetry/ext/testutil/version.py create mode 100644 ext/opentelemetry-ext-testutil/src/opentelemetry/ext/testutil/wsgitestutil.py diff --git a/examples/opentelemetry-example-app/setup.py b/examples/opentelemetry-example-app/setup.py index 73a3e207842..0e577cd2649 100644 --- a/examples/opentelemetry-example-app/setup.py +++ b/examples/opentelemetry-example-app/setup.py @@ -38,7 +38,7 @@ "opentelemetry-api", "opentelemetry-sdk", "opentelemetry-ext-http-requests", - "opentelemetry-ext-wsgi", + "opentelemetry-ext-flask", "flask", "requests", ], diff --git a/examples/opentelemetry-example-app/src/opentelemetry_example_app/flask_example.py b/examples/opentelemetry-example-app/src/opentelemetry_example_app/flask_example.py index 18dffa30008..85df625efef 100644 --- a/examples/opentelemetry-example-app/src/opentelemetry_example_app/flask_example.py +++ b/examples/opentelemetry-example-app/src/opentelemetry_example_app/flask_example.py @@ -21,7 +21,7 @@ import opentelemetry.ext.http_requests from opentelemetry import propagators, trace -from opentelemetry.ext.wsgi import OpenTelemetryMiddleware +from opentelemetry.ext.flask import instrument_app from opentelemetry.sdk.context.propagation.b3_format import B3Format from opentelemetry.sdk.trace import Tracer @@ -57,7 +57,7 @@ def configure_opentelemetry(flask_app: flask.Flask): # and the frameworks and libraries that are used together, automatically # creating Spans and propagating context as appropriate. opentelemetry.ext.http_requests.enable(trace.tracer()) - flask_app.wsgi_app = OpenTelemetryMiddleware(flask_app.wsgi_app) + instrument_app(flask_app) app = flask.Flask(__name__) diff --git a/ext/opentelemetry-ext-flask/README.rst b/ext/opentelemetry-ext-flask/README.rst new file mode 100644 index 00000000000..182f0960b27 --- /dev/null +++ b/ext/opentelemetry-ext-flask/README.rst @@ -0,0 +1,35 @@ +OpenTelemetry Flask tracing +=========================== + +This library builds on the OpenTelemetry WSGI middleware to track web requests +in Flask applications. In addition to opentelemetry-ext-wsgi, it supports +flask-specific features such as: + +* The Flask endpoint name is used as the Span name. +* The ``http.route`` Span attribute is set so that one can see which URL rule + matched a request. + +Usage +----- + +.. code-block:: python + + from flask import Flask + from opentelemetry.ext.flask import instrument_app + + app = Flask(__name__) + instrument_app(app) # This is where the magic happens. ✨ + + @app.route("/") + def hello(): + return "Hello!" + + if __name__ == "__main__": + app.run(debug=True) + + +References +---------- + +* `OpenTelemetry Project `_ +* `OpenTelemetry WSGI extension `_ diff --git a/ext/opentelemetry-ext-flask/setup.cfg b/ext/opentelemetry-ext-flask/setup.cfg new file mode 100644 index 00000000000..1d4956a82f7 --- /dev/null +++ b/ext/opentelemetry-ext-flask/setup.cfg @@ -0,0 +1,50 @@ +# Copyright 2019, OpenTelemetry Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +[metadata] +name = opentelemetry-ext-flask +description = Flask tracing for OpenTelemetry (based on opentelemetry-ext-wsgi) +long_description = file: README.rst +long_description_content_type = text/x-rst +author = OpenTelemetry Authors +author_email = cncf-opentelemetry-contributors@lists.cncf.io +url = https://github.com/open-telemetry/opentelemetry-python/ext/opentelemetry-ext-flask +platforms = any +license = Apache-2.0 +classifiers = + Development Status :: 3 - Alpha + Intended Audience :: Developers + License :: OSI Approved :: Apache Software License + Programming Language :: Python + Programming Language :: Python :: 3 + Programming Language :: Python :: 3.4 + Programming Language :: Python :: 3.5 + Programming Language :: Python :: 3.6 + Programming Language :: Python :: 3.7 + +[options] +python_requires = >=3.4 +package_dir= + =src +packages=find_namespace: +install_requires = + opentelemetry-ext-wsgi + +[options.extras_require] +test = + flask~=1.0 + opentelemetry-ext-testutil + +[options.packages.find] +where = src diff --git a/ext/opentelemetry-ext-flask/setup.py b/ext/opentelemetry-ext-flask/setup.py new file mode 100644 index 00000000000..34b27c60342 --- /dev/null +++ b/ext/opentelemetry-ext-flask/setup.py @@ -0,0 +1,26 @@ +# Copyright 2019, OpenTelemetry Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import os + +import setuptools + +BASE_DIR = os.path.dirname(__file__) +VERSION_FILENAME = os.path.join( + BASE_DIR, "src", "opentelemetry", "ext", "flask", "version.py" +) +PACKAGE_INFO = {} +with open(VERSION_FILENAME) as f: + exec(f.read(), PACKAGE_INFO) + +setuptools.setup(version=PACKAGE_INFO["__version__"]) diff --git a/ext/opentelemetry-ext-flask/src/opentelemetry/ext/flask/__init__.py b/ext/opentelemetry-ext-flask/src/opentelemetry/ext/flask/__init__.py new file mode 100644 index 00000000000..eedc8d59988 --- /dev/null +++ b/ext/opentelemetry-ext-flask/src/opentelemetry/ext/flask/__init__.py @@ -0,0 +1,93 @@ +# Note: This package is not named "flask" because of +# https://github.com/PyCQA/pylint/issues/2648 + +import logging + +from flask import request as flask_request + +import opentelemetry.ext.wsgi as otel_wsgi +from opentelemetry import propagators, trace +from opentelemetry.util import time_ns + +logger = logging.getLogger(__name__) + +_ENVIRON_STARTTIME_KEY = object() +_ENVIRON_SPAN_KEY = object() +_ENVIRON_ACTIVATION_KEY = object() + + +def instrument_app(flask): + """Makes the passed-in Flask object traced by OpenTelemetry. + + You must not call this function multiple times on the same Flask object. + """ + + wsgi = flask.wsgi_app + + def wrapped_app(environ, start_response): + # We want to measure the time for route matching, etc. + # In theory, we could start the span here and use update_name later + # but that API is "highly discouraged" so we better avoid it. + environ[_ENVIRON_STARTTIME_KEY] = time_ns() + + def _start_response(status, response_headers, *args, **kwargs): + span = flask_request.environ.get(_ENVIRON_SPAN_KEY) + if span: + otel_wsgi.add_response_attributes( + span, status, response_headers + ) + else: + logger.warning( + "Flask environ's OpenTelemetry span missing at _start_response(%s)", + status, + ) + return start_response(status, response_headers, *args, **kwargs) + + return wsgi(environ, _start_response) + + flask.wsgi_app = wrapped_app + + flask.before_request(_before_flask_request) + flask.teardown_request(_teardown_flask_request) + + +def _before_flask_request(): + environ = flask_request.environ + span_name = flask_request.endpoint or otel_wsgi.get_default_span_name( + environ + ) + parent_span = propagators.extract( + otel_wsgi.get_header_from_environ, environ + ) + + tracer = trace.tracer() + + span = tracer.create_span( + span_name, parent_span, kind=trace.SpanKind.SERVER + ) + span.start(environ.get(_ENVIRON_STARTTIME_KEY)) + activation = tracer.use_span(span, end_on_exit=True) + activation.__enter__() + environ[_ENVIRON_ACTIVATION_KEY] = activation + environ[_ENVIRON_SPAN_KEY] = span + otel_wsgi.add_request_attributes(span, environ) + if flask_request.url_rule: + # For 404 that result from no route found, etc, we don't have a url_rule. + span.set_attribute("http.route", flask_request.url_rule.rule) + + +def _teardown_flask_request(exc): + activation = flask_request.environ.get(_ENVIRON_ACTIVATION_KEY) + if not activation: + logger.warning( + "Flask environ's OpenTelemetry activation missing at _teardown_flask_request(%s)", + exc, + ) + return + + if exc is None: + activation.__exit__(None, None, None) + else: + activation.__exit__( + type(exc), exc, getattr(exc, "__traceback__", None) + ) diff --git a/ext/opentelemetry-ext-flask/src/opentelemetry/ext/flask/version.py b/ext/opentelemetry-ext-flask/src/opentelemetry/ext/flask/version.py new file mode 100644 index 00000000000..ed56d30324d --- /dev/null +++ b/ext/opentelemetry-ext-flask/src/opentelemetry/ext/flask/version.py @@ -0,0 +1,15 @@ +# Copyright 2019, OpenTelemetry Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +__version__ = "0.3dev0" diff --git a/ext/opentelemetry-ext-flask/tests/__init__.py b/ext/opentelemetry-ext-flask/tests/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/ext/opentelemetry-ext-flask/tests/test_flask_integration.py b/ext/opentelemetry-ext-flask/tests/test_flask_integration.py new file mode 100644 index 00000000000..dfb9dee885c --- /dev/null +++ b/ext/opentelemetry-ext-flask/tests/test_flask_integration.py @@ -0,0 +1,136 @@ +# Copyright 2019, OpenTelemetry Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import unittest + +from flask import Flask +from werkzeug.test import Client +from werkzeug.wrappers import BaseResponse + +import opentelemetry.ext.flask as otel_flask +from opentelemetry import trace as trace_api +from opentelemetry.ext.testutil.wsgitestutil import WsgiTestBase + + +class TestFlaskIntegration(WsgiTestBase): + def setUp(self): + super().setUp() + + self.span_attrs = {} + + def setspanattr(key, value): + self.assertIsInstance(key, str) + self.span_attrs[key] = value + + self.span.set_attribute = setspanattr + + self.app = Flask(__name__) + + def hello_endpoint(helloid): + if helloid == 500: + raise ValueError(":-(") + return "Hello: " + str(helloid) + + self.app.route("/hello/")(hello_endpoint) + + otel_flask.instrument_app(self.app) + self.client = Client(self.app, BaseResponse) + + def test_simple(self): + resp = self.client.get("/hello/123") + self.assertEqual(200, resp.status_code) + self.assertEqual([b"Hello: 123"], list(resp.response)) + + self.create_span.assert_called_with( + "hello_endpoint", + trace_api.INVALID_SPAN_CONTEXT, + kind=trace_api.SpanKind.SERVER, + ) + self.assertEqual(1, self.span.start.call_count) + + # TODO: Change this test to use the SDK, as mocking becomes painful + + self.assertEqual( + self.span_attrs, + { + "component": "http", + "http.method": "GET", + "http.host": "localhost", + "http.url": "http://localhost/hello/123", + "http.route": "/hello/", + "http.status_code": 200, + "http.status_text": "OK", + }, + ) + + def test_404(self): + resp = self.client.post("/bye") + self.assertEqual(404, resp.status_code) + resp.close() + + self.create_span.assert_called_with( + "/bye", + trace_api.INVALID_SPAN_CONTEXT, + kind=trace_api.SpanKind.SERVER, + ) + self.assertEqual(1, self.span.start.call_count) + + # Nope, this uses Tracer.use_span(end_on_exit) + # self.assertEqual(1, self.span.end.call_count) + # TODO: Change this test to use the SDK, as mocking becomes painful + + self.assertEqual( + self.span_attrs, + { + "component": "http", + "http.method": "POST", + "http.host": "localhost", + "http.url": "http://localhost/bye", + "http.status_code": 404, + "http.status_text": "NOT FOUND", + }, + ) + + def test_internal_error(self): + resp = self.client.get("/hello/500") + self.assertEqual(500, resp.status_code) + resp.close() + + self.create_span.assert_called_with( + "hello_endpoint", + trace_api.INVALID_SPAN_CONTEXT, + kind=trace_api.SpanKind.SERVER, + ) + self.assertEqual(1, self.span.start.call_count) + + # Nope, this uses Tracer.use_span(end_on_exit) + # self.assertEqual(1, self.span.end.call_count) + # TODO: Change this test to use the SDK, as mocking becomes painful + + self.assertEqual( + self.span_attrs, + { + "component": "http", + "http.method": "GET", + "http.host": "localhost", + "http.url": "http://localhost/hello/500", + "http.route": "/hello/", + "http.status_code": 500, + "http.status_text": "INTERNAL SERVER ERROR", + }, + ) + + +if __name__ == "__main__": + unittest.main() diff --git a/ext/opentelemetry-ext-testutil/setup.cfg b/ext/opentelemetry-ext-testutil/setup.cfg new file mode 100644 index 00000000000..170e949cf67 --- /dev/null +++ b/ext/opentelemetry-ext-testutil/setup.cfg @@ -0,0 +1,47 @@ +# Copyright 2019, OpenTelemetry Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +[metadata] +name = opentelemetry-ext-testutil +description = Test utilities for OpenTelemetry unit tests +author = OpenTelemetry Authors +author_email = cncf-opentelemetry-contributors@lists.cncf.io +url = https://github.com/open-telemetry/opentelemetry-python/ext/opentelemetry-ext-testutil +platforms = any +license = Apache-2.0 +classifiers = + Development Status :: 3 - Alpha + Intended Audience :: Developers + License :: OSI Approved :: Apache Software License + Programming Language :: Python + Programming Language :: Python :: 3 + Programming Language :: Python :: 3.4 + Programming Language :: Python :: 3.5 + Programming Language :: Python :: 3.6 + Programming Language :: Python :: 3.7 + +[options] +python_requires = >=3.4 +package_dir= + =src +packages=find_namespace: +install_requires = + opentelemetry-ext-wsgi + +[options.extras_require] +test = flask~=1.0 + +[options.packages.find] +where = src diff --git a/ext/opentelemetry-ext-testutil/setup.py b/ext/opentelemetry-ext-testutil/setup.py new file mode 100644 index 00000000000..9de576d3567 --- /dev/null +++ b/ext/opentelemetry-ext-testutil/setup.py @@ -0,0 +1,26 @@ +# Copyright 2019, OpenTelemetry Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import os + +import setuptools + +BASE_DIR = os.path.dirname(__file__) +VERSION_FILENAME = os.path.join( + BASE_DIR, "src", "opentelemetry", "ext", "testutil", "version.py" +) +PACKAGE_INFO = {} +with open(VERSION_FILENAME) as f: + exec(f.read(), PACKAGE_INFO) + +setuptools.setup(version=PACKAGE_INFO["__version__"]) diff --git a/ext/opentelemetry-ext-testutil/src/opentelemetry/ext/testutil/__init__.py b/ext/opentelemetry-ext-testutil/src/opentelemetry/ext/testutil/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/ext/opentelemetry-ext-testutil/src/opentelemetry/ext/testutil/version.py b/ext/opentelemetry-ext-testutil/src/opentelemetry/ext/testutil/version.py new file mode 100644 index 00000000000..70ddecedf86 --- /dev/null +++ b/ext/opentelemetry-ext-testutil/src/opentelemetry/ext/testutil/version.py @@ -0,0 +1 @@ +__version__ = "0.3dev0" diff --git a/ext/opentelemetry-ext-testutil/src/opentelemetry/ext/testutil/wsgitestutil.py b/ext/opentelemetry-ext-testutil/src/opentelemetry/ext/testutil/wsgitestutil.py new file mode 100644 index 00000000000..d9cc9ff6a92 --- /dev/null +++ b/ext/opentelemetry-ext-testutil/src/opentelemetry/ext/testutil/wsgitestutil.py @@ -0,0 +1,41 @@ +import io +import unittest +import unittest.mock as mock +import wsgiref.util as wsgiref_util + +from opentelemetry import trace as trace_api + + +class WsgiTestBase(unittest.TestCase): + def setUp(self): + tracer = trace_api.tracer() + self.span = mock.create_autospec(trace_api.Span, spec_set=True) + self.create_span_patcher = mock.patch.object( + tracer, + "create_span", + autospec=True, + spec_set=True, + return_value=self.span, + ) + self.create_span = self.create_span_patcher.start() + self.write_buffer = io.BytesIO() + self.write = self.write_buffer.write + + self.environ = {} + wsgiref_util.setup_testing_defaults(self.environ) + + self.status = None + self.response_headers = None + self.exc_info = None + + def tearDown(self): + self.create_span_patcher.stop() + + def start_response(self, status, response_headers, exc_info=None): + # The span should have started already + self.assertEqual(1, self.span.start.call_count) + + self.status = status + self.response_headers = response_headers + self.exc_info = exc_info + return self.write diff --git a/ext/opentelemetry-ext-wsgi/setup.cfg b/ext/opentelemetry-ext-wsgi/setup.cfg index 4405e37a302..1db49209bec 100644 --- a/ext/opentelemetry-ext-wsgi/setup.cfg +++ b/ext/opentelemetry-ext-wsgi/setup.cfg @@ -41,5 +41,9 @@ packages=find_namespace: install_requires = opentelemetry-api +[options.extras_require] +test = + opentelemetry-ext-testutil + [options.packages.find] where = src diff --git a/ext/opentelemetry-ext-wsgi/src/opentelemetry/ext/wsgi/__init__.py b/ext/opentelemetry-ext-wsgi/src/opentelemetry/ext/wsgi/__init__.py index 5e619eb7c6a..a2cf163342e 100644 --- a/ext/opentelemetry-ext-wsgi/src/opentelemetry/ext/wsgi/__init__.py +++ b/ext/opentelemetry-ext-wsgi/src/opentelemetry/ext/wsgi/__init__.py @@ -24,75 +24,108 @@ from opentelemetry import propagators, trace from opentelemetry.ext.wsgi.version import __version__ # noqa +from opentelemetry.util import time_ns + + +def get_header_from_environ( + environ: dict, header_name: str +) -> typing.List[str]: + """Retrieve a HTTP header value from the PEP3333-conforming WSGI environ. + + Returns: + A list with a single string with the header value if it exists, else an empty list. + """ + environ_key = "HTTP_" + header_name.upper().replace("-", "_") + value = environ.get(environ_key) + if value is not None: + return [value] + return [] + + +def add_request_attributes(span, environ): + """Adds HTTP request attributes from the PEP3333-conforming WSGI environ to span.""" + + span.set_attribute("component", "http") + span.set_attribute("http.method", environ["REQUEST_METHOD"]) + + host = environ.get("HTTP_HOST") + if not host: + host = environ["SERVER_NAME"] + port = environ["SERVER_PORT"] + scheme = environ["wsgi.url_scheme"] + if ( + scheme == "http" + and port != "80" + or scheme == "https" + and port != "443" + ): + host += ":" + port + + # NOTE: Nonstandard (but see + # https://github.com/open-telemetry/opentelemetry-specification/pull/263) + span.set_attribute("http.host", host) + + url = environ.get("REQUEST_URI") or environ.get("RAW_URI") + + if url: + if url[0] == "/": + # We assume that no scheme-relative URLs will be in url here. + # After all, if a request is made to http://myserver//foo, we may get + # //foo which looks like scheme-relative but isn't. + url = environ["wsgi.url_scheme"] + "://" + host + url + elif not url.startswith(environ["wsgi.url_scheme"] + ":"): + # Something fishy is in RAW_URL. Let's fall back to request_uri() + url = wsgiref_util.request_uri(environ) + else: + url = wsgiref_util.request_uri(environ) + + span.set_attribute("http.url", url) + + +def add_response_attributes( + span, start_response_status, response_headers +): # pylint: disable=unused-argument + """Adds HTTP response attributes to span using the arguments + passed to a PEP3333-conforming start_response callable.""" + + status_code, status_text = start_response_status.split(" ", 1) + span.set_attribute("http.status_text", status_text) + + try: + status_code = int(status_code) + except ValueError: + pass + else: + span.set_attribute("http.status_code", status_code) + + +def get_default_span_name(environ): + """Calculates a (generic) span name for an incoming HTTP request based on the PEP3333 conforming WSGI environ.""" + + # TODO: Update once + # https://github.com/open-telemetry/opentelemetry-specification/issues/270 + # is resolved + return environ.get("PATH_INFO", "/") class OpenTelemetryMiddleware: """The WSGI application middleware. - This class is used to create and annotate spans for requests to a WSGI - application. + This class is a PEP 3333 conforming WSGI middleware that starts and + annotates spans for any requests it is invoked with. Args: - wsgi: The WSGI application callable. + wsgi: The WSGI application callable to forward requests to. """ def __init__(self, wsgi): self.wsgi = wsgi @staticmethod - def _add_request_attributes(span, environ): - span.set_attribute("component", "http") - span.set_attribute("http.method", environ["REQUEST_METHOD"]) - - host = environ.get("HTTP_HOST") - if not host: - host = environ["SERVER_NAME"] - port = environ["SERVER_PORT"] - scheme = environ["wsgi.url_scheme"] - if ( - scheme == "http" - and port != "80" - or scheme == "https" - and port != "443" - ): - host += ":" + port - - # NOTE: Nonstandard - span.set_attribute("http.host", host) - - url = environ.get("REQUEST_URI") or environ.get("RAW_URI") - - if url: - if url[0] == "/": - # We assume that no scheme-relative URLs will be in url here. - # After all, if a request is made to http://myserver//foo, we may get - # //foo which looks like scheme-relative but isn't. - url = environ["wsgi.url_scheme"] + "://" + host + url - elif not url.startswith(environ["wsgi.url_scheme"] + ":"): - # Something fishy is in RAW_URL. Let's fall back to request_uri() - url = wsgiref_util.request_uri(environ) - else: - url = wsgiref_util.request_uri(environ) - - span.set_attribute("http.url", url) - - @staticmethod - def _add_response_attributes(span, status): - status_code, status_text = status.split(" ", 1) - span.set_attribute("http.status_text", status_text) - - try: - status_code = int(status_code) - except ValueError: - pass - else: - span.set_attribute("http.status_code", status_code) - - @classmethod - def _create_start_response(cls, span, start_response): + def _create_start_response(span, start_response): @functools.wraps(start_response) def _start_response(status, response_headers, *args, **kwargs): - cls._add_response_attributes(span, status) + add_response_attributes(span, status, response_headers) return start_response(status, response_headers, *args, **kwargs) return _start_response @@ -105,17 +138,20 @@ def __call__(self, environ, start_response): start_response: The WSGI start_response callable. """ + start_timestamp = time_ns() + tracer = trace.tracer() - path_info = environ["PATH_INFO"] or "/" - parent_span = propagators.extract(_get_header_from_environ, environ) + parent_span = propagators.extract(get_header_from_environ, environ) + span_name = get_default_span_name(environ) span = tracer.create_span( - path_info, parent_span, kind=trace.SpanKind.SERVER + span_name, parent_span, kind=trace.SpanKind.SERVER ) - span.start() + span.start(start_timestamp) + try: with tracer.use_span(span): - self._add_request_attributes(span, environ) + add_request_attributes(span, environ) start_response = self._create_start_response( span, start_response ) @@ -127,21 +163,6 @@ def __call__(self, environ, start_response): raise -def _get_header_from_environ( - environ: dict, header_name: str -) -> typing.List[str]: - """Retrieve the header value from the wsgi environ dictionary. - - Returns: - A string with the header value if it exists, else None. - """ - environ_key = "HTTP_" + header_name.upper().replace("-", "_") - value = environ.get(environ_key) - if value: - return [value] - return [] - - # Put this in a subfunction to not delay the call to the wrapped # WSGI application (instrumentation should change the application # behavior as little as possible). diff --git a/ext/opentelemetry-ext-wsgi/tests/test_wsgi_middleware.py b/ext/opentelemetry-ext-wsgi/tests/test_wsgi_middleware.py index e5dc9654fd2..9c77acbb75b 100644 --- a/ext/opentelemetry-ext-wsgi/tests/test_wsgi_middleware.py +++ b/ext/opentelemetry-ext-wsgi/tests/test_wsgi_middleware.py @@ -12,15 +12,15 @@ # See the License for the specific language governing permissions and # limitations under the License. -import io import sys import unittest import unittest.mock as mock import wsgiref.util as wsgiref_util from urllib.parse import urlparse +import opentelemetry.ext.wsgi as otel_wsgi from opentelemetry import trace as trace_api -from opentelemetry.ext.wsgi import OpenTelemetryMiddleware +from opentelemetry.ext.testutil.wsgitestutil import WsgiTestBase class Response: @@ -73,41 +73,7 @@ def error_wsgi(environ, start_response): return [b"*"] -class TestWsgiApplication(unittest.TestCase): - def setUp(self): - tracer = trace_api.tracer() - self.span = mock.create_autospec(trace_api.Span, spec_set=True) - self.create_span_patcher = mock.patch.object( - tracer, - "create_span", - autospec=True, - spec_set=True, - return_value=self.span, - ) - self.create_span = self.create_span_patcher.start() - - self.write_buffer = io.BytesIO() - self.write = self.write_buffer.write - - self.environ = {} - wsgiref_util.setup_testing_defaults(self.environ) - - self.status = None - self.response_headers = None - self.exc_info = None - - def tearDown(self): - self.create_span_patcher.stop() - - def start_response(self, status, response_headers, exc_info=None): - # The span should have started already - self.span.start.assert_called_once_with() - - self.status = status - self.response_headers = response_headers - self.exc_info = exc_info - return self.write - +class TestWsgiApplication(WsgiTestBase): def validate_response(self, response, error=None): while True: try: @@ -133,29 +99,29 @@ def validate_response(self, response, error=None): self.create_span.assert_called_with( "/", trace_api.INVALID_SPAN_CONTEXT, kind=trace_api.SpanKind.SERVER ) - self.span.start.assert_called_with() + self.assertEqual(1, self.span.start.call_count) def test_basic_wsgi_call(self): - app = OpenTelemetryMiddleware(simple_wsgi) + app = otel_wsgi.OpenTelemetryMiddleware(simple_wsgi) response = app(self.environ, self.start_response) self.validate_response(response) def test_wsgi_iterable(self): original_response = Response() iter_wsgi = create_iter_wsgi(original_response) - app = OpenTelemetryMiddleware(iter_wsgi) + app = otel_wsgi.OpenTelemetryMiddleware(iter_wsgi) response = app(self.environ, self.start_response) # Verify that start_response has been called self.assertTrue(self.status) self.validate_response(response) # Verify that close has been called exactly once - self.assertEqual(original_response.close_calls, 1) + self.assertEqual(1, original_response.close_calls) def test_wsgi_generator(self): original_response = Response() gen_wsgi = create_gen_wsgi(original_response) - app = OpenTelemetryMiddleware(gen_wsgi) + app = otel_wsgi.OpenTelemetryMiddleware(gen_wsgi) response = app(self.environ, self.start_response) # Verify that start_response has not been called self.assertIsNone(self.status) @@ -165,7 +131,7 @@ def test_wsgi_generator(self): self.assertEqual(original_response.close_calls, 1) def test_wsgi_exc_info(self): - app = OpenTelemetryMiddleware(error_wsgi) + app = otel_wsgi.OpenTelemetryMiddleware(error_wsgi) response = app(self.environ, self.start_response) self.validate_response(response, error=ValueError) @@ -179,9 +145,7 @@ def setUp(self): def test_request_attributes(self): self.environ["QUERY_STRING"] = "foo=bar" - OpenTelemetryMiddleware._add_request_attributes( # noqa pylint: disable=protected-access - self.span, self.environ - ) + otel_wsgi.add_request_attributes(self.span, self.environ) expected = ( mock.call("component", "http"), @@ -193,9 +157,7 @@ def test_request_attributes(self): self.span.set_attribute.assert_has_calls(expected, any_order=True) def validate_url(self, expected_url): - OpenTelemetryMiddleware._add_request_attributes( # noqa pylint: disable=protected-access - self.span, self.environ - ) + otel_wsgi.add_request_attributes(self.span, self.environ) attrs = { args[0][0]: args[0][1] for args in self.span.set_attribute.call_args_list @@ -269,9 +231,7 @@ def test_request_attributes_with_full_request_uri(self): self.validate_url("http://127.0.0.1:8080/?foo=bar#top") def test_response_attributes(self): - OpenTelemetryMiddleware._add_response_attributes( # noqa pylint: disable=protected-access - self.span, "404 Not Found" - ) + otel_wsgi.add_response_attributes(self.span, "404 Not Found", {}) expected = ( mock.call("http.status_code", 404), mock.call("http.status_text", "Not Found"), @@ -280,9 +240,7 @@ def test_response_attributes(self): self.span.set_attribute.assert_has_calls(expected, any_order=True) def test_response_attributes_invalid_status_code(self): - OpenTelemetryMiddleware._add_response_attributes( # noqa pylint: disable=protected-access - self.span, "Invalid Status Code" - ) + otel_wsgi.add_response_attributes(self.span, "Invalid Status Code", {}) self.assertEqual(self.span.set_attribute.call_count, 1) self.span.set_attribute.assert_called_with( "http.status_text", "Status Code" diff --git a/tox.ini b/tox.ini index 88f1a858992..f5624503b6a 100644 --- a/tox.ini +++ b/tox.ini @@ -2,8 +2,10 @@ skipsdist = True skip_missing_interpreters = True envlist = - py3{4,5,6,7,8}-test-{api,sdk,example-app,example-basic-tracer,example-http,ext-wsgi,ext-http-requests,ext-jaeger,ext-pymongo,opentracing-shim} - pypy3-test-{api,sdk,example-app,example-basic-tracer,example-http,ext-wsgi,ext-http-requests,ext-jaeger,ext-pymongo,opentracing-shim} + py3{4,5,6,7,8}-test-{api,sdk,example-app,ext-wsgi,ext-flask,ext-http-requests,ext-jaeger,ext-pymongo,opentracing-shim} + pypy3-test-{api,sdk,example-app,ext-wsgi,ext-flask,ext-http-requests,ext-jaeger,ext-pymongo,opentracing-shim} + py3{4,5,6,7,8}-test-{api,sdk,example-app,example-basic-tracer,example-http,ext-wsgi,ext-flask,ext-http-requests,ext-jaeger,ext-pymongo,opentracing-shim} + pypy3-test-{api,sdk,example-app,example-basic-tracer,example-http,ext-wsgi,ext-flask,ext-http-requests,ext-jaeger,ext-pymongo,opentracing-shim} py3{4,5,6,7,8}-coverage ; Coverage is temporarily disabled for pypy3 due to the pytest bug. @@ -37,6 +39,7 @@ changedir = test-ext-jaeger: ext/opentelemetry-ext-jaeger/tests test-ext-pymongo: ext/opentelemetry-ext-pymongo/tests test-ext-wsgi: ext/opentelemetry-ext-wsgi/tests + test-ext-flask: ext/opentelemetry-ext-flask/tests test-example-app: examples/opentelemetry-example-app/tests test-example-basic-tracer: examples/basic_tracer/tests test-example-http: examples/http/tests @@ -50,6 +53,7 @@ commands_pre = example-app: pip install {toxinidir}/opentelemetry-sdk example-app: pip install {toxinidir}/ext/opentelemetry-ext-http-requests example-app: pip install {toxinidir}/ext/opentelemetry-ext-wsgi + example-app: pip install {toxinidir}/ext/opentelemetry-ext-flask example-app: pip install {toxinidir}/examples/opentelemetry-example-app example-basic-tracer: pip install -e {toxinidir}/opentelemetry-api example-basic-tracer: pip install -e {toxinidir}/opentelemetry-sdk @@ -60,7 +64,9 @@ commands_pre = example-http: pip install -r {toxinidir}/examples/http/requirements.txt ext: pip install {toxinidir}/opentelemetry-api - wsgi: pip install {toxinidir}/ext/opentelemetry-ext-wsgi + wsgi,flask: pip install {toxinidir}/ext/opentelemetry-ext-testutil + wsgi,flask: pip install {toxinidir}/ext/opentelemetry-ext-wsgi + flask: pip install {toxinidir}/ext/opentelemetry-ext-flask[test] pymongo: pip install {toxinidir}/ext/opentelemetry-ext-pymongo http-requests: pip install {toxinidir}/ext/opentelemetry-ext-http-requests jaeger: pip install {toxinidir}/opentelemetry-sdk @@ -74,7 +80,9 @@ commands_pre = coverage: pip install -e {toxinidir}/ext/opentelemetry-ext-http-requests coverage: pip install -e {toxinidir}/ext/opentelemetry-ext-jaeger coverage: pip install -e {toxinidir}/ext/opentelemetry-ext-opentracing-shim + coverage: pip install -e {toxinidir}/ext/opentelemetry-ext-testutil coverage: pip install -e {toxinidir}/ext/opentelemetry-ext-wsgi + coverage: pip install -e {toxinidir}/ext/opentelemetry-ext-flask[test] coverage: pip install -e {toxinidir}/examples/opentelemetry-example-app ; Using file:// here because otherwise tox invokes just "pip install @@ -108,7 +116,9 @@ commands_pre = pip install -e {toxinidir}/ext/opentelemetry-ext-http-requests pip install -e {toxinidir}/ext/opentelemetry-ext-jaeger pip install -e {toxinidir}/ext/opentelemetry-ext-pymongo + pip install -e {toxinidir}/ext/opentelemetry-ext-testutil pip install -e {toxinidir}/ext/opentelemetry-ext-wsgi + pip install -e {toxinidir}/ext/opentelemetry-ext-flask[test] pip install -e {toxinidir}/examples/opentelemetry-example-app pip install -e {toxinidir}/ext/opentelemetry-ext-opentracing-shim @@ -128,7 +138,11 @@ commands = ext/opentelemetry-ext-opentracing-shim/tests/ \ ext/opentelemetry-ext-pymongo/src/opentelemetry \ ext/opentelemetry-ext-pymongo/tests/ \ + ext/opentelemetry-ext-testutil/src/opentelemetry \ + ext/opentelemetry-ext-wsgi/src/ \ ext/opentelemetry-ext-wsgi/tests/ \ + ext/opentelemetry-ext-flask/src/ \ + ext/opentelemetry-ext-flask/tests/ \ examples/opentelemetry-example-app/src/opentelemetry_example_app/ \ examples/opentelemetry-example-app/tests/ \ examples/basic_tracer/ \ @@ -161,6 +175,7 @@ commands_pre = pip install -e {toxinidir}/opentelemetry-sdk pip install -e {toxinidir}/ext/opentelemetry-ext-http-requests pip install -e {toxinidir}/ext/opentelemetry-ext-wsgi + pip install -e {toxinidir}/ext/opentelemetry-ext-flask commands = {toxinidir}/scripts/tracecontext-integration-test.sh From 693391cf6a6d466fe44ff55f2ae678a081853b7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Neum=C3=BCller?= Date: Sat, 23 Nov 2019 03:00:01 +0100 Subject: [PATCH 08/14] Update travis.yml for release of Python 3.8. (#295) --- .travis.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index f8c01c80be7..223cfbb587f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,12 +7,12 @@ python: - '3.5' - '3.6' - '3.7' + - '3.8' - 'pypy3.5' - - '3.8-dev' -matrix: - allow_failures: - - python: '3.8-dev' +#matrix: +# allow_failures: +# - python: '3.8-dev' install: - pip install tox-travis From 033bcdc6f97b380944cf1a234a6f4b3415fed3e2 Mon Sep 17 00:00:00 2001 From: alrex Date: Mon, 25 Nov 2019 11:23:36 -0800 Subject: [PATCH 09/14] Remove create_span from the API (#290) Simplify the API by removing create_span. Resolves #152 --- .../src/opentelemetry/ext/flask/__init__.py | 8 ++- .../tests/test_flask_integration.py | 13 ++-- .../ext/opentracing_shim/__init__.py | 17 +++-- .../ext/testutil/wsgitestutil.py | 11 ++- .../src/opentelemetry/ext/wsgi/__init__.py | 6 +- .../tests/test_wsgi_middleware.py | 3 +- .../src/opentelemetry/trace/__init__.py | 72 +++---------------- opentelemetry-api/tests/trace/test_tracer.py | 4 -- .../src/opentelemetry/sdk/trace/__init__.py | 38 +++------- opentelemetry-sdk/tests/trace/test_trace.py | 14 ++-- 10 files changed, 51 insertions(+), 135 deletions(-) diff --git a/ext/opentelemetry-ext-flask/src/opentelemetry/ext/flask/__init__.py b/ext/opentelemetry-ext-flask/src/opentelemetry/ext/flask/__init__.py index eedc8d59988..662cea752a8 100644 --- a/ext/opentelemetry-ext-flask/src/opentelemetry/ext/flask/__init__.py +++ b/ext/opentelemetry-ext-flask/src/opentelemetry/ext/flask/__init__.py @@ -62,10 +62,12 @@ def _before_flask_request(): tracer = trace.tracer() - span = tracer.create_span( - span_name, parent_span, kind=trace.SpanKind.SERVER + span = tracer.start_span( + span_name, + parent_span, + kind=trace.SpanKind.SERVER, + start_time=environ.get(_ENVIRON_STARTTIME_KEY), ) - span.start(environ.get(_ENVIRON_STARTTIME_KEY)) activation = tracer.use_span(span, end_on_exit=True) activation.__enter__() environ[_ENVIRON_ACTIVATION_KEY] = activation diff --git a/ext/opentelemetry-ext-flask/tests/test_flask_integration.py b/ext/opentelemetry-ext-flask/tests/test_flask_integration.py index dfb9dee885c..d03e7604a81 100644 --- a/ext/opentelemetry-ext-flask/tests/test_flask_integration.py +++ b/ext/opentelemetry-ext-flask/tests/test_flask_integration.py @@ -13,6 +13,7 @@ # limitations under the License. import unittest +from unittest import mock from flask import Flask from werkzeug.test import Client @@ -52,12 +53,12 @@ def test_simple(self): self.assertEqual(200, resp.status_code) self.assertEqual([b"Hello: 123"], list(resp.response)) - self.create_span.assert_called_with( + self.start_span.assert_called_with( "hello_endpoint", trace_api.INVALID_SPAN_CONTEXT, kind=trace_api.SpanKind.SERVER, + start_time=mock.ANY, ) - self.assertEqual(1, self.span.start.call_count) # TODO: Change this test to use the SDK, as mocking becomes painful @@ -79,12 +80,12 @@ def test_404(self): self.assertEqual(404, resp.status_code) resp.close() - self.create_span.assert_called_with( + self.start_span.assert_called_with( "/bye", trace_api.INVALID_SPAN_CONTEXT, kind=trace_api.SpanKind.SERVER, + start_time=mock.ANY, ) - self.assertEqual(1, self.span.start.call_count) # Nope, this uses Tracer.use_span(end_on_exit) # self.assertEqual(1, self.span.end.call_count) @@ -107,12 +108,12 @@ def test_internal_error(self): self.assertEqual(500, resp.status_code) resp.close() - self.create_span.assert_called_with( + self.start_span.assert_called_with( "hello_endpoint", trace_api.INVALID_SPAN_CONTEXT, kind=trace_api.SpanKind.SERVER, + start_time=mock.ANY, ) - self.assertEqual(1, self.span.start.call_count) # Nope, this uses Tracer.use_span(end_on_exit) # self.assertEqual(1, self.span.end.call_count) diff --git a/ext/opentelemetry-ext-opentracing-shim/src/opentelemetry/ext/opentracing_shim/__init__.py b/ext/opentelemetry-ext-opentracing-shim/src/opentelemetry/ext/opentracing_shim/__init__.py index eefb85466ae..338674eec42 100644 --- a/ext/opentelemetry-ext-opentracing-shim/src/opentelemetry/ext/opentracing_shim/__init__.py +++ b/ext/opentelemetry-ext-opentracing-shim/src/opentelemetry/ext/opentracing_shim/__init__.py @@ -238,14 +238,6 @@ def start_span( for ref in references: links.append(trace_api.Link(ref.referenced_context.unwrap())) - span = self._otel_tracer.create_span( - operation_name, parent, links=links - ) - - if tags: - for key, value in tags.items(): - span.set_attribute(key, value) - # The OpenTracing API expects time values to be `float` values which # represent the number of seconds since the epoch. OpenTelemetry # represents time values as nanoseconds since the epoch. @@ -253,7 +245,14 @@ def start_span( if start_time_ns is not None: start_time_ns = util.time_seconds_to_ns(start_time) - span.start(start_time=start_time_ns) + span = self._otel_tracer.start_span( + operation_name, + parent, + links=links, + attributes=tags, + start_time=start_time_ns, + ) + context = SpanContextShim(span.get_context()) return SpanShim(self, context, span) diff --git a/ext/opentelemetry-ext-testutil/src/opentelemetry/ext/testutil/wsgitestutil.py b/ext/opentelemetry-ext-testutil/src/opentelemetry/ext/testutil/wsgitestutil.py index d9cc9ff6a92..fba6a8cda2d 100644 --- a/ext/opentelemetry-ext-testutil/src/opentelemetry/ext/testutil/wsgitestutil.py +++ b/ext/opentelemetry-ext-testutil/src/opentelemetry/ext/testutil/wsgitestutil.py @@ -10,14 +10,14 @@ class WsgiTestBase(unittest.TestCase): def setUp(self): tracer = trace_api.tracer() self.span = mock.create_autospec(trace_api.Span, spec_set=True) - self.create_span_patcher = mock.patch.object( + self.start_span_patcher = mock.patch.object( tracer, - "create_span", + "start_span", autospec=True, spec_set=True, return_value=self.span, ) - self.create_span = self.create_span_patcher.start() + self.start_span = self.start_span_patcher.start() self.write_buffer = io.BytesIO() self.write = self.write_buffer.write @@ -29,12 +29,9 @@ def setUp(self): self.exc_info = None def tearDown(self): - self.create_span_patcher.stop() + self.start_span_patcher.stop() def start_response(self, status, response_headers, exc_info=None): - # The span should have started already - self.assertEqual(1, self.span.start.call_count) - self.status = status self.response_headers = response_headers self.exc_info = exc_info diff --git a/ext/opentelemetry-ext-wsgi/src/opentelemetry/ext/wsgi/__init__.py b/ext/opentelemetry-ext-wsgi/src/opentelemetry/ext/wsgi/__init__.py index a2cf163342e..0d947ff8671 100644 --- a/ext/opentelemetry-ext-wsgi/src/opentelemetry/ext/wsgi/__init__.py +++ b/ext/opentelemetry-ext-wsgi/src/opentelemetry/ext/wsgi/__init__.py @@ -24,7 +24,6 @@ from opentelemetry import propagators, trace from opentelemetry.ext.wsgi.version import __version__ # noqa -from opentelemetry.util import time_ns def get_header_from_environ( @@ -138,16 +137,13 @@ def __call__(self, environ, start_response): start_response: The WSGI start_response callable. """ - start_timestamp = time_ns() - tracer = trace.tracer() parent_span = propagators.extract(get_header_from_environ, environ) span_name = get_default_span_name(environ) - span = tracer.create_span( + span = tracer.start_span( span_name, parent_span, kind=trace.SpanKind.SERVER ) - span.start(start_timestamp) try: with tracer.use_span(span): diff --git a/ext/opentelemetry-ext-wsgi/tests/test_wsgi_middleware.py b/ext/opentelemetry-ext-wsgi/tests/test_wsgi_middleware.py index 9c77acbb75b..97c93880e47 100644 --- a/ext/opentelemetry-ext-wsgi/tests/test_wsgi_middleware.py +++ b/ext/opentelemetry-ext-wsgi/tests/test_wsgi_middleware.py @@ -96,10 +96,9 @@ def validate_response(self, response, error=None): self.assertIsNone(self.exc_info) # Verify that start_span has been called - self.create_span.assert_called_with( + self.start_span.assert_called_with( "/", trace_api.INVALID_SPAN_CONTEXT, kind=trace_api.SpanKind.SERVER ) - self.assertEqual(1, self.span.start.call_count) def test_basic_wsgi_call(self): app = otel_wsgi.OpenTelemetryMiddleware(simple_wsgi) diff --git a/opentelemetry-api/src/opentelemetry/trace/__init__.py b/opentelemetry-api/src/opentelemetry/trace/__init__.py index 4f1dc539a39..f2abf8ff9b7 100644 --- a/opentelemetry-api/src/opentelemetry/trace/__init__.py +++ b/opentelemetry-api/src/opentelemetry/trace/__init__.py @@ -30,10 +30,10 @@ created as children of the currently active span, and the newly-created span can optionally become the new active span:: - from opentelemetry.trace import tracer + from opentelemetry import trace # Create a new root span, set it as the current span in context - with tracer.start_as_current_span("parent"): + with trace.tracer().start_as_current_span("parent"): # Attach a new child and update the current span with tracer.start_as_current_span("child"): do_work(): @@ -43,17 +43,15 @@ When creating a span that's "detached" from the context the active span doesn't change, and the caller is responsible for managing the span's lifetime:: - from opentelemetry.api.trace import tracer + from opentelemetry import trace # Explicit parent span assignment - span = tracer.create_span("child", parent=parent) as child: + child = trace.tracer().start_span("child", parent=parent) - # The caller is responsible for starting and ending the span - span.start() try: do_work(span=child) finally: - span.end() + child.end() Applications should generally use a single global tracer, and use either implicit or explicit context propagation consistently throughout. @@ -147,16 +145,6 @@ class SpanKind(enum.Enum): class Span: """A span represents a single operation within a trace.""" - def start(self, start_time: typing.Optional[int] = None) -> None: - """Sets the current time as the span's start time. - - Each span represents a single operation. The span's start time is the - wall time at which the operation started. - - Only the first call to `start` should modify the span, and - implementations are free to ignore or raise on further calls. - """ - def end(self, end_time: int = None) -> None: """Sets the current time as the span's end time. @@ -204,8 +192,7 @@ def add_lazy_event(self, event: Event) -> None: def update_name(self, name: str) -> None: """Updates the `Span` name. - This will override the name provided via :func:`Tracer.create_span` - or :func:`Tracer.start_span`. + This will override the name provided via :func:`Tracer.start_span`. Upon this update, any sampling behavior based on Span name will depend on the implementation. @@ -404,6 +391,7 @@ def start_span( kind: SpanKind = SpanKind.INTERNAL, attributes: typing.Optional[types.Attributes] = None, links: typing.Sequence[Link] = (), + start_time: typing.Optional[int] = None, ) -> "Span": """Starts a span. @@ -434,6 +422,7 @@ def start_span( meaningful even if there is no parent. attributes: The span's attributes. links: Links span to other spans + start_time: Sets the start time of a span Returns: The newly-created span. @@ -494,51 +483,6 @@ def start_as_current_span( # pylint: disable=unused-argument,no-self-use yield INVALID_SPAN - def create_span( - self, - name: str, - parent: ParentSpan = CURRENT_SPAN, - kind: SpanKind = SpanKind.INTERNAL, - attributes: typing.Optional[types.Attributes] = None, - links: typing.Sequence[Link] = (), - ) -> "Span": - """Creates a span. - - Creating the span does not start it, and should not affect the tracer's - context. To start the span and update the tracer's context to make it - the currently active span, see :meth:`use_span`. - - By default the current span will be used as parent, but an explicit - parent can also be specified, either a Span or a SpanContext. - If the specified value is `None`, the created span will be a root - span. - - Applications that need to create spans detached from the tracer's - context should use this method. - - with tracer.start_as_current_span(name) as span: - do_work() - - This is equivalent to:: - - span = tracer.create_span(name) - with tracer.use_span(span): - do_work() - - Args: - name: The name of the span to be created. - parent: The span's parent. Defaults to the current span. - kind: The span's kind (relationship to parent). Note that is - meaningful even if there is no parent. - attributes: The span's attributes. - links: Links span to other spans - - Returns: - The newly-created span. - """ - # pylint: disable=unused-argument,no-self-use - return INVALID_SPAN - @contextmanager # type: ignore def use_span( self, span: "Span", end_on_exit: bool = False diff --git a/opentelemetry-api/tests/trace/test_tracer.py b/opentelemetry-api/tests/trace/test_tracer.py index 79ff76afc15..b57f2ff6d2b 100644 --- a/opentelemetry-api/tests/trace/test_tracer.py +++ b/opentelemetry-api/tests/trace/test_tracer.py @@ -33,10 +33,6 @@ def test_start_as_current_span(self): with self.tracer.start_as_current_span("") as span: self.assertIsInstance(span, trace.Span) - def test_create_span(self): - span = self.tracer.create_span("") - self.assertIsInstance(span, trace.Span) - def test_use_span(self): span = trace.Span() with self.tracer.use_span(span): diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py b/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py index 9ac9d81bc2c..9b55c39567f 100644 --- a/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py +++ b/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py @@ -314,20 +314,6 @@ def get_current_span(self): """See `opentelemetry.trace.Tracer.get_current_span`.""" return self._current_span_slot.get() - def start_span( - self, - name: str, - parent: trace_api.ParentSpan = trace_api.Tracer.CURRENT_SPAN, - kind: trace_api.SpanKind = trace_api.SpanKind.INTERNAL, - attributes: Optional[types.Attributes] = None, - links: Sequence[trace_api.Link] = (), - ) -> "Span": - """See `opentelemetry.trace.Tracer.start_span`.""" - - span = self.create_span(name, parent, kind, attributes, links) - span.start() - return span - def start_as_current_span( self, name: str, @@ -341,22 +327,16 @@ def start_as_current_span( span = self.start_span(name, parent, kind, attributes, links) return self.use_span(span, end_on_exit=True) - def create_span( + def start_span( self, name: str, parent: trace_api.ParentSpan = trace_api.Tracer.CURRENT_SPAN, kind: trace_api.SpanKind = trace_api.SpanKind.INTERNAL, attributes: Optional[types.Attributes] = None, links: Sequence[trace_api.Link] = (), - ) -> "trace_api.Span": - """See `opentelemetry.trace.Tracer.create_span`. - - If `parent` is null the new span will be created as a root span, i.e. a - span with no parent context. By default, the new span will be created - as a child of the current span in this tracer's context, or as a root - span if no current span exists. - """ - span_id = generate_span_id() + start_time: Optional[int] = None, + ) -> "Span": + """See `opentelemetry.trace.Tracer.start_span`.""" if parent is Tracer.CURRENT_SPAN: parent = self.get_current_span() @@ -381,7 +361,7 @@ def create_span( trace_state = parent_context.trace_state context = trace_api.SpanContext( - trace_id, span_id, trace_options, trace_state + trace_id, generate_span_id(), trace_options, trace_state ) # The sampler decides whether to create a real or no-op span at the @@ -405,7 +385,7 @@ def create_span( # apply sampling decision attributes after initial attributes span_attributes = attributes.copy() span_attributes.update(sampling_decision.attributes) - return Span( + span = Span( name=name, context=context, parent=parent, @@ -415,8 +395,10 @@ def create_span( kind=kind, links=links, ) - - return trace_api.DefaultSpan(context=context) + span.start(start_time=start_time) + else: + span = trace_api.DefaultSpan(context=context) + return span @contextmanager def use_span( diff --git a/opentelemetry-sdk/tests/trace/test_trace.py b/opentelemetry-sdk/tests/trace/test_trace.py index 0d36c003e0f..e797b1c8908 100644 --- a/opentelemetry-sdk/tests/trace/test_trace.py +++ b/opentelemetry-sdk/tests/trace/test_trace.py @@ -33,9 +33,9 @@ def test_default_sampler(self): # Check that the default tracer creates real spans via the default # sampler - root_span = tracer.create_span(name="root span", parent=None) + root_span = tracer.start_span(name="root span", parent=None) self.assertIsInstance(root_span, trace.Span) - child_span = tracer.create_span(name="child span", parent=root_span) + child_span = tracer.start_span(name="child span", parent=root_span) self.assertIsInstance(child_span, trace.Span) def test_sampler_no_sampling(self): @@ -44,22 +44,22 @@ def test_sampler_no_sampling(self): # Check that the default tracer creates no-op spans if the sampler # decides not to sampler - root_span = tracer.create_span(name="root span", parent=None) + root_span = tracer.start_span(name="root span", parent=None) self.assertIsInstance(root_span, trace_api.DefaultSpan) - child_span = tracer.create_span(name="child span", parent=root_span) + child_span = tracer.start_span(name="child span", parent=root_span) self.assertIsInstance(child_span, trace_api.DefaultSpan) class TestSpanCreation(unittest.TestCase): - def test_create_span_invalid_spancontext(self): + def test_start_span_invalid_spancontext(self): """If an invalid span context is passed as the parent, the created span should use a new span id. Invalid span contexts should also not be added as a parent. This eliminates redundant error handling logic in exporters. """ - tracer = trace.Tracer("test_create_span_invalid_spancontext") - new_span = tracer.create_span( + tracer = trace.Tracer("test_start_span_invalid_spancontext") + new_span = tracer.start_span( "root", parent=trace_api.INVALID_SPAN_CONTEXT ) self.assertTrue(new_span.context.is_valid()) From eee7d84804b23fef1eed2b585af3d40dccb9ab1f Mon Sep 17 00:00:00 2001 From: Johannes Liebermann Date: Mon, 25 Nov 2019 22:09:44 +0100 Subject: [PATCH 10/14] Add documentation for the OpenTracing shim (#244) --- docs/conf.py | 13 +- docs/index.rst | 1 + docs/opentelemetry.ext.opentracing_shim.rst | 8 + .../ext/opentracing_shim/__init__.py | 429 +++++++++++++++++- tox.ini | 2 + 5 files changed, 437 insertions(+), 16 deletions(-) create mode 100644 docs/opentelemetry.ext.opentracing_shim.rst diff --git a/docs/conf.py b/docs/conf.py index 8b8c11d47b9..538472cf052 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -13,7 +13,10 @@ import os import sys -sys.path.insert(0, os.path.abspath("../opentelemetry-api/src/")) +sys.path[:0] = [ + os.path.abspath("../opentelemetry-api/src/"), + os.path.abspath("../ext/opentelemetry-ext-opentracing-shim/src/"), +] # -- Project information ----------------------------------------------------- @@ -47,7 +50,13 @@ "sphinx.ext.githubpages", ] -intersphinx_mapping = {"python": ("https://docs.python.org/3/", None)} +intersphinx_mapping = { + "python": ("https://docs.python.org/3/", None), + "opentracing": ( + "https://opentracing-python.readthedocs.io/en/latest/", + None, + ), +} # http://www.sphinx-doc.org/en/master/config.html#confval-nitpicky # Sphinx will warn about all references where the target cannot be found. diff --git a/docs/index.rst b/docs/index.rst index f4c8e6e3366..b98ef55316b 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -19,6 +19,7 @@ abstract types for OpenTelemetry implementations. opentelemetry.metrics opentelemetry.trace opentelemetry.util.loader + opentelemetry.ext.opentracing_shim Indices and tables diff --git a/docs/opentelemetry.ext.opentracing_shim.rst b/docs/opentelemetry.ext.opentracing_shim.rst new file mode 100644 index 00000000000..921d6c290b3 --- /dev/null +++ b/docs/opentelemetry.ext.opentracing_shim.rst @@ -0,0 +1,8 @@ +opentelemetry.ext.opentracing_shim package +========================================== + +Module contents +--------------- + +.. automodule:: opentelemetry.ext.opentracing_shim + :no-show-inheritance: diff --git a/ext/opentelemetry-ext-opentracing-shim/src/opentelemetry/ext/opentracing_shim/__init__.py b/ext/opentelemetry-ext-opentracing-shim/src/opentelemetry/ext/opentracing_shim/__init__.py index 338674eec42..a9e74dbc58f 100644 --- a/ext/opentelemetry-ext-opentracing-shim/src/opentelemetry/ext/opentracing_shim/__init__.py +++ b/ext/opentelemetry-ext-opentracing-shim/src/opentelemetry/ext/opentracing_shim/__init__.py @@ -12,6 +12,72 @@ # See the License for the specific language governing permissions and # limitations under the License. +""" +The OpenTelemetry OpenTracing shim is a library which allows an easy migration +from OpenTracing to OpenTelemetry. + +The shim consists of a set of classes which implement the OpenTracing Python +API while using OpenTelemetry constructs behind the scenes. Its purpose is to +allow applications which are already instrumented using OpenTracing to start +using OpenTelemetry with a minimal effort, without having to rewrite large +portions of the codebase. + +To use the shim, a :class:`TracerShim` instance is created and then used as if +it were an "ordinary" OpenTracing :class:`opentracing.Tracer`, as in the +following example:: + + import time + + from opentelemetry import trace + from opentelemetry.sdk.trace import Tracer + from opentelemetry.ext.opentracing_shim import create_tracer + + # Tell OpenTelemetry which Tracer implementation to use. + trace.set_preferred_tracer_implementation(lambda T: Tracer()) + # Create an OpenTelemetry Tracer. + otel_tracer = trace.tracer() + # Create an OpenTracing shim. + shim = create_tracer(otel_tracer) + + with shim.start_active_span("ProcessHTTPRequest"): + print("Processing HTTP request") + # Sleeping to mock real work. + time.sleep(0.1) + with shim.start_active_span("GetDataFromDB"): + print("Getting data from DB") + # Sleeping to mock real work. + time.sleep(0.2) + +Note: + While the OpenTracing Python API represents time values as the number of + **seconds** since the epoch expressed as :obj:`float` values, the + OpenTelemetry Python API represents time values as the number of + **nanoseconds** since the epoch expressed as :obj:`int` values. This fact + requires the OpenTracing shim to convert time values back and forth between + the two representations, which involves floating point arithmetic. + + Due to the way computers represent floating point values in hardware, + representation of decimal floating point values in binary-based hardware is + imprecise by definition. + + The above results in **slight imprecisions** in time values passed to the + shim via the OpenTracing API when comparing the value passed to the shim + and the value stored in the OpenTelemetry :class:`opentelemetry.trace.Span` + object behind the scenes. **This is not a bug in this library or in + Python**. Rather, this is a generic problem which stems from the fact that + not every decimal floating point number can be correctly represented in + binary, and therefore affects other libraries and programming languages as + well. More information about this problem can be found in the + `Floating Point Arithmetic\\: Issues and Limitations`_ section of the + Python documentation. + + While testing this library, the aforementioned imprecisions were observed + to be of *less than a microsecond*. + +.. _Floating Point Arithmetic\\: Issues and Limitations: + https://docs.python.org/3/tutorial/floatingpoint.html +""" + import logging import opentracing @@ -25,20 +91,56 @@ def create_tracer(otel_tracer): + """Creates a :class:`TracerShim` object from the provided OpenTelemetry + :class:`opentelemetry.trace.Tracer`. + + The returned :class:`TracerShim` is an implementation of + :class:`opentracing.Tracer` using OpenTelemetry under the hood. + + Args: + otel_tracer: A :class:`opentelemetry.trace.Tracer` to be used for + constructing the :class:`TracerShim`. This tracer will be used + to perform the actual tracing when user code is instrumented using + the OpenTracing API. + + Returns: + The created :class:`TracerShim`. + """ + return TracerShim(otel_tracer) class SpanContextShim(opentracing.SpanContext): + """Implements :class:`opentracing.SpanContext` by wrapping a + :class:`opentelemetry.trace.SpanContext` object. + + Args: + otel_context: A :class:`opentelemetry.trace.SpanContext` to be used for + constructing the :class:`SpanContextShim`. + """ + def __init__(self, otel_context): self._otel_context = otel_context def unwrap(self): - """Returns the wrapped OpenTelemetry `SpanContext` object.""" + """Returns the wrapped :class:`opentelemetry.trace.SpanContext` + object. + + Returns: + The :class:`opentelemetry.trace.SpanContext` object wrapped by this + :class:`SpanContextShim`. + """ return self._otel_context @property def baggage(self): + """Implements the ``baggage`` property from the base class. + + Warning: + Not implemented yet. + """ + logger.warning( "Using unimplemented property baggage on class %s.", self.__class__.__name__, @@ -47,30 +149,102 @@ def baggage(self): class SpanShim(opentracing.Span): + """Implements :class:`opentracing.Span` by wrapping a + :class:`opentelemetry.trace.Span` object. + + Args: + tracer: The :class:`opentracing.Tracer` that created this `SpanShim`. + context: A :class:`SpanContextShim` which contains the context for this + :class:`SpanShim`. + span: A :class:`opentelemetry.trace.Span` to wrap. + """ + def __init__(self, tracer, context, span): super().__init__(tracer, context) self._otel_span = span def unwrap(self): - """Returns the wrapped OpenTelemetry `Span` object.""" + """Returns the wrapped :class:`opentelemetry.trace.Span` object. + + Returns: + The :class:`opentelemetry.trace.Span` object wrapped by this + :class:`SpanShim`. + """ return self._otel_span def set_operation_name(self, operation_name): + """Implements the ``set_operation_name()`` method from the base class. + + Updates the name of the wrapped OpenTelemetry span. + + Returns: + Returns this :class:`SpanShim` instance to allow call chaining. + """ + self._otel_span.update_name(operation_name) return self def finish(self, finish_time=None): + """Implements the ``finish()`` method from the base class. + + Ends the OpenTelemetry span wrapped by this :class:`SpanShim`. + + If *finish_time* is provided, the time value is converted to the + OpenTelemetry time format (number of nanoseconds since the epoch, + expressed as an integer) and passed on to the OpenTelemetry tracer when + ending the OpenTelemetry span. If *finish_time* isn't provided, it is + up to the OpenTelemetry tracer implementation to generate a timestamp + when ending the span. + + Args: + finish_time(:obj:`float`, optional): An explicit finish time + expressed as the number of seconds since the epoch as returned + by :func:`time.time()`. Defaults to `None`. + """ + end_time = finish_time if end_time is not None: end_time = util.time_seconds_to_ns(finish_time) self._otel_span.end(end_time=end_time) def set_tag(self, key, value): + """Implements the ``set_tag()`` method from the base class. + + Sets an OpenTelemetry attribute on the wrapped OpenTelemetry span. + + Args: + key(:obj:`str`): A tag key. + value: A tag value. Can be one of :obj:`str`, :obj:`bool`, + :obj:`int`, :obj:`float` + + Returns: + Returns this :class:`SpanShim` instance to allow call chaining. + """ + self._otel_span.set_attribute(key, value) return self def log_kv(self, key_values, timestamp=None): + """Implements the ``log_kv()`` method from the base class. + + Logs an :class:`opentelemetry.trace.Event` for the wrapped + OpenTelemetry span. + + Note: + The OpenTracing API defines the values of *key_values* to be of any + type. However, the OpenTelemetry API requires that the values be + one of :obj:`str`, :obj:`bool`, :obj:`float`. Therefore, only these + types are supported as values. + + Args: + key_values(:obj:`dict`): A dict with :obj:`str` keys and values of + type :obj:`str`, :obj:`bool` or :obj:`float`. + + Returns: + Returns this :class:`SpanShim` instance to allow call chaining. + """ + if timestamp is not None: event_timestamp = util.time_seconds_to_ns(timestamp) else: @@ -89,6 +263,12 @@ def log_event(self, event, payload=None): super().log_event(event, payload=payload) def set_baggage_item(self, key, value): + """Implements the ``set_baggage_item()`` method from the base class. + + Warning: + Not implemented yet. + """ + logger.warning( "Calling unimplemented method set_baggage_item() on class %s", self.__class__.__name__, @@ -96,6 +276,12 @@ def set_baggage_item(self, key, value): # TODO: Implement. def get_baggage_item(self, key): + """Implements the ``get_baggage_item()`` method from the base class. + + Warning: + Not implemented yet. + """ + logger.warning( "Calling unimplemented method get_baggage_item() on class %s", self.__class__.__name__, @@ -105,18 +291,39 @@ def get_baggage_item(self, key): class ScopeShim(opentracing.Scope): """A `ScopeShim` wraps the OpenTelemetry functionality related to span - activation/deactivation while using OpenTracing `Scope` objects for - presentation. + activation/deactivation while using OpenTracing :class:`opentracing.Scope` + objects for presentation. + + Unlike other classes in this package, the `ScopeShim` class doesn't wrap an + OpenTelemetry class because OpenTelemetry doesn't have the notion of + "scope" (though it *does* have similar functionality). There are two ways to construct a `ScopeShim` object: using the default - initializer and using the `from_context_manager()` class method. + initializer and using the :meth:`from_context_manager()` class method. It is necessary to have both ways for constructing `ScopeShim` objects - because in some cases we need to create the object from a context manager, - in which case our only way of retrieving a `Span` object is by calling the - `__enter__()` method on the context manager, which makes the span active in - the OpenTelemetry tracer; whereas in other cases we need to accept a - `SpanShim` object and wrap it in a `ScopeShim`. + because in some cases we need to create the object from an OpenTelemetry + `Span` context manager (as returned by + :meth:`opentelemetry.trace.Tracer.use_span`), in which case our only way of + retrieving a `Span` object is by calling the ``__enter__()`` method on the + context manager, which makes the span active in the OpenTelemetry tracer; + whereas in other cases we need to accept a `SpanShim` object and wrap it in + a `ScopeShim`. The former is used mainly when the instrumentation code + retrieves the currently-active span using `ScopeManagerShim.active`. The + latter is mainly used when the instrumentation code activates a span using + :meth:`ScopeManagerShim.activate`. + + Args: + manager: The :class:`ScopeManagerShim` that created this + :class:`ScopeShim`. + span: The :class:`SpanShim` this :class:`ScopeShim` controls. + span_cm(:class:`contextlib.AbstractContextManager`, optional): A + Python context manager which yields an OpenTelemetry `Span` from + its ``__enter__()`` method. Used by :meth:`from_context_manager` to + store the context manager as an attribute so that it can later be + closed by calling its ``__exit__()`` method. Defaults to `None`. + + TODO: Is :class:`contextlib.AbstractContextManager` the correct type for *span_cm*? """ def __init__(self, manager, span, span_cm=None): @@ -127,8 +334,27 @@ def __init__(self, manager, span, span_cm=None): # need to get rid of `manager.tracer` for this. @classmethod def from_context_manager(cls, manager, span_cm): - """Constructs a `ScopeShim` from an OpenTelemetry `Span` context - manager (as returned by `Tracer.use_span()`). + """Constructs a :class:`ScopeShim` from an OpenTelemetry `Span` context + manager. + + The method extracts a `Span` object from the context manager by calling + the context manager's ``__enter__()`` method. This causes the span to + start in the OpenTelemetry tracer. + + Example usage:: + + span = otel_tracer.start_span("TestSpan") + span_cm = otel_tracer.use_span(span) + scope_shim = ScopeShim.from_context_manager( + scope_manager_shim, + span_cm=span_cm, + ) + + Args: + manager: The :class:`ScopeManagerShim` that created this + :class:`ScopeShim`. + span_cm: An OpenTelemetry `Span` context manager as returned by + :meth:`opentelemetry.trace.Tracer.use_span`. """ otel_span = span_cm.__enter__() @@ -137,6 +363,26 @@ def from_context_manager(cls, manager, span_cm): return cls(manager, span, span_cm) def close(self): + """Implements the `close()` method from :class:`opentracing.Scope`. + + Closes the `ScopeShim`. If the `ScopeShim` was created from a context + manager, calling this method sets the active span in the + OpenTelemetry tracer back to the span which was active before this + `ScopeShim` was created. In addition, if the span represented by this + `ScopeShim` was activated with the *finish_on_close* argument set to + `True`, calling this method will end the span. + + Warning: + In the current state of the implementation it is possible to create + a `ScopeShim` directly from a `SpanShim`, that is - without using + :meth:`from_context_manager()`. For that reason we need to be able + to end the span represented by the `ScopeShim` in this case, too. + Please note that closing a `ScopeShim` created this way (for + example as returned by :meth:`ScopeManagerShim.active`) **always + ends the associated span**, regardless of the value passed in + *finish_on_close* when activating the span. + """ + if self._span_cm is not None: # We don't have error information to pass to `__exit__()` so we # pass `None` in all arguments. If the OpenTelemetry tracer @@ -149,14 +395,44 @@ def close(self): class ScopeManagerShim(opentracing.ScopeManager): + """Implements :class:`opentracing.ScopeManager` by setting and getting the + active `Span` in the OpenTelemetry tracer. + + This class keeps a reference to a :class:`TracerShim` as an attribute. This + reference is used to communicate with the OpenTelemetry tracer. It is + necessary to have a reference to the :class:`TracerShim` rather than the + :class:`opentelemetry.trace.Tracer` wrapped by it because when constructing + a :class:`SpanShim` we need to pass a reference to a + :class:`opentracing.Tracer`. + + Args: + tracer: A :class:`TracerShim` to use for setting and getting active + span state. + """ + def __init__(self, tracer): - # The only thing the `__init__()` method on the base class does is + # The only thing the ``__init__()``` method on the base class does is # initialize `self._noop_span` and `self._noop_scope` with no-op # objects. Therefore, it doesn't seem useful to call it. # pylint: disable=super-init-not-called self._tracer = tracer def activate(self, span, finish_on_close): + """Implements the ``activate()`` method from the base class. + + Activates a :class:`SpanShim` and returns a :class:`ScopeShim` which + represents the active span. + + Args: + span: A :class:`SpanShim` to be activated. + finish_on_close(:obj:`bool`): Determines whether the OpenTelemetry + span should be ended when the returned :class:`ScopeShim` is + closed. + + Returns: + A :class:`ScopeShim` representing the activated span. + """ + span_cm = self._tracer.unwrap().use_span( span.unwrap(), end_on_exit=finish_on_close ) @@ -164,6 +440,23 @@ def activate(self, span, finish_on_close): @property def active(self): + """Implements the ``active`` property from the base class. + + Returns a :class:`ScopeShim` object representing the currently-active + span in the OpenTelemetry tracer. + + Returns: + A :class:`ScopeShim` representing the active span in the + OpenTelemetry tracer, or `None` if no span is currently active. + + Warning: + Calling :meth:`ScopeShim.close` on the :class:`ScopeShim` returned + by this property **always ends the corresponding span**, regardless + of the *finish_on_close* value used when activating the span. This + is a limitation of the current implementation of the OpenTracing + shim and is likely to be handled in future versions. + """ + span = self._tracer.unwrap().get_current_span() if span is None: return None @@ -179,10 +472,41 @@ def active(self): @property def tracer(self): + """Returns the :class:`TracerShim` reference used by this + :class:`ScopeManagerShim` for setting and getting the active span from + the OpenTelemetry tracer. + + Returns: + The :class:`TracerShim` used for setting and getting the active + span. + + Warning: + This property is *not* a part of the OpenTracing API. It used + internally by the current implementation of the OpenTracing shim + and will likely be removed in future versions. + """ + return self._tracer class TracerShim(opentracing.Tracer): + """Implements :class:`opentracing.Tracer` by wrapping a + :class:`opentelemetry.trace.Tracer` object. + + This wrapper class allows using an OpenTelemetry tracer as if it were an + OpenTracing tracer. It exposes the same methods as an "ordinary" + OpenTracing tracer, and uses OpenTelemetry transparently for performing the + actual tracing. + + This class depends on the *OpenTelemetry API*. Therefore, any + implementation of a :class:`opentelemetry.trace.Tracer` should work with + this class. + + Args: + tracer: A :class:`opentelemetry.trace.Tracer` to use for tracing. This + tracer will be invoked by the shim to create actual spans. + """ + def __init__(self, tracer): super().__init__(scope_manager=ScopeManagerShim(self)) self._otel_tracer = tracer @@ -192,7 +516,12 @@ def __init__(self, tracer): ) def unwrap(self): - """Returns the wrapped OpenTelemetry `Tracer` object.""" + """Returns the :class:`opentelemetry.trace.Tracer` object that is + wrapped by this :class:`TracerShim` and used for actual tracing. + + Returns: + The :class:`opentelemetry.trace.Tracer` used for actual tracing. + """ return self._otel_tracer @@ -206,6 +535,41 @@ def start_active_span( ignore_active_span=False, finish_on_close=True, ): + """Implements the ``start_active_span()`` method from the base class. + + Starts and activates a span. In terms of functionality, this method + behaves exactly like the same method on a "regular" OpenTracing tracer. + See :meth:`opentracing.Tracer.start_active_span` for more details. + + Args: + operation_name(:obj:`str`): Name of the operation represented by + the new span from the perspective of the current service. + child_of(:class:`SpanShim` or :class:`SpanContextShim`, optional): + A :class:`SpanShim` or :class:`SpanContextShim` representing + the parent in a "child of" reference. If specified, the + *references* parameter must be omitted. Defaults to `None`. + references(:obj:`list`, optional): A list of + :class:`opentracing.Reference` objects that identify one or + more parents of type :class:`SpanContextShim`. Defaults to + `None`. + tags(:obj:`dict`, optional): A dictionary of tags. The keys must be + of type :obj:`str`. The values may be one of :obj:`str`, + :obj:`bool`, :obj:`int`, :obj:`float`. Defaults to `None`. + start_time(:obj:`float`, optional): An explicit start time + expressed as the number of seconds since the epoch as returned + by :func:`time.time()`. Defaults to `None`. + ignore_active_span(:obj:`bool`, optional): Ignore the + currently-active span in the OpenTelemetry tracer and make the + created span the root span of a new trace. Defaults to `False`. + finish_on_close(:obj:`bool`, optional): Determines whether the + created span should end automatically when closing the returned + :class:`ScopeShim`. Defaults to `True`. + + Returns: + A :class:`ScopeShim` that is already activated by the + :class:`ScopeManagerShim`. + """ + span = self.start_span( operation_name=operation_name, child_of=child_of, @@ -225,6 +589,37 @@ def start_span( start_time=None, ignore_active_span=False, ): + """Implements the ``start_span()`` method from the base class. + + Starts a span. In terms of functionality, this method behaves exactly + like the same method on a "regular" OpenTracing tracer. See + :meth:`opentracing.Tracer.start_span` for more details. + + Args: + operation_name(:obj:`str`): Name of the operation represented by + the new span from the perspective of the current service. + child_of(:class:`SpanShim` or :class:`SpanContextShim`, optional): + A :class:`SpanShim` or :class:`SpanContextShim` representing + the parent in a "child of" reference. If specified, the + *references* parameter must be omitted. Defaults to `None`. + references(:obj:`list`, optional): A list of + :class:`opentracing.Reference` objects that identify one or + more parents of type :class:`SpanContextShim`. Defaults to + `None`. + tags(:obj:`dict`, optional): A dictionary of tags. The keys must be + of type :obj:`str`. The values may be one of :obj:`str`, + :obj:`bool`, :obj:`int`, :obj:`float`. Defaults to `None`. + start_time(:obj:`float`, optional): An explicit start time + expressed as the number of seconds since the epoch as returned + by :func:`time.time()`. Defaults to `None`. + ignore_active_span(:obj:`bool`, optional): Ignore the + currently-active span in the OpenTelemetry tracer and make the + created span the root span of a new trace. Defaults to `False`. + + Returns: + An already-started :class:`SpanShim` instance. + """ + # Use active span as parent when no explicit parent is specified. if not ignore_active_span and not child_of: child_of = self.active_span @@ -257,6 +652,9 @@ def start_span( return SpanShim(self, context, span) def inject(self, span_context, format, carrier): + """Implements the ``inject`` method from the base class.""" + + # TODO: Finish documentation. # pylint: disable=redefined-builtin # This implementation does not perform the injecting by itself but # uses the configured propagators in opentelemetry.propagators. @@ -271,6 +669,9 @@ def inject(self, span_context, format, carrier): ) def extract(self, format, carrier): + """Implements the ``extract`` method from the base class.""" + + # TODO: Finish documentation. # pylint: disable=redefined-builtin # This implementation does not perform the extracing by itself but # uses the configured propagators in opentelemetry.propagators. diff --git a/tox.ini b/tox.ini index f5624503b6a..9d8e679dfa0 100644 --- a/tox.ini +++ b/tox.ini @@ -155,6 +155,8 @@ deps = sphinx~=2.1 sphinx-rtd-theme~=0.4 sphinx-autodoc-typehints~=1.10.2 + opentracing~=2.2.0 + Deprecated>=1.2.6 changedir = docs From 5f311e0394fa1ebdc332dc62bc6cff3524ebf855 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Neum=C3=BCller?= Date: Wed, 27 Nov 2019 02:02:10 +0100 Subject: [PATCH 11/14] Fix example tests on Win32 (#302) --- examples/basic_tracer/tests/test_tracer.py | 5 ++++- examples/http/tests/test_http.py | 7 +++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/examples/basic_tracer/tests/test_tracer.py b/examples/basic_tracer/tests/test_tracer.py index d5922d6086b..4bd1a25c0ea 100644 --- a/examples/basic_tracer/tests/test_tracer.py +++ b/examples/basic_tracer/tests/test_tracer.py @@ -13,6 +13,7 @@ # limitations under the License. import os import subprocess +import sys import unittest @@ -20,7 +21,9 @@ class TestBasicTracerExample(unittest.TestCase): def test_basic_tracer(self): dirpath = os.path.dirname(os.path.realpath(__file__)) test_script = "{}/../tracer.py".format(dirpath) - output = subprocess.check_output(test_script).decode() + output = subprocess.check_output( + (sys.executable, test_script) + ).decode() self.assertIn('name="foo"', output) self.assertIn('name="bar"', output) diff --git a/examples/http/tests/test_http.py b/examples/http/tests/test_http.py index 7aa3f93c153..0ae81fe7de7 100644 --- a/examples/http/tests/test_http.py +++ b/examples/http/tests/test_http.py @@ -13,6 +13,7 @@ # limitations under the License. import os import subprocess +import sys import unittest from time import sleep @@ -22,13 +23,15 @@ class TestHttpExample(unittest.TestCase): def setup_class(cls): dirpath = os.path.dirname(os.path.realpath(__file__)) server_script = "{}/../server.py".format(dirpath) - cls.server = subprocess.Popen([server_script]) + cls.server = subprocess.Popen([sys.executable, server_script]) sleep(1) def test_http(self): dirpath = os.path.dirname(os.path.realpath(__file__)) test_script = "{}/../tracer_client.py".format(dirpath) - output = subprocess.check_output(test_script).decode() + output = subprocess.check_output( + (sys.executable, test_script) + ).decode() self.assertIn('name="/"', output) @classmethod From a42b0637c87ce07108d8cfa2bdb9e5de5e515819 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mauricio=20V=C3=A1squez?= Date: Tue, 26 Nov 2019 20:59:13 -0500 Subject: [PATCH 12/14] SDK: shut down span processors automatically (#280) The BatchExportSpanProcessor is an asynchronous span processor that uses a worker thread to call the different exporters. Before this commit applications had to shut down the span processor explicitely to guarantee that all the spans were summited to the exporters, this was not very intuitive for the users. This commit removes that limitation by implementing the tracer's __del__ method and an atexit hook. According to __del__'s documentation [1] it is possible that sometimes it's not called, for that reason the atexit hook is also used to guarantee that the processor is shut down in all the cases. [1] https://docs.python.org/3/reference/datamodel.html#object.__del__ --- examples/basic_tracer/tracer.py | 2 - examples/http/server.py | 1 - examples/http/tracer_client.py | 1 - ext/opentelemetry-ext-jaeger/README.rst | 4 - .../examples/jaeger_exporter_example.py | 4 - .../src/opentelemetry/sdk/trace/__init__.py | 14 ++++ .../tests/trace/export/test_export.py | 9 +++ opentelemetry-sdk/tests/trace/test_trace.py | 73 +++++++++++++++++++ 8 files changed, 96 insertions(+), 12 deletions(-) diff --git a/examples/basic_tracer/tracer.py b/examples/basic_tracer/tracer.py index c99141f5aac..69ee0a1602d 100755 --- a/examples/basic_tracer/tracer.py +++ b/examples/basic_tracer/tracer.py @@ -48,5 +48,3 @@ with tracer.start_as_current_span("bar"): with tracer.start_as_current_span("baz"): print(Context) - -span_processor.shutdown() diff --git a/examples/http/server.py b/examples/http/server.py index 82cb070c272..63973da74d4 100755 --- a/examples/http/server.py +++ b/examples/http/server.py @@ -65,4 +65,3 @@ def hello(): if __name__ == "__main__": app.run(debug=True) - span_processor.shutdown() diff --git a/examples/http/tracer_client.py b/examples/http/tracer_client.py index 671d1d71f91..dde25b9bb34 100755 --- a/examples/http/tracer_client.py +++ b/examples/http/tracer_client.py @@ -51,4 +51,3 @@ # Spans and propagating context as appropriate. http_requests.enable(tracer) response = requests.get(url="http://127.0.0.1:5000/") -span_processor.shutdown() diff --git a/ext/opentelemetry-ext-jaeger/README.rst b/ext/opentelemetry-ext-jaeger/README.rst index a03d1b0c1e0..742ec6220fe 100644 --- a/ext/opentelemetry-ext-jaeger/README.rst +++ b/ext/opentelemetry-ext-jaeger/README.rst @@ -61,10 +61,6 @@ gRPC is still not supported by this implementation. with tracer.start_as_current_span('foo'): print('Hello world!') - # shutdown the span processor - # TODO: this has to be improved so user doesn't need to call it manually - span_processor.shutdown() - The `examples <./examples>`_ folder contains more elaborated examples. References diff --git a/ext/opentelemetry-ext-jaeger/examples/jaeger_exporter_example.py b/ext/opentelemetry-ext-jaeger/examples/jaeger_exporter_example.py index 89d93809e40..d459855dcf2 100644 --- a/ext/opentelemetry-ext-jaeger/examples/jaeger_exporter_example.py +++ b/ext/opentelemetry-ext-jaeger/examples/jaeger_exporter_example.py @@ -46,7 +46,3 @@ time.sleep(0.2) time.sleep(0.1) - -# shutdown the span processor -# TODO: this has to be improved so user doesn't need to call it manually -span_processor.shutdown() diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py b/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py index 9b55c39567f..c6fe5829cce 100644 --- a/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py +++ b/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py @@ -13,6 +13,7 @@ # limitations under the License. +import atexit import logging import random import threading @@ -296,12 +297,15 @@ class Tracer(trace_api.Tracer): Args: name: The name of the tracer. + shutdown_on_exit: Register an atexit hook to shut down the tracer when + the application exits. """ def __init__( self, name: str = "", sampler: sampling.Sampler = trace_api.sampling.ALWAYS_ON, + shutdown_on_exit: bool = True, ) -> None: slot_name = "current_span" if name: @@ -309,6 +313,9 @@ def __init__( self._current_span_slot = Context.register_slot(slot_name) self._active_span_processor = MultiSpanProcessor() self.sampler = sampler + self._atexit_handler = None + if shutdown_on_exit: + self._atexit_handler = atexit.register(self.shutdown) def get_current_span(self): """See `opentelemetry.trace.Tracer.get_current_span`.""" @@ -426,5 +433,12 @@ def add_span_processor(self, span_processor: SpanProcessor) -> None: # thread safe self._active_span_processor.add_span_processor(span_processor) + def shutdown(self): + """Shut down the span processors added to the tracer.""" + self._active_span_processor.shutdown() + if self._atexit_handler is not None: + atexit.unregister(self._atexit_handler) + self._atexit_handler = None + tracer = Tracer() diff --git a/opentelemetry-sdk/tests/trace/export/test_export.py b/opentelemetry-sdk/tests/trace/export/test_export.py index d45afc299a2..9ad65aea881 100644 --- a/opentelemetry-sdk/tests/trace/export/test_export.py +++ b/opentelemetry-sdk/tests/trace/export/test_export.py @@ -27,6 +27,7 @@ class MySpanExporter(export.SpanExporter): def __init__(self, destination, max_export_batch_size=None): self.destination = destination self.max_export_batch_size = max_export_batch_size + self.is_shutdown = False def export(self, spans: trace.Span) -> export.SpanExportResult: if ( @@ -37,6 +38,9 @@ def export(self, spans: trace.Span) -> export.SpanExportResult: self.destination.extend(span.name for span in spans) return export.SpanExportResult.SUCCESS + def shutdown(self): + self.is_shutdown = True + class TestSimpleExportSpanProcessor(unittest.TestCase): def test_simple_span_processor(self): @@ -55,6 +59,9 @@ def test_simple_span_processor(self): self.assertListEqual(["xxx", "bar", "foo"], spans_names_list) + span_processor.shutdown() + self.assertTrue(my_exporter.is_shutdown) + def test_simple_span_processor_no_context(self): """Check that we process spans that are never made active. @@ -102,6 +109,8 @@ def test_batch_span_processor(self): span_processor.shutdown() self.assertListEqual(span_names, spans_names_list) + self.assertTrue(my_exporter.is_shutdown) + def test_batch_span_processor_lossless(self): """Test that no spans are lost when sending max_queue_size spans""" spans_names_list = [] diff --git a/opentelemetry-sdk/tests/trace/test_trace.py b/opentelemetry-sdk/tests/trace/test_trace.py index e797b1c8908..e8144c93731 100644 --- a/opentelemetry-sdk/tests/trace/test_trace.py +++ b/opentelemetry-sdk/tests/trace/test_trace.py @@ -12,6 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +import shutil +import subprocess import unittest from unittest import mock @@ -26,6 +28,77 @@ def test_extends_api(self): tracer = trace.Tracer() self.assertIsInstance(tracer, trace_api.Tracer) + def test_shutdown(self): + tracer = trace.Tracer() + + mock_processor1 = mock.Mock(spec=trace.SpanProcessor) + tracer.add_span_processor(mock_processor1) + + mock_processor2 = mock.Mock(spec=trace.SpanProcessor) + tracer.add_span_processor(mock_processor2) + + tracer.shutdown() + + self.assertEqual(mock_processor1.shutdown.call_count, 1) + self.assertEqual(mock_processor2.shutdown.call_count, 1) + + shutdown_python_code = """ +import atexit +from unittest import mock + +from opentelemetry.sdk import trace + +mock_processor = mock.Mock(spec=trace.SpanProcessor) + +def print_shutdown_count(): + print(mock_processor.shutdown.call_count) + +# atexit hooks are called in inverse order they are added, so do this before +# creating the tracer +atexit.register(print_shutdown_count) + +tracer = trace.Tracer({tracer_parameters}) +tracer.add_span_processor(mock_processor) + +{tracer_shutdown} +""" + + def run_general_code(shutdown_on_exit, explicit_shutdown): + tracer_parameters = "" + tracer_shutdown = "" + + if not shutdown_on_exit: + tracer_parameters = "shutdown_on_exit=False" + + if explicit_shutdown: + tracer_shutdown = "tracer.shutdown()" + + return subprocess.check_output( + [ + # use shutil to avoid calling python outside the + # virtualenv on windows. + shutil.which("python"), + "-c", + shutdown_python_code.format( + tracer_parameters=tracer_parameters, + tracer_shutdown=tracer_shutdown, + ), + ] + ) + + # test default shutdown_on_exit (True) + out = run_general_code(True, False) + self.assertTrue(out.startswith(b"1")) + + # test that shutdown is called only once even if Tracer.shutdown is + # called explicitely + out = run_general_code(True, True) + self.assertTrue(out.startswith(b"1")) + + # test shutdown_on_exit=False + out = run_general_code(False, False) + self.assertTrue(out.startswith(b"0")) + class TestTracerSampling(unittest.TestCase): def test_default_sampler(self): From 2bb6a177d90e7862a949039a3aaaf1798b9eea76 Mon Sep 17 00:00:00 2001 From: Diego Hurtado Date: Wed, 27 Nov 2019 13:40:10 -0600 Subject: [PATCH 13/14] Fix isort issues (#309) --- .isort.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/.isort.cfg b/.isort.cfg index 96011ae93de..31620ab99b6 100644 --- a/.isort.cfg +++ b/.isort.cfg @@ -14,3 +14,4 @@ line_length=79 multi_line_output=3 skip=target skip_glob=ext/opentelemetry-ext-jaeger/src/opentelemetry/ext/jaeger/gen/* +known_first_party=opentelemetry From d3bb2280daed284e7adf530a978903a1bbf503c9 Mon Sep 17 00:00:00 2001 From: alrex Date: Wed, 27 Nov 2019 14:19:17 -0800 Subject: [PATCH 14/14] Always recreate lint env (#310) --- tox.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/tox.ini b/tox.ini index 9d8e679dfa0..7dc2eb6dffb 100644 --- a/tox.ini +++ b/tox.ini @@ -104,6 +104,7 @@ commands = [testenv:lint] basepython: python3.7 +recreate = True deps = pylint~=2.3 flake8~=3.7

mYC(BKw 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