Skip to content

Commit

Permalink
Add span data to the transactions trace context (#3374)
Browse files Browse the repository at this point in the history
Fixes #3372
  • Loading branch information
antonpirker committed Jul 30, 2024
1 parent 0f3e5db commit f8e5d2f
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 0 deletions.
9 changes: 9 additions & 0 deletions sentry_sdk/tracing.py
Original file line number Diff line number Diff line change
Expand Up @@ -1027,6 +1027,15 @@ def to_json(self):

return rv

def get_trace_context(self):
# type: () -> Any
trace_context = super().get_trace_context()

if self._data:
trace_context["data"] = self._data

return trace_context

def get_baggage(self):
# type: () -> Baggage
"""Returns the :py:class:`~sentry_sdk.tracing_utils.Baggage`
Expand Down
27 changes: 27 additions & 0 deletions tests/tracing/test_misc.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,33 @@ def test_transaction_naming(sentry_init, capture_events):
assert events[2]["transaction"] == "a"


def test_transaction_data(sentry_init, capture_events):
sentry_init(traces_sample_rate=1.0)
events = capture_events()

with start_transaction(name="test-transaction"):
span_or_tx = sentry_sdk.get_current_span()
span_or_tx.set_data("foo", "bar")
with start_span(op="test-span") as span:
span.set_data("spanfoo", "spanbar")

assert len(events) == 1

transaction = events[0]
transaction_data = transaction["contexts"]["trace"]["data"]

assert "data" not in transaction.keys()
assert transaction_data.items() >= {"foo": "bar"}.items()

assert len(transaction["spans"]) == 1

span = transaction["spans"][0]
span_data = span["data"]

assert "contexts" not in span.keys()
assert span_data.items() >= {"spanfoo": "spanbar"}.items()


def test_start_transaction(sentry_init):
sentry_init(traces_sample_rate=1.0)

Expand Down

0 comments on commit f8e5d2f

Please sign in to comment.