Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move idsgenerator from api into sdk package #1514

Merged
merged 5 commits into from
Jan 11, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ env:
# Otherwise, set variable to the commit of your branch on
# opentelemetry-python-contrib which is compatible with these Core repo
# changes.
CONTRIB_REPO_SHA: master
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I presume this needs to be switched back in lockstep with the opentelemetry-contrib changes?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't think so. The builds will keep passing until a new change that affects both repos needs to be made.

CONTRIB_REPO_SHA: 32cac7a9ff6c831aa0e9514bb38c430fce819141

jobs:
build:
Expand Down
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
([#1285](https://github.com/open-telemetry/opentelemetry-python/pull/1285))
- Added `__repr__` for `DefaultSpan`, added `trace_flags` to `__repr__` of
`SpanContext` ([#1485](https://github.com/open-telemetry/opentelemetry-python/pull/1485)])

### Changed
- `opentelemetry-exporter-zipkin` Updated zipkin exporter status code and error tag
([#1486](https://github.com/open-telemetry/opentelemetry-python/pull/1486))
Expand All @@ -46,6 +47,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
([#1507](https://github.com/open-telemetry/opentelemetry-python/pull/1507))
- `opentelemetry-exporter-jaeger` Updated Jaeger exporter status code tag
([#1488](https://github.com/open-telemetry/opentelemetry-python/pull/1488))
- `opentelemetry-api` `opentelemety-sdk` Moved `idsgenerator` into sdk
([#1514](https://github.com/open-telemetry/opentelemetry-python/pull/1514))

## [0.16b1](https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.16b1) - 2020-11-26
### Added
Expand Down
7 changes: 0 additions & 7 deletions docs/api/trace.ids_generator.rst

This file was deleted.

1 change: 0 additions & 1 deletion docs/api/trace.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ Submodules

trace.status
trace.span
trace.ids_generator

Module contents
---------------
Expand Down
7 changes: 7 additions & 0 deletions docs/sdk/trace.ids_generator.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
opentelemetry.sdk.trace.ids_generator
=====================================

.. automodule:: opentelemetry.sdk.trace.ids_generator
:members:
:undoc-members:
:show-inheritance:
3 changes: 2 additions & 1 deletion docs/sdk/trace.rst
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
opentelemetry.sdk.trace package
==========================================
===============================

Submodules
----------

.. toctree::

trace.export
trace.ids_generator
trace.sampling
util.instrumentation

Expand Down
2 changes: 0 additions & 2 deletions opentelemetry-api/setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,6 @@ opentelemetry_tracer_provider =
opentelemetry_propagator =
tracecontext = opentelemetry.trace.propagation.tracecontext:TraceContextTextMapPropagator
baggage = opentelemetry.baggage.propagation:BaggagePropagator
opentelemetry_ids_generator =
random = opentelemetry.trace.ids_generator:RandomIdsGenerator

[options.extras_require]
test =
3 changes: 0 additions & 3 deletions opentelemetry-api/src/opentelemetry/trace/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,6 @@
from logging import getLogger

from opentelemetry.context.context import Context
from opentelemetry.trace.ids_generator import IdsGenerator, RandomIdsGenerator
from opentelemetry.trace.propagation import (
get_current_span,
set_span_in_context,
Expand Down Expand Up @@ -459,7 +458,6 @@ def get_tracer_provider() -> TracerProvider:
__all__ = [
"DEFAULT_TRACE_OPTIONS",
"DEFAULT_TRACE_STATE",
"IdsGenerator",
"INVALID_SPAN",
"INVALID_SPAN_CONTEXT",
"INVALID_SPAN_ID",
Expand All @@ -469,7 +467,6 @@ def get_tracer_provider() -> TracerProvider:
"DefaultTracerProvider",
"Link",
"LinkBase",
"RandomIdsGenerator",
"Span",
"SpanContext",
"SpanKind",
Expand Down
2 changes: 2 additions & 0 deletions opentelemetry-sdk/setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ opentelemetry_exporter =
console_metrics = opentelemetry.sdk.metrics.export:ConsoleMetricsExporter
opentelemetry_configurator =
sdk_configurator = opentelemetry.sdk.configuration:Configurator
opentelemetry_ids_generator =
random = opentelemetry.sdk.trace.ids_generator:RandomIdsGenerator

[options.extras_require]
test =
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
BatchExportSpanProcessor,
SpanExporter,
)
from opentelemetry.sdk.trace.ids_generator import IdsGenerator

logger = getLogger(__file__)

Expand Down Expand Up @@ -64,7 +65,7 @@ def _get_exporter_names() -> Sequence[str]:


def _init_tracing(
exporters: Sequence[SpanExporter], ids_generator: trace.IdsGenerator
exporters: Sequence[SpanExporter], ids_generator: IdsGenerator
):
service_name = _get_service_name()
provider = TracerProvider(
Expand Down Expand Up @@ -137,15 +138,15 @@ def _import_exporters(
return trace_exporters, metric_exporters


def _import_ids_generator(ids_generator_name: str) -> trace.IdsGenerator:
def _import_ids_generator(ids_generator_name: str) -> IdsGenerator:
# pylint: disable=unbalanced-tuple-unpacking
[
(ids_generator_name, ids_generator_impl)
] = _import_tracer_provider_config_components(
[ids_generator_name.strip()], "opentelemetry_ids_generator"
)

if issubclass(ids_generator_impl, trace.IdsGenerator):
if issubclass(ids_generator_impl, IdsGenerator):
return ids_generator_impl

raise RuntimeError("{0} is not an IdsGenerator".format(ids_generator_name))
Expand Down
10 changes: 7 additions & 3 deletions opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,10 @@
from opentelemetry.sdk import util
from opentelemetry.sdk.resources import Resource
from opentelemetry.sdk.trace import sampling
from opentelemetry.sdk.trace.ids_generator import (
IdsGenerator,
RandomIdsGenerator,
)
from opentelemetry.sdk.util import BoundedDict, BoundedList
from opentelemetry.sdk.util.instrumentation import InstrumentationInfo
from opentelemetry.trace import SpanContext
Expand Down Expand Up @@ -733,7 +737,7 @@ def __init__(
span_processor: Union[
SynchronousMultiSpanProcessor, ConcurrentMultiSpanProcessor
],
ids_generator: trace_api.IdsGenerator,
ids_generator: IdsGenerator,
instrumentation_info: InstrumentationInfo,
) -> None:
self.sampler = sampler
Expand Down Expand Up @@ -893,13 +897,13 @@ def __init__(
active_span_processor: Union[
SynchronousMultiSpanProcessor, ConcurrentMultiSpanProcessor
] = None,
ids_generator: trace_api.IdsGenerator = None,
ids_generator: IdsGenerator = None,
):
self._active_span_processor = (
active_span_processor or SynchronousMultiSpanProcessor()
)
if ids_generator is None:
self.ids_generator = trace_api.RandomIdsGenerator()
self.ids_generator = RandomIdsGenerator()
else:
self.ids_generator = ids_generator
self.resource = resource
Expand Down
18 changes: 9 additions & 9 deletions opentelemetry-sdk/tests/configuration/test_configurator.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,10 @@
_init_tracing,
)
from opentelemetry.sdk.resources import Resource
from opentelemetry.trace.ids_generator import RandomIdsGenerator
from opentelemetry.sdk.trace.ids_generator import (
IdsGenerator,
RandomIdsGenerator,
)


class Provider:
Expand Down Expand Up @@ -54,12 +57,12 @@ class OTLPExporter:
pass


class IdsGenerator:
pass


class CustomIdsGenerator(IdsGenerator):
pass
def generate_span_id(self):
pass

def generate_trace_id(self):
pass


class IterEntryPoint:
Expand Down Expand Up @@ -130,9 +133,6 @@ def test_trace_init_otlp(self):
del environ["OTEL_SERVICE_NAME"]

@patch.dict(environ, {"OTEL_IDS_GENERATOR": "custom_ids_generator"})
@patch(
"opentelemetry.sdk.configuration.trace.IdsGenerator", new=IdsGenerator,
)
@patch("opentelemetry.sdk.configuration.iter_entry_points")
def test_trace_init_custom_ids_generator(self, mock_iter_entry_points):
mock_iter_entry_points.configure_mock(
Expand Down
19 changes: 10 additions & 9 deletions opentelemetry-sdk/tests/trace/propagation/test_b3_format.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
from unittest.mock import Mock, patch

import opentelemetry.sdk.trace as trace
import opentelemetry.sdk.trace.ids_generator as ids_generator
import opentelemetry.sdk.trace.propagation.b3_format as b3_format
import opentelemetry.trace as trace_api
from opentelemetry.context import get_current
Expand All @@ -37,7 +38,7 @@ def get_child_parent_new_carrier(old_carrier):
"child",
trace_api.SpanContext(
parent_span_context.trace_id,
trace_api.RandomIdsGenerator().generate_span_id(),
ids_generator.RandomIdsGenerator().generate_span_id(),
is_remote=False,
trace_flags=parent_span_context.trace_flags,
trace_state=parent_span_context.trace_state,
Expand All @@ -55,15 +56,15 @@ def get_child_parent_new_carrier(old_carrier):
class TestB3Format(unittest.TestCase):
@classmethod
def setUpClass(cls):
ids_generator = trace_api.RandomIdsGenerator()
id_generator = ids_generator.RandomIdsGenerator()
cls.serialized_trace_id = b3_format.format_trace_id(
ids_generator.generate_trace_id()
id_generator.generate_trace_id()
)
cls.serialized_span_id = b3_format.format_span_id(
ids_generator.generate_span_id()
id_generator.generate_span_id()
)
cls.serialized_parent_id = b3_format.format_span_id(
ids_generator.generate_span_id()
id_generator.generate_span_id()
)

def setUp(self) -> None:
Expand Down Expand Up @@ -255,10 +256,10 @@ def test_missing_trace_id(self):
self.assertEqual(span_context.trace_id, trace_api.INVALID_TRACE_ID)

@patch(
"opentelemetry.sdk.trace.propagation.b3_format.trace.RandomIdsGenerator.generate_trace_id"
"opentelemetry.sdk.trace.ids_generator.RandomIdsGenerator.generate_trace_id"
)
@patch(
"opentelemetry.sdk.trace.propagation.b3_format.trace.RandomIdsGenerator.generate_span_id"
"opentelemetry.sdk.trace.ids_generator.RandomIdsGenerator.generate_span_id"
)
def test_invalid_trace_id(
self, mock_generate_span_id, mock_generate_trace_id
Expand All @@ -281,10 +282,10 @@ def test_invalid_trace_id(
self.assertEqual(span_context.span_id, 2)

@patch(
"opentelemetry.sdk.trace.propagation.b3_format.trace.RandomIdsGenerator.generate_trace_id"
"opentelemetry.sdk.trace.ids_generator.RandomIdsGenerator.generate_trace_id"
)
@patch(
"opentelemetry.sdk.trace.propagation.b3_format.trace.RandomIdsGenerator.generate_span_id"
"opentelemetry.sdk.trace.ids_generator.RandomIdsGenerator.generate_span_id"
)
def test_invalid_span_id(
self, mock_generate_span_id, mock_generate_trace_id
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
from unittest.mock import Mock

import opentelemetry.sdk.trace as trace
import opentelemetry.sdk.trace.ids_generator as ids_generator
import opentelemetry.sdk.trace.propagation.jaeger_propagator as jaeger
import opentelemetry.trace as trace_api
from opentelemetry import baggage
Expand All @@ -40,7 +41,7 @@ def get_context_new_carrier(old_carrier, carrier_baggage=None):
"child",
trace_api.SpanContext(
parent_span_context.trace_id,
trace_api.RandomIdsGenerator().generate_span_id(),
ids_generator.RandomIdsGenerator().generate_span_id(),
is_remote=False,
trace_flags=parent_span_context.trace_flags,
trace_state=parent_span_context.trace_state,
Expand All @@ -65,10 +66,10 @@ def _format_uber_trace_id(trace_id, span_id, parent_span_id, flags):
class TestJaegerPropagator(unittest.TestCase):
@classmethod
def setUpClass(cls):
ids_generator = trace_api.RandomIdsGenerator()
cls.trace_id = ids_generator.generate_trace_id()
cls.span_id = ids_generator.generate_span_id()
cls.parent_span_id = ids_generator.generate_span_id()
id_generator = ids_generator.RandomIdsGenerator()
cls.trace_id = id_generator.generate_trace_id()
cls.span_id = id_generator.generate_span_id()
cls.parent_span_id = id_generator.generate_span_id()
cls.serialized_uber_trace_id = _format_uber_trace_id(
cls.trace_id, cls.span_id, cls.parent_span_id, 11
)
Expand Down
5 changes: 3 additions & 2 deletions opentelemetry-sdk/tests/trace/test_trace.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
from opentelemetry.context import Context
from opentelemetry.sdk import resources, trace
from opentelemetry.sdk.trace import Resource, sampling
from opentelemetry.sdk.trace.ids_generator import RandomIdsGenerator
from opentelemetry.sdk.util import ns_to_iso_str
from opentelemetry.sdk.util.instrumentation import InstrumentationInfo
from opentelemetry.trace.status import StatusCode
Expand Down Expand Up @@ -715,7 +716,7 @@ def test_invalid_event_attributes(self):
self.assertEqual(root.events[3].attributes, {"attr2": (1, 2)})

def test_links(self):
ids_generator = trace_api.RandomIdsGenerator()
ids_generator = RandomIdsGenerator()
other_context1 = trace_api.SpanContext(
trace_id=ids_generator.generate_trace_id(),
span_id=ids_generator.generate_span_id(),
Expand Down Expand Up @@ -1241,7 +1242,7 @@ def tearDown(self):
def test_span_environment_limits(self):
reload(trace)
tracer = new_tracer()
ids_generator = trace_api.RandomIdsGenerator()
ids_generator = RandomIdsGenerator()
some_links = [
trace_api.Link(
trace_api.SpanContext(
Expand Down