Skip to content

Commit

Permalink
Rename IdsGenerator to IdGenerator (#350)
Browse files Browse the repository at this point in the history
  • Loading branch information
lzchen authored Feb 26, 2021
1 parent 28e410c commit 1c8852f
Show file tree
Hide file tree
Showing 11 changed files with 43 additions and 40 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
- 'release/*'
pull_request:
env:
CORE_REPO_SHA: a434be5f450fdd329bcefb41e84406a001f9534c
CORE_REPO_SHA: dbb1f72775a424086b7a1eefbb11cfcbf31d9534

jobs:
build:
Expand Down
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased](https://github.com/open-telemetry/opentelemetry-python-contrib/compare/v0.18b0...HEAD)

### Changed
- Rename `IdsGenerator` to `IdGenerator`
([#350])(https://github.com/open-telemetry/opentelemetry-python/pull/350)

## [0.18b0](https://github.com/open-telemetry/opentelemetry-python-contrib/releases/tag/v0.18b0) - 2021-02-16

### Added
Expand Down
8 changes: 5 additions & 3 deletions docs/nitpick-exceptions.ini
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ class_references=
opentelemetry.trace.propagation.textmap.Getter
; - DatadogFormat
; - AWSXRayFormat
opentelemetry.sdk.trace.id_generator.IdGenerator
; - AwsXRayIdGenerator
TextMapPropagatorT
; - AwsXRayFormat.extract

Expand All @@ -16,14 +18,14 @@ anys=
opentelemetry.trace.propagation.textmap.TextMapPropagator.fields
; - AWSXRayFormat
TraceId
; - AwsXRayIdsGenerator
; - AwsXRayIdGenerator
TraceIdRatioBased
; - AwsXRayIdsGenerator
; - AwsXRayIdGenerator
; SDK
SpanProcessor
; - DatadogExportSpanProcessor
TracerProvider
; - AwsXRayIdsGenerator
; - AwsXRayIdGenerator
; Instrumentation
BaseInstrumentor
; - instrumentation.*
2 changes: 1 addition & 1 deletion docs/sdk-extension/aws/aws.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
OpenTelemetry Python - AWS SDK Extension
========================================

.. automodule:: opentelemetry.sdk.extension.aws.trace.aws_xray_ids_generator
.. automodule:: opentelemetry.sdk.extension.aws.trace.aws_xray_id_generator
:members:
:undoc-members:
:show-inheritance:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
from opentelemetry import trace as trace_api
from opentelemetry.exporter.datadog import constants, propagator
from opentelemetry.sdk import trace
from opentelemetry.sdk.trace.ids_generator import RandomIdsGenerator
from opentelemetry.sdk.trace.id_generator import RandomIdGenerator
from opentelemetry.trace import get_current_span, set_span_in_context
from opentelemetry.trace.propagation.textmap import DictGetter

Expand All @@ -30,12 +30,12 @@
class TestDatadogFormat(unittest.TestCase):
@classmethod
def setUpClass(cls):
ids_generator = RandomIdsGenerator()
id_generator = RandomIdGenerator()
cls.serialized_trace_id = propagator.format_trace_id(
ids_generator.generate_trace_id()
id_generator.generate_trace_id()
)
cls.serialized_parent_id = propagator.format_span_id(
ids_generator.generate_span_id()
id_generator.generate_span_id()
)
cls.serialized_origin = "origin-service"

Expand Down Expand Up @@ -108,7 +108,7 @@ def test_context_propagation(self):
"child",
trace_api.SpanContext(
parent_span_context.trace_id,
RandomIdsGenerator().generate_span_id(),
RandomIdGenerator().generate_span_id(),
is_remote=False,
trace_flags=parent_span_context.trace_flags,
trace_state=parent_span_context.trace_state,
Expand Down Expand Up @@ -155,7 +155,7 @@ def test_sampling_priority_auto_reject(self):
"child",
trace_api.SpanContext(
parent_span_context.trace_id,
RandomIdsGenerator().generate_span_id(),
RandomIdGenerator().generate_span_id(),
is_remote=False,
trace_flags=parent_span_context.trace_flags,
trace_state=parent_span_context.trace_state,
Expand Down
6 changes: 3 additions & 3 deletions sdk-extension/opentelemetry-sdk-extension-aws/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,16 @@ Install the OpenTelemetry SDK package.

pip install opentelemetry-sdk

Next, use the provided `AwsXRayIdsGenerator` to initialize the `TracerProvider`.
Next, use the provided `AwsXRayIdGenerator` to initialize the `TracerProvider`.

.. code-block:: python
import opentelemetry.trace as trace
from opentelemetry.sdk.extension.aws.trace import AwsXRayIdsGenerator
from opentelemetry.sdk.extension.aws.trace import AwsXRayIdGenerator
from opentelemetry.sdk.trace import TracerProvider
trace.set_tracer_provider(
TracerProvider(ids_generator=AwsXRayIdsGenerator())
TracerProvider(id_generator=AwsXRayIdGenerator())
)
Expand Down
4 changes: 2 additions & 2 deletions sdk-extension/opentelemetry-sdk-extension-aws/setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ install_requires =
[options.entry_points]
opentelemetry_propagator =
aws_xray = opentelemetry.sdk.extension.aws.trace.propagation.aws_xray_format:AwsXRayFormat
opentelemetry_ids_generator =
aws_xray = opentelemetry.sdk.extension.aws.trace.aws_xray_ids_generator:AwsXRayIdsGenerator
opentelemetry_id_generator =
aws_xray = opentelemetry.sdk.extension.aws.trace.aws_xray_id_generator:AwsXRayIdGenerator

[options.extras_require]
test =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.

from opentelemetry.sdk.extension.aws.trace.aws_xray_ids_generator import (
AwsXRayIdsGenerator,
from opentelemetry.sdk.extension.aws.trace.aws_xray_id_generator import (
AwsXRayIdGenerator,
)

__all__ = ["AwsXRayIdsGenerator"]
__all__ = ["AwsXRayIdGenerator"]
Original file line number Diff line number Diff line change
Expand Up @@ -39,16 +39,16 @@
pip install opentelemetry-sdk
Next, use the provided `AwsXRayIdsGenerator` to initialize the `TracerProvider`.
Next, use the provided `AwsXRayIdGenerator` to initialize the `TracerProvider`.
.. code-block:: python
import opentelemetry.trace as trace
from opentelemetry.sdk.extension.aws.trace import AwsXRayIdsGenerator
from opentelemetry.sdk.extension.aws.trace import AwsXRayIdGenerator
from opentelemetry.sdk.trace import TracerProvider
trace.set_tracer_provider(
TracerProvider(ids_generator=AwsXRayIdsGenerator())
TracerProvider(id_generator=AwsXRayIdGenerator())
)
API
Expand All @@ -59,13 +59,10 @@
import random
import time

from opentelemetry.sdk.trace.ids_generator import (
IdsGenerator,
RandomIdsGenerator,
)
from opentelemetry.sdk.trace.id_generator import IdGenerator, RandomIdGenerator


class AwsXRayIdsGenerator(IdsGenerator):
class AwsXRayIdGenerator(IdGenerator):
"""Generates tracing IDs compatible with the AWS X-Ray tracing service. In
the X-Ray system, the first 32 bits of the `TraceId` are the Unix epoch time
in seconds. Since spans (AWS calls them segments) with an embedded timestamp
Expand All @@ -75,10 +72,10 @@ class AwsXRayIdsGenerator(IdsGenerator):
See: https://docs.aws.amazon.com/xray/latest/devguide/xray-api-sendingdata.html#xray-api-traceids
"""

random_ids_generator = RandomIdsGenerator()
random_id_generator = RandomIdGenerator()

def generate_span_id(self) -> int:
return self.random_ids_generator.generate_span_id()
return self.random_id_generator.generate_span_id()

@staticmethod
def generate_trace_id() -> int:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@
# See the License for the specific language governing permissions and
# limitations under the License.

from opentelemetry.sdk.extension.aws.trace import AwsXRayIdsGenerator
from opentelemetry.sdk.extension.aws.trace import AwsXRayIdGenerator

ids_generator = AwsXRayIdsGenerator()
id_generator = AwsXRayIdGenerator()


def test_generate_xray_trace_id(benchmark):
benchmark(ids_generator.generate_trace_id)
benchmark(id_generator.generate_trace_id)


def test_generate_xray_span_id(benchmark):
benchmark(ids_generator.generate_span_id)
benchmark(id_generator.generate_span_id)
Original file line number Diff line number Diff line change
Expand Up @@ -16,23 +16,23 @@
import time
import unittest

from opentelemetry.sdk.extension.aws.trace import AwsXRayIdsGenerator
from opentelemetry.sdk.extension.aws.trace import AwsXRayIdGenerator
from opentelemetry.trace.span import INVALID_TRACE_ID


class AwsXRayIdsGeneratorTest(unittest.TestCase):
class AwsXRayIdGeneratorTest(unittest.TestCase):
def test_ids_are_valid(self):
ids_generator = AwsXRayIdsGenerator()
id_generator = AwsXRayIdGenerator()
for _ in range(1000):
trace_id = ids_generator.generate_trace_id()
trace_id = id_generator.generate_trace_id()
self.assertTrue(trace_id != INVALID_TRACE_ID)
span_id = ids_generator.generate_span_id()
span_id = id_generator.generate_span_id()
self.assertTrue(span_id != INVALID_TRACE_ID)

def test_id_timestamps_are_acceptable_for_xray(self):
ids_generator = AwsXRayIdsGenerator()
id_generator = AwsXRayIdGenerator()
for _ in range(1000):
trace_id = ids_generator.generate_trace_id()
trace_id = id_generator.generate_trace_id()
trace_id_time = trace_id >> 96
current_time = int(time.time())
self.assertLessEqual(trace_id_time, current_time)
Expand Down

0 comments on commit 1c8852f

Please sign in to comment.