From 3c7c2cf4c740ff0c4be6392781c2f1622f9adb6f Mon Sep 17 00:00:00 2001 From: Katie Byers Date: Fri, 22 Jul 2022 16:37:24 -0700 Subject: [PATCH 1/2] allow metadata passed to `Transaction` constructor and `setMetadata` method to be partials --- packages/tracing/src/transaction.ts | 2 +- packages/types/src/transaction.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/tracing/src/transaction.ts b/packages/tracing/src/transaction.ts index 10435f5ecdb0..319a93615f52 100644 --- a/packages/tracing/src/transaction.ts +++ b/packages/tracing/src/transaction.ts @@ -89,7 +89,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..74e58c8632dd 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; From 6ecb1749474fa01e7f23cc7fe26d337c5687220a Mon Sep 17 00:00:00 2001 From: Katie Byers Date: Fri, 22 Jul 2022 16:38:55 -0700 Subject: [PATCH 2/2] add span metadata to transaction metadata --- packages/tracing/src/transaction.ts | 6 +++++- packages/types/src/transaction.ts | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/tracing/src/transaction.ts b/packages/tracing/src/transaction.ts index 319a93615f52..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 diff --git a/packages/types/src/transaction.ts b/packages/types/src/transaction.ts index 74e58c8632dd..d8029c2184cb 100644 --- a/packages/types/src/transaction.ts +++ b/packages/types/src/transaction.ts @@ -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 } }; } /**