Description
"data" set via TransactionTracer.SetData
is not written to "Data" of the Trace-Context, and does not get copied over to SentryTransaction
when created from the tracer.
But "data" set via TransactionTracer.Contexts.Trace.SetData
is written to "Data" of the Trace-Context, and gets copied over to SentryTransaction
when created from the tracer.
However, SentryTransaction.SetData
and SentryTransaction.Contexts.Trace.SetData
are equivalent setting "Data" of the Trace-Context.
With Spans, both setting "data" via SpanTracer.SetData
and SentrySpan.SetData
are eventually serialized to spans.data
("Data" does get copied over to SentrySpan
when created from a SpanTracer
);
Steps to Reproduce
SentrySdk.Init(options =>
{
options.Dsn = "..";
options.TracesSampleRate = 1.0;
options.SetBeforeSendTransaction(transaction =>
{
transaction.SetData("setbeforesendtransaction", "transaction-setdata");
transaction.Contexts.Trace.SetData("setbeforesendtransaction", "transaction-contexts-trace-setdata");
return transaction;
});
});
var transaction = SentrySdk.StartTransaction("my-transaction", "start-transaction");
SentrySdk.ConfigureScope(scope => scope.Transaction = transaction);
transaction.SetData("transaction-data-key", "transaction-data-value");
transaction.SetData("transaction-array", new[] {42, 43, 44});
// Do some work.
transaction.Finish();
Expected Result

{
"contexts": {
"trace": {
"data": {
"setbeforesendtransaction": "transaction-contexts-trace-setdata",
"transaction-array": [42, 43, 44],
"transaction-data-key": "transaction-data-value"
}
}
}
}
Actual Result

{
"contexts": {
"trace": {
"data": {
"setbeforesendtransaction": "transaction-contexts-trace-setdata"
}
}
}
}
Additional Notes
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
No status