Skip to content

Commit 324dded

Browse files
author
ADOT Patch workflow
committed
Fix based on comment
1 parent 1e9bd14 commit 324dded

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

aws-opentelemetry-distro/tests/amazon/opentelemetry/distro/test_aws_tracer_configurer.py

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,37 +14,43 @@
1414
from opentelemetry.trace import get_tracer_provider
1515

1616

17+
# This class setup Tracer Provider Globally, which can only set once
18+
# if there is another setup for tracer provider, may cause issue
1719
class TestAwsTracerConfigurer(TestCase):
18-
def setUp(self):
20+
@classmethod
21+
def setUpClass(cls):
1922
os.environ.setdefault(OTEL_TRACES_EXPORTER, "none")
2023
os.environ.setdefault(OTEL_METRICS_EXPORTER, "none")
2124
os.environ.setdefault(OTEL_LOGS_EXPORTER, "none")
2225
os.environ.setdefault(OTEL_TRACES_SAMPLER, "traceidratio")
2326
os.environ.setdefault(OTEL_TRACES_SAMPLER_ARG, "0.01")
24-
self.span_exporter: InMemorySpanExporter = InMemorySpanExporter()
25-
self.simple_span_processor: SimpleSpanProcessor = SimpleSpanProcessor(self.span_exporter)
26-
self.aws_otel_configurator: AwsOpenTelemetryConfigurator = AwsOpenTelemetryConfigurator()
27-
self.aws_otel_configurator.configure()
28-
self.tracer_provider: TracerProvider = get_tracer_provider()
29-
self.aws_open_telemetry_distro: AwsOpenTelemetryDistro = AwsOpenTelemetryDistro()
30-
self.aws_open_telemetry_distro.configure()
27+
aws_open_telemetry_distro: AwsOpenTelemetryDistro = AwsOpenTelemetryDistro()
28+
aws_open_telemetry_distro.configure()
29+
aws_otel_configurator: AwsOpenTelemetryConfigurator = AwsOpenTelemetryConfigurator()
30+
aws_otel_configurator.configure()
31+
cls.tracer_provider: TracerProvider = get_tracer_provider()
3132

33+
# Sanity check that the trace ID ratio sampler works fine with the x-ray generator.
3234
def test_provide_generate_xray_ids(self):
3335
for _ in range(20):
3436
tracer: Tracer = self.tracer_provider.get_tracer("test")
3537
start_time_sec: int = int(time.time())
3638
span: Span = tracer.start_span("test")
3739
trace_id: int = span.get_span_context().trace_id
38-
self.assertGreater(trace_id, start_time_sec)
40+
trace_id_4_byte_hex: str = hex(trace_id)[2:10]
41+
trace_id_4_byte_int: int = int(trace_id_4_byte_hex, 16)
42+
self.assertGreaterEqual(trace_id_4_byte_int, start_time_sec)
3943

44+
# Sanity check that the trace ID ratio sampler works fine with the x-ray generator.
4045
def test_trace_id_ratio_sampler(self):
4146
for _ in range(20):
42-
num_spans: int = 10000
47+
num_spans: int = 100000
4348
num_sampled: int = 0
4449
tracer: Tracer = self.tracer_provider.get_tracer("test")
4550
for _ in range(num_spans):
4651
span: Span = tracer.start_span("test")
4752
if span.get_span_context().trace_flags.sampled:
4853
num_sampled += 1
4954
span.end()
55+
# Configured for 1%, confirm there are at most 5% to account for randomness and reduce test flakiness.
5056
self.assertGreater(0.05, num_sampled / num_spans)

0 commit comments

Comments
 (0)