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/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/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 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..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,6 +21,7 @@ from ddtrace.span import Span as DatadogSpan import opentelemetry.trace as trace_api +from opentelemetry.sdk.trace import sampling from opentelemetry.sdk.trace.export import SpanExporter, SpanExportResult from opentelemetry.trace.status import StatusCanonicalCode @@ -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/exporter/opentelemetry-exporter-datadog/tests/test_datadog_exporter.py b/exporter/opentelemetry-exporter-datadog/tests/test_datadog_exporter.py index 45ce9417e1a..47a0280c0a3 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 @@ -497,7 +498,7 @@ def test_sampling_rate(self): is_remote=False, trace_flags=trace_api.TraceFlags(trace_api.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-api/CHANGELOG.md b/opentelemetry-api/CHANGELOG.md index 2defb0a59a0..d5a69d4db49 100644 --- a/opentelemetry-api/CHANGELOG.md +++ b/opentelemetry-api/CHANGELOG.md @@ -2,6 +2,9 @@ ## Unreleased +- Moved samplers from API to SDK + ([#1023](https://github.com/open-telemetry/opentelemetry-python/pull/1023)) + ## Version 0.12b0 Released 2020-08-14 diff --git a/opentelemetry-sdk/CHANGELOG.md b/opentelemetry-sdk/CHANGELOG.md index a5fe59878bd..33d9d6e2e6e 100644 --- a/opentelemetry-sdk/CHANGELOG.md +++ b/opentelemetry-sdk/CHANGELOG.md @@ -2,11 +2,15 @@ ## Unreleased +- Moved samplers from API to SDK + ([#1023](https://github.com/open-telemetry/opentelemetry-python/pull/1023)) + ## 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 7a53fbdae34..034acd0f440 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 @@ -869,7 +870,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 98% rename from opentelemetry-api/src/opentelemetry/trace/sampling.py rename to opentelemetry-sdk/src/opentelemetry/sdk/trace/sampling.py index 868678b05c0..4429e33a48a 100644 --- a/opentelemetry-api/src/opentelemetry/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) 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) diff --git a/opentelemetry-sdk/tests/trace/test_trace.py b/opentelemetry-sdk/tests/trace/test_trace.py index b494ab8ee2f..9915860cf05 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