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

@ -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())
)

View File

@ -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 =

View File

@ -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"]

View File

@ -39,16 +39,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())
)
API
@ -59,13 +59,10 @@ API
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
@ -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:

View File

@ -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)

View File

@ -16,23 +16,23 @@ import datetime
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)