mirror of
https://github.com/open-telemetry/opentelemetry-python-contrib.git
synced 2025-07-29 21:23:55 +08:00
Rename IdsGenerator to IdGenerator (#350)
This commit is contained in:
@ -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())
|
||||
)
|
||||
|
||||
|
||||
|
@ -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 =
|
||||
|
@ -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"]
|
||||
|
@ -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:
|
@ -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)
|
||||
|
@ -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)
|
||||
|
Reference in New Issue
Block a user