Skip to content

Commit 1f5d34d

Browse files
committed
Change queueing type
1 parent 97f0c78 commit 1f5d34d

File tree

5 files changed

+34
-20
lines changed

5 files changed

+34
-20
lines changed

newrelic/api/time_trace.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,13 @@ def _add_span_link_event(self, span_id, trace_id, linked_span_id, linked_trace_i
225225
if not settings.opentelemetry.enabled:
226226
return
227227

228+
if len(self.span_link_events) >= 100:
229+
_logger.debug(
230+
"Maximum number of SpanLink events already added. Dropping SpanLink event: linkedSpanId=%r, linkedTraceId=%r",
231+
linked_span_id,
232+
linked_trace_id,
233+
)
234+
return
228235
attributes = dict(attributes) or {}
229236

230237
event = [
@@ -250,6 +257,15 @@ def _add_span_event_event(self, name, span_id, trace_id, timestamp=None, attribu
250257
if not settings.opentelemetry.enabled:
251258
return
252259

260+
if len(self.span_event_events) >= 100:
261+
_logger.debug(
262+
"Maximum number of SpanEvent events already added. Dropping SpanEvent event: name=%r, spanId=%r, traceId=%r",
263+
name,
264+
span_id,
265+
trace_id,
266+
)
267+
return
268+
253269
attributes = dict(attributes) or {}
254270

255271
event = [

newrelic/core/stats_engine.py

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1076,27 +1076,24 @@ def _update_synthetics_transaction(self, transaction):
10761076
self.__synthetics_transactions.append(transaction)
10771077

10781078
def _add_spanlink_and_spanevent_events(self, event, priority):
1079-
"""Add SpanLink and SpanEvent events into their own
1080-
SampledDataSets within the span_events SampledDataSet.
1079+
"""Add SpanLink and SpanEvent events into their
1080+
own queue within the span_events' SampledDataSet.
10811081
"""
10821082
if not self.__settings.opentelemetry.enabled or isinstance(event[-1], dict):
10831083
return event
10841084

10851085
span, span_link, span_event = event
10861086

1087-
span_link_queue = SampledDataSet()
1088-
span_event_queue = SampledDataSet()
1087+
span_link_queue = []
1088+
span_event_queue = []
10891089

10901090
for span_link_event in span_link:
1091-
span_link_queue.add(span_link_event, priority=priority)
1091+
span_link_queue.append(span_link_event)
10921092

10931093
for span_event_event in span_event:
1094-
span_event_queue.add(span_event_event, priority=priority)
1094+
span_event_queue.append(span_event_event)
10951095

1096-
span_link_list = list(span_link_queue)
1097-
span_event_list = list(span_event_queue)
1098-
1099-
return list(filter(bool, [span, span_link_list, span_event_list]))
1096+
return list(filter(bool, [span, span_link_queue, span_event_queue]))
11001097

11011098
def record_transaction(self, transaction):
11021099
"""Record any apdex and time metrics for the transaction as

tests/hybridagent_opentelemetry/conftest.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@
1313
# limitations under the License.
1414

1515
import pytest
16-
from opentelemetry import trace
1716
from testing_support.fixtures import collector_agent_registration_fixture, collector_available_fixture
1817

1918
from newrelic.api.opentelemetry import TracerProvider
19+
from opentelemetry import trace
2020

2121
_default_settings = {
2222
"package_reporting.enabled": False, # Turn off package reporting for testing as it causes slow downs.
@@ -35,6 +35,7 @@
3535

3636
@pytest.fixture(scope="session")
3737
def tracer():
38-
trace.set_tracer_provider(TracerProvider())
39-
40-
return trace.get_tracer_provider().get_tracer()
38+
tracer_provider = TracerProvider()
39+
40+
trace.set_tracer_provider(tracer_provider=tracer_provider)
41+
return tracer_provider.get_tracer()

tests/hybridagent_opentelemetry/test_spanevent_spanlinks.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ def _test():
132132

133133
@dt_enabled
134134
@validate_spanlink_or_spanevent_events(
135-
exact_intrinsics={"type": "SpanEvent", "name": "otelevent2"},
135+
exact_intrinsics={"type": "SpanEvent", "name": "otelevent"},
136136
expected_intrinsics=["timestamp", "span.id", "trace.id", "name"],
137137
exact_users={"key99": "value99", "universe": 42},
138138
)
@@ -159,6 +159,6 @@ def _test():
159159
with tracer.start_as_current_span(
160160
"otelspan", links=[Link(linked_span_context, attributes={"key1": "value1", "key2": 42})]
161161
) as otel_span:
162-
otel_span.add_event("otelevent2", attributes={"key99": "value99", "universe": 42})
162+
otel_span.add_event("otelevent", attributes={"key99": "value99", "universe": 42})
163163

164164
_test()

tests/hybridagent_pika/test_distributed_tracing.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,10 @@ def do_basic_consume(channel, queue_name):
7070
("Supportability/DistributedTrace/AcceptPayload/Success", None),
7171
("Supportability/TraceContext/TraceParent/Accept/Success", 1),
7272
("Supportability/TraceContext/Accept/Success", 1),
73-
("DurationByCaller/App/33/12345/Unknown/all", 1),
74-
("TransportDuration/App/33/12345/Unknown/all", 1),
75-
("DurationByCaller/App/33/12345/Unknown/allOther", 1),
76-
("TransportDuration/App/33/12345/Unknown/allOther", 1),
73+
("DurationByCaller/App/33/12345/AMQP/all", 1),
74+
("TransportDuration/App/33/12345/AMQP/all", 1),
75+
("DurationByCaller/App/33/12345/AMQP/allOther", 1),
76+
("TransportDuration/App/33/12345/AMQP/allOther", 1),
7777
]
7878

7979
@validate_transaction_metrics(

0 commit comments

Comments
 (0)