From 3f29a39bc9706399b843f74d580a4c9555372958 Mon Sep 17 00:00:00 2001 From: Leighton Chen Date: Wed, 19 Aug 2020 12:47:37 -0700 Subject: [PATCH 1/7] sampling --- docs/examples/basic_tracer/basic_trace.py | 9 ++++++--- opentelemetry-api/CHANGELOG.md | 3 +++ opentelemetry-sdk/CHANGELOG.md | 4 ++++ .../src/opentelemetry/sdk/trace/__init__.py | 5 +++-- .../src/opentelemetry/sdk}/trace/sampling.py | 0 5 files changed, 16 insertions(+), 5 deletions(-) rename {opentelemetry-api/src/opentelemetry => opentelemetry-sdk/src/opentelemetry/sdk}/trace/sampling.py (100%) diff --git a/docs/examples/basic_tracer/basic_trace.py b/docs/examples/basic_tracer/basic_trace.py index f7df424da3b..73b8f1f50d4 100644 --- a/docs/examples/basic_tracer/basic_trace.py +++ b/docs/examples/basic_tracer/basic_trace.py @@ -4,11 +4,14 @@ ConsoleSpanExporter, SimpleExportSpanProcessor, ) +from opentelemetry.trace.sampling import ProbabilitySampler, ALWAYS_OFF, ALWAYS_ON -trace.set_tracer_provider(TracerProvider()) +tracer_provider = TracerProvider(sampler=ProbabilitySampler(0.2)) +trace.set_tracer_provider(tracer_provider) trace.get_tracer_provider().add_span_processor( SimpleExportSpanProcessor(ConsoleSpanExporter()) ) tracer = trace.get_tracer(__name__) -with tracer.start_as_current_span("foo"): - print("Hello world!") +with tracer.start_as_current_span("outer"): + with tracer.start_as_current_span("inner"): + print("Hello world!") diff --git a/opentelemetry-api/CHANGELOG.md b/opentelemetry-api/CHANGELOG.md index 2defb0a59a0..6b71f88ffea 100644 --- a/opentelemetry-api/CHANGELOG.md +++ b/opentelemetry-api/CHANGELOG.md @@ -2,6 +2,9 @@ ## Unreleased +- Moved samplers from API to SDK + ([#1020](https://github.com/open-telemetry/opentelemetry-python/pull/1020)) + ## Version 0.12b0 Released 2020-08-14 diff --git a/opentelemetry-sdk/CHANGELOG.md b/opentelemetry-sdk/CHANGELOG.md index a5fe59878bd..727f17a5518 100644 --- a/opentelemetry-sdk/CHANGELOG.md +++ b/opentelemetry-sdk/CHANGELOG.md @@ -2,11 +2,15 @@ ## Unreleased +- Moved samplers from API to SDK + ([#1020](https://github.com/open-telemetry/opentelemetry-python/pull/1020)) + ## Version 0.12b0 Released 2020-08-14 - Changed default Sampler to `ParentOrElse(AlwaysOn)` + ([#960](https://github.com/open-telemetry/opentelemetry-python/pull/960)) - Update environment variable names, prefix changed from `OPENTELEMETRY` to `OTEL` ([#904](https://github.com/open-telemetry/opentelemetry-python/pull/904)) - Implement Views in metrics SDK diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py b/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py index 65a60025c89..a72baceb2d5 100644 --- a/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py +++ b/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py @@ -40,9 +40,10 @@ from opentelemetry import trace as trace_api from opentelemetry.sdk import util from opentelemetry.sdk.resources import Resource +from opentelemetry.sdk.trace import sampling from opentelemetry.sdk.util import BoundedDict, BoundedList from opentelemetry.sdk.util.instrumentation import InstrumentationInfo -from opentelemetry.trace import SpanContext, sampling +from opentelemetry.trace import SpanContext from opentelemetry.trace.propagation import SPAN_KEY from opentelemetry.trace.status import Status, StatusCanonicalCode from opentelemetry.util import time_ns, types @@ -867,7 +868,7 @@ def use_span( class TracerProvider(trace_api.TracerProvider): def __init__( self, - sampler: sampling.Sampler = trace_api.sampling.DEFAULT_ON, + sampler: sampling.Sampler = sampling.DEFAULT_ON, resource: Resource = Resource.create_empty(), shutdown_on_exit: bool = True, active_span_processor: Union[ diff --git a/opentelemetry-api/src/opentelemetry/trace/sampling.py b/opentelemetry-sdk/src/opentelemetry/sdk/trace/sampling.py similarity index 100% rename from opentelemetry-api/src/opentelemetry/trace/sampling.py rename to opentelemetry-sdk/src/opentelemetry/sdk/trace/sampling.py From d26aa61c5021af89e01a3e14e99ba6d65e5499eb Mon Sep 17 00:00:00 2001 From: Leighton Chen Date: Wed, 19 Aug 2020 13:05:19 -0700 Subject: [PATCH 2/7] lint --- docs/examples/basic_tracer/basic_trace.py | 9 +++------ .../src/opentelemetry/exporter/datadog/exporter.py | 3 ++- opentelemetry-sdk/tests/trace/test_trace.py | 2 +- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/docs/examples/basic_tracer/basic_trace.py b/docs/examples/basic_tracer/basic_trace.py index 73b8f1f50d4..f7df424da3b 100644 --- a/docs/examples/basic_tracer/basic_trace.py +++ b/docs/examples/basic_tracer/basic_trace.py @@ -4,14 +4,11 @@ ConsoleSpanExporter, SimpleExportSpanProcessor, ) -from opentelemetry.trace.sampling import ProbabilitySampler, ALWAYS_OFF, ALWAYS_ON -tracer_provider = TracerProvider(sampler=ProbabilitySampler(0.2)) -trace.set_tracer_provider(tracer_provider) +trace.set_tracer_provider(TracerProvider()) trace.get_tracer_provider().add_span_processor( SimpleExportSpanProcessor(ConsoleSpanExporter()) ) tracer = trace.get_tracer(__name__) -with tracer.start_as_current_span("outer"): - with tracer.start_as_current_span("inner"): - print("Hello world!") +with tracer.start_as_current_span("foo"): + print("Hello world!") diff --git a/exporter/opentelemetry-exporter-datadog/src/opentelemetry/exporter/datadog/exporter.py b/exporter/opentelemetry-exporter-datadog/src/opentelemetry/exporter/datadog/exporter.py index 49dab7c6866..77d4bfda328 100644 --- a/exporter/opentelemetry-exporter-datadog/src/opentelemetry/exporter/datadog/exporter.py +++ b/exporter/opentelemetry-exporter-datadog/src/opentelemetry/exporter/datadog/exporter.py @@ -22,6 +22,7 @@ import opentelemetry.trace as trace_api from opentelemetry.sdk.trace.export import SpanExporter, SpanExportResult +from opentelemetry.sdk.trace import sampling from opentelemetry.trace.status import StatusCanonicalCode # pylint:disable=relative-beyond-top-level @@ -246,7 +247,7 @@ def _get_sampling_rate(span): return ( span.sampler.rate if ctx.trace_flags.sampled - and isinstance(span.sampler, trace_api.sampling.ProbabilitySampler) + and isinstance(span.sampler, sampling.ProbabilitySampler) else None ) diff --git a/opentelemetry-sdk/tests/trace/test_trace.py b/opentelemetry-sdk/tests/trace/test_trace.py index 56bb9cfa574..d9465cb0d47 100644 --- a/opentelemetry-sdk/tests/trace/test_trace.py +++ b/opentelemetry-sdk/tests/trace/test_trace.py @@ -20,8 +20,8 @@ from opentelemetry import trace as trace_api from opentelemetry.sdk import resources, trace +from opentelemetry.sdk.trace import sampling from opentelemetry.sdk.util.instrumentation import InstrumentationInfo -from opentelemetry.trace import sampling from opentelemetry.trace.status import StatusCanonicalCode from opentelemetry.util import time_ns From b0342b0c3d746a821681ce0e946a626c54f36d88 Mon Sep 17 00:00:00 2001 From: Leighton Chen Date: Wed, 19 Aug 2020 13:20:46 -0700 Subject: [PATCH 3/7] test --- .../src/opentelemetry/exporter/datadog/exporter.py | 2 +- .../tests/trace/test_sampling.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename {opentelemetry-api => opentelemetry-sdk}/tests/trace/test_sampling.py (99%) diff --git a/exporter/opentelemetry-exporter-datadog/src/opentelemetry/exporter/datadog/exporter.py b/exporter/opentelemetry-exporter-datadog/src/opentelemetry/exporter/datadog/exporter.py index 77d4bfda328..c23288442dc 100644 --- a/exporter/opentelemetry-exporter-datadog/src/opentelemetry/exporter/datadog/exporter.py +++ b/exporter/opentelemetry-exporter-datadog/src/opentelemetry/exporter/datadog/exporter.py @@ -21,8 +21,8 @@ from ddtrace.span import Span as DatadogSpan import opentelemetry.trace as trace_api -from opentelemetry.sdk.trace.export import SpanExporter, SpanExportResult from opentelemetry.sdk.trace import sampling +from opentelemetry.sdk.trace.export import SpanExporter, SpanExportResult from opentelemetry.trace.status import StatusCanonicalCode # pylint:disable=relative-beyond-top-level diff --git a/opentelemetry-api/tests/trace/test_sampling.py b/opentelemetry-sdk/tests/trace/test_sampling.py similarity index 99% rename from opentelemetry-api/tests/trace/test_sampling.py rename to opentelemetry-sdk/tests/trace/test_sampling.py index 0be222f3dc0..a198bd32965 100644 --- a/opentelemetry-api/tests/trace/test_sampling.py +++ b/opentelemetry-sdk/tests/trace/test_sampling.py @@ -16,7 +16,7 @@ import unittest from opentelemetry import trace -from opentelemetry.trace import sampling +from opentelemetry.sdk.trace import sampling TO_DEFAULT = trace.TraceFlags(trace.TraceFlags.DEFAULT) TO_SAMPLED = trace.TraceFlags(trace.TraceFlags.SAMPLED) From 6800987609437b8258f7323ed949a356fbc580cf Mon Sep 17 00:00:00 2001 From: Leighton Chen Date: Wed, 19 Aug 2020 13:34:16 -0700 Subject: [PATCH 4/7] docs --- docs/api/trace.sampling.rst | 7 ------- .../tests/test_datadog_exporter.py | 5 +++-- opentelemetry-sdk/src/opentelemetry/sdk/trace/sampling.py | 2 +- 3 files changed, 4 insertions(+), 10 deletions(-) delete mode 100644 docs/api/trace.sampling.rst diff --git a/docs/api/trace.sampling.rst b/docs/api/trace.sampling.rst deleted file mode 100644 index 6280fd1d11b..00000000000 --- a/docs/api/trace.sampling.rst +++ /dev/null @@ -1,7 +0,0 @@ -Sampling Traces -=============== - -.. automodule:: opentelemetry.trace.sampling - :members: - :undoc-members: - :show-inheritance: diff --git a/exporter/opentelemetry-exporter-datadog/tests/test_datadog_exporter.py b/exporter/opentelemetry-exporter-datadog/tests/test_datadog_exporter.py index 45ce9417e1a..5d9209ee7c2 100644 --- a/exporter/opentelemetry-exporter-datadog/tests/test_datadog_exporter.py +++ b/exporter/opentelemetry-exporter-datadog/tests/test_datadog_exporter.py @@ -23,6 +23,7 @@ from opentelemetry import trace as trace_api from opentelemetry.exporter import datadog from opentelemetry.sdk import trace +from opentelemetry.sdk.trace import sampling from opentelemetry.sdk.util.instrumentation import InstrumentationInfo @@ -495,9 +496,9 @@ def test_sampling_rate(self): trace_id=0x000000000000000000000000DEADBEEF, span_id=0x34BF92DEEFC58C92, is_remote=False, - trace_flags=trace_api.TraceFlags(trace_api.TraceFlags.SAMPLED), + trace_flags=sampling.TraceFlags(sampling.TraceFlags.SAMPLED), ) - sampler = trace_api.sampling.ProbabilitySampler(0.5) + sampler = sampling.ProbabilitySampler(0.5) span = trace.Span( name="sampled", context=context, parent=None, sampler=sampler diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/trace/sampling.py b/opentelemetry-sdk/src/opentelemetry/sdk/trace/sampling.py index 868678b05c0..4429e33a48a 100644 --- a/opentelemetry-sdk/src/opentelemetry/sdk/trace/sampling.py +++ b/opentelemetry-sdk/src/opentelemetry/sdk/trace/sampling.py @@ -36,12 +36,12 @@ .. code:: python from opentelemetry import trace - from opentelemetry.trace.sampling import ProbabilitySampler from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import ( ConsoleSpanExporter, SimpleExportSpanProcessor, ) + from opentelemetry.sdk.trace.sampling import ProbabilitySampler # sample 1 in every 1000 traces sampler = ProbabilitySampler(1/1000) From 3f92e768bb4be166134467073443819522dc4dcc Mon Sep 17 00:00:00 2001 From: Leighton Chen Date: Wed, 19 Aug 2020 13:48:17 -0700 Subject: [PATCH 5/7] trace --- docs/api/trace.rst | 1 - .../tests/test_datadog_exporter.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/api/trace.rst b/docs/api/trace.rst index 411e31023ec..65d9b4d8c88 100644 --- a/docs/api/trace.rst +++ b/docs/api/trace.rst @@ -6,7 +6,6 @@ Submodules .. toctree:: - trace.sampling trace.status trace.span diff --git a/exporter/opentelemetry-exporter-datadog/tests/test_datadog_exporter.py b/exporter/opentelemetry-exporter-datadog/tests/test_datadog_exporter.py index 5d9209ee7c2..47a0280c0a3 100644 --- a/exporter/opentelemetry-exporter-datadog/tests/test_datadog_exporter.py +++ b/exporter/opentelemetry-exporter-datadog/tests/test_datadog_exporter.py @@ -496,7 +496,7 @@ def test_sampling_rate(self): trace_id=0x000000000000000000000000DEADBEEF, span_id=0x34BF92DEEFC58C92, is_remote=False, - trace_flags=sampling.TraceFlags(sampling.TraceFlags.SAMPLED), + trace_flags=trace_api.TraceFlags(trace_api.TraceFlags.SAMPLED), ) sampler = sampling.ProbabilitySampler(0.5) From 52047a5ae474188ce022b28e4dd41ffd61d5469e Mon Sep 17 00:00:00 2001 From: Leighton Chen Date: Wed, 19 Aug 2020 16:46:08 -0700 Subject: [PATCH 6/7] docs --- docs/sdk/trace.rst | 1 + docs/sdk/trace.sampling.rst | 7 +++++++ 2 files changed, 8 insertions(+) create mode 100644 docs/sdk/trace.sampling.rst diff --git a/docs/sdk/trace.rst b/docs/sdk/trace.rst index ce06fb4abb0..0b53444e3bf 100644 --- a/docs/sdk/trace.rst +++ b/docs/sdk/trace.rst @@ -7,6 +7,7 @@ Submodules .. toctree:: trace.export + trace.sampling util.instrumentation .. automodule:: opentelemetry.sdk.trace diff --git a/docs/sdk/trace.sampling.rst b/docs/sdk/trace.sampling.rst new file mode 100644 index 00000000000..f9c2fffa253 --- /dev/null +++ b/docs/sdk/trace.sampling.rst @@ -0,0 +1,7 @@ +opentelemetry.sdk.trace.sampling +========================================== + +.. automodule:: opentelemetry.sdk.trace.sampling + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file From 7607ff724cd1e49bf29d3410861b18d43a087abf Mon Sep 17 00:00:00 2001 From: Leighton Chen Date: Wed, 19 Aug 2020 17:11:16 -0700 Subject: [PATCH 7/7] changelog --- opentelemetry-api/CHANGELOG.md | 2 +- opentelemetry-sdk/CHANGELOG.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/opentelemetry-api/CHANGELOG.md b/opentelemetry-api/CHANGELOG.md index 6b71f88ffea..d5a69d4db49 100644 --- a/opentelemetry-api/CHANGELOG.md +++ b/opentelemetry-api/CHANGELOG.md @@ -3,7 +3,7 @@ ## Unreleased - Moved samplers from API to SDK - ([#1020](https://github.com/open-telemetry/opentelemetry-python/pull/1020)) + ([#1023](https://github.com/open-telemetry/opentelemetry-python/pull/1023)) ## Version 0.12b0 diff --git a/opentelemetry-sdk/CHANGELOG.md b/opentelemetry-sdk/CHANGELOG.md index 727f17a5518..33d9d6e2e6e 100644 --- a/opentelemetry-sdk/CHANGELOG.md +++ b/opentelemetry-sdk/CHANGELOG.md @@ -3,7 +3,7 @@ ## Unreleased - Moved samplers from API to SDK - ([#1020](https://github.com/open-telemetry/opentelemetry-python/pull/1020)) + ([#1023](https://github.com/open-telemetry/opentelemetry-python/pull/1023)) ## Version 0.12b0