diff --git a/packages/tracing/src/transaction.ts b/packages/tracing/src/transaction.ts index 10435f5ecdb0..460e202b059c 100644 --- a/packages/tracing/src/transaction.ts +++ b/packages/tracing/src/transaction.ts @@ -42,7 +42,11 @@ export class Transaction extends SpanClass implements TransactionInterface { this._name = transactionContext.name || ''; - this.metadata = transactionContext.metadata || {}; + this.metadata = { + ...transactionContext.metadata, + spanMetadata: {}, + }; + this._trimEnd = transactionContext.trimEnd; // this is because transactions are also spans, and spans have a transaction pointer @@ -89,7 +93,7 @@ export class Transaction extends SpanClass implements TransactionInterface { /** * @inheritDoc */ - public setMetadata(newMetadata: TransactionMetadata): void { + public setMetadata(newMetadata: Partial): void { this.metadata = { ...this.metadata, ...newMetadata }; } diff --git a/packages/types/src/transaction.ts b/packages/types/src/transaction.ts index c60ae3d12cd1..d8029c2184cb 100644 --- a/packages/types/src/transaction.ts +++ b/packages/types/src/transaction.ts @@ -27,7 +27,7 @@ export interface TransactionContext extends SpanContext { /** * Metadata associated with the transaction, for internal SDK use. */ - metadata?: TransactionMetadata; + metadata?: Partial; } /** @@ -93,7 +93,7 @@ export interface Transaction extends TransactionContext, Span { * Set metadata for this transaction. * @hidden */ - setMetadata(newMetadata: TransactionMetadata): void; + setMetadata(newMetadata: Partial): void; /** return the baggage for dynamic sampling and trace propagation */ getBaggage(): Baggage; @@ -147,6 +147,9 @@ export interface TransactionMetadata { /** Information on how a transaction name was generated. */ source?: TransactionSource; + + /** Metadata for the transaction's spans, keyed by spanId */ + spanMetadata: { [spanId: string]: { [key: string]: unknown } }; } /**