Rename IdsGenerator to IdGenerator (#350)

This commit is contained in:
Leighton Chen
2021-02-26 14:56:30 -08:00
committed by GitHub
parent 28e410c1fa
commit 1c8852f99e
11 changed files with 43 additions and 40 deletions

View File

@ -6,7 +6,7 @@ on:
- 'release/*' - 'release/*'
pull_request: pull_request:
env: env:
CORE_REPO_SHA: a434be5f450fdd329bcefb41e84406a001f9534c CORE_REPO_SHA: dbb1f72775a424086b7a1eefbb11cfcbf31d9534
jobs: jobs:
build: build:

View File

@ -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) ## [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 ## [0.18b0](https://github.com/open-telemetry/opentelemetry-python-contrib/releases/tag/v0.18b0) - 2021-02-16
### Added ### Added

View File

@ -8,6 +8,8 @@ class_references=
opentelemetry.trace.propagation.textmap.Getter opentelemetry.trace.propagation.textmap.Getter
; - DatadogFormat ; - DatadogFormat
; - AWSXRayFormat ; - AWSXRayFormat
opentelemetry.sdk.trace.id_generator.IdGenerator
; - AwsXRayIdGenerator
TextMapPropagatorT TextMapPropagatorT
; - AwsXRayFormat.extract ; - AwsXRayFormat.extract
@ -16,14 +18,14 @@ anys=
opentelemetry.trace.propagation.textmap.TextMapPropagator.fields opentelemetry.trace.propagation.textmap.TextMapPropagator.fields
; - AWSXRayFormat ; - AWSXRayFormat
TraceId TraceId
; - AwsXRayIdsGenerator ; - AwsXRayIdGenerator
TraceIdRatioBased TraceIdRatioBased
; - AwsXRayIdsGenerator ; - AwsXRayIdGenerator
; SDK ; SDK
SpanProcessor SpanProcessor
; - DatadogExportSpanProcessor ; - DatadogExportSpanProcessor
TracerProvider TracerProvider
; - AwsXRayIdsGenerator ; - AwsXRayIdGenerator
; Instrumentation ; Instrumentation
BaseInstrumentor BaseInstrumentor
; - instrumentation.* ; - instrumentation.*

View File

@ -1,7 +1,7 @@
OpenTelemetry Python - AWS SDK Extension 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: :members:
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:

View File

@ -18,7 +18,7 @@ from unittest.mock import Mock, patch
from opentelemetry import trace as trace_api from opentelemetry import trace as trace_api
from opentelemetry.exporter.datadog import constants, propagator from opentelemetry.exporter.datadog import constants, propagator
from opentelemetry.sdk import trace 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 import get_current_span, set_span_in_context
from opentelemetry.trace.propagation.textmap import DictGetter from opentelemetry.trace.propagation.textmap import DictGetter
@ -30,12 +30,12 @@ carrier_getter = DictGetter()
class TestDatadogFormat(unittest.TestCase): class TestDatadogFormat(unittest.TestCase):
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls):
ids_generator = RandomIdsGenerator() id_generator = RandomIdGenerator()
cls.serialized_trace_id = propagator.format_trace_id( 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( cls.serialized_parent_id = propagator.format_span_id(
ids_generator.generate_span_id() id_generator.generate_span_id()
) )
cls.serialized_origin = "origin-service" cls.serialized_origin = "origin-service"
@ -108,7 +108,7 @@ class TestDatadogFormat(unittest.TestCase):
"child", "child",
trace_api.SpanContext( trace_api.SpanContext(
parent_span_context.trace_id, parent_span_context.trace_id,
RandomIdsGenerator().generate_span_id(), RandomIdGenerator().generate_span_id(),
is_remote=False, is_remote=False,
trace_flags=parent_span_context.trace_flags, trace_flags=parent_span_context.trace_flags,
trace_state=parent_span_context.trace_state, trace_state=parent_span_context.trace_state,
@ -155,7 +155,7 @@ class TestDatadogFormat(unittest.TestCase):
"child", "child",
trace_api.SpanContext( trace_api.SpanContext(
parent_span_context.trace_id, parent_span_context.trace_id,
RandomIdsGenerator().generate_span_id(), RandomIdGenerator().generate_span_id(),
is_remote=False, is_remote=False,
trace_flags=parent_span_context.trace_flags, trace_flags=parent_span_context.trace_flags,
trace_state=parent_span_context.trace_state, trace_state=parent_span_context.trace_state,

View File

@ -30,16 +30,16 @@ Install the OpenTelemetry SDK package.
pip install opentelemetry-sdk 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 .. code-block:: python
import opentelemetry.trace as trace 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 from opentelemetry.sdk.trace import TracerProvider
trace.set_tracer_provider( trace.set_tracer_provider(
TracerProvider(ids_generator=AwsXRayIdsGenerator()) TracerProvider(id_generator=AwsXRayIdGenerator())
) )

View File

@ -44,8 +44,8 @@ install_requires =
[options.entry_points] [options.entry_points]
opentelemetry_propagator = opentelemetry_propagator =
aws_xray = opentelemetry.sdk.extension.aws.trace.propagation.aws_xray_format:AwsXRayFormat aws_xray = opentelemetry.sdk.extension.aws.trace.propagation.aws_xray_format:AwsXRayFormat
opentelemetry_ids_generator = opentelemetry_id_generator =
aws_xray = opentelemetry.sdk.extension.aws.trace.aws_xray_ids_generator:AwsXRayIdsGenerator aws_xray = opentelemetry.sdk.extension.aws.trace.aws_xray_id_generator:AwsXRayIdGenerator
[options.extras_require] [options.extras_require]
test = test =

View File

@ -12,8 +12,8 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from opentelemetry.sdk.extension.aws.trace.aws_xray_ids_generator import ( from opentelemetry.sdk.extension.aws.trace.aws_xray_id_generator import (
AwsXRayIdsGenerator, AwsXRayIdGenerator,
) )
__all__ = ["AwsXRayIdsGenerator"] __all__ = ["AwsXRayIdGenerator"]

View File

@ -39,16 +39,16 @@ Install the OpenTelemetry SDK package.
pip install opentelemetry-sdk 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 .. code-block:: python
import opentelemetry.trace as trace 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 from opentelemetry.sdk.trace import TracerProvider
trace.set_tracer_provider( trace.set_tracer_provider(
TracerProvider(ids_generator=AwsXRayIdsGenerator()) TracerProvider(id_generator=AwsXRayIdGenerator())
) )
API API
@ -59,13 +59,10 @@ API
import random import random
import time import time
from opentelemetry.sdk.trace.ids_generator import ( from opentelemetry.sdk.trace.id_generator import IdGenerator, RandomIdGenerator
IdsGenerator,
RandomIdsGenerator,
)
class AwsXRayIdsGenerator(IdsGenerator): class AwsXRayIdGenerator(IdGenerator):
"""Generates tracing IDs compatible with the AWS X-Ray tracing service. In """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 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 in seconds. Since spans (AWS calls them segments) with an embedded timestamp
@ -75,10 +72,10 @@ class AwsXRayIdsGenerator(IdsGenerator):
See: https://docs.aws.amazon.com/xray/latest/devguide/xray-api-sendingdata.html#xray-api-traceids 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: def generate_span_id(self) -> int:
return self.random_ids_generator.generate_span_id() return self.random_id_generator.generate_span_id()
@staticmethod @staticmethod
def generate_trace_id() -> int: def generate_trace_id() -> int:

View File

@ -12,14 +12,14 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # 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): 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): def test_generate_xray_span_id(benchmark):
benchmark(ids_generator.generate_span_id) benchmark(id_generator.generate_span_id)

View File

@ -16,23 +16,23 @@ import datetime
import time import time
import unittest 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 from opentelemetry.trace.span import INVALID_TRACE_ID
class AwsXRayIdsGeneratorTest(unittest.TestCase): class AwsXRayIdGeneratorTest(unittest.TestCase):
def test_ids_are_valid(self): def test_ids_are_valid(self):
ids_generator = AwsXRayIdsGenerator() id_generator = AwsXRayIdGenerator()
for _ in range(1000): 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) 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) self.assertTrue(span_id != INVALID_TRACE_ID)
def test_id_timestamps_are_acceptable_for_xray(self): def test_id_timestamps_are_acceptable_for_xray(self):
ids_generator = AwsXRayIdsGenerator() id_generator = AwsXRayIdGenerator()
for _ in range(1000): for _ in range(1000):
trace_id = ids_generator.generate_trace_id() trace_id = id_generator.generate_trace_id()
trace_id_time = trace_id >> 96 trace_id_time = trace_id >> 96
current_time = int(time.time()) current_time = int(time.time())
self.assertLessEqual(trace_id_time, current_time) self.assertLessEqual(trace_id_time, current_time)