Skip to content

Commit 6f6cf53

Browse files
committed
make measurements undefined
1 parent 1811e5d commit 6f6cf53

File tree

4 files changed

+10
-8
lines changed

4 files changed

+10
-8
lines changed

dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/interactions/test.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -140,9 +140,7 @@ sentryTest('should capture an INP click event span. @firefox', async ({ browserN
140140
// Wait for the interaction transaction from the enableInteractions experiment
141141
await getMultipleSentryEnvelopeRequests<TransactionJSON>(page, 1);
142142

143-
const spanEnvelopesPromise = getMultipleSentryEnvelopeRequests<
144-
SpanJSON & { exclusive_time: number; measurements: Measurements }
145-
>(page, 1, {
143+
const spanEnvelopesPromise = getMultipleSentryEnvelopeRequests<SpanJSON>(page, 1, {
146144
envelopeType: 'span',
147145
});
148146
// Page hide to trigger INP
@@ -157,6 +155,6 @@ sentryTest('should capture an INP click event span. @firefox', async ({ browserN
157155
expect(spanEnvelopes[0].op).toBe('ui.interaction.click');
158156
expect(spanEnvelopes[0].description).toBe('body > button.clicked');
159157
expect(spanEnvelopes[0].exclusive_time).toBeGreaterThan(0);
160-
expect(spanEnvelopes[0].measurements.inp.value).toBeGreaterThan(0);
161-
expect(spanEnvelopes[0].measurements.inp.unit).toBe('millisecond');
158+
expect(spanEnvelopes[0].measurements?.inp.value).toBeGreaterThan(0);
159+
expect(spanEnvelopes[0].measurements?.inp.unit).toBe('millisecond');
162160
});

packages/core/src/tracing/measurement.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,11 @@ export function setMeasurement(name: string, value: number, unit: MeasurementUni
2323
/**
2424
* Convert timed events to measurements.
2525
*/
26-
export function timedEventsToMeasurements(events: TimedEvent[]): Measurements {
26+
export function timedEventsToMeasurements(events: TimedEvent[]): Measurements | undefined {
27+
if (!events || events.length === 0) {
28+
return undefined;
29+
}
30+
2731
const measurements: Measurements = {};
2832
events.forEach(event => {
2933
const attributes = event.attributes || {};

packages/opentelemetry/src/spanExporter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ function maybeSend(spans: ReadableSpan[]): ReadableSpan[] {
143143
transactionEvent.spans = spans;
144144

145145
const measurements = timedEventsToMeasurements(span.events);
146-
if (Object.keys(measurements).length) {
146+
if (measurements && Object.keys(measurements).length) {
147147
transactionEvent.measurements = measurements;
148148
}
149149

packages/types/src/span.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ export interface SpanJSON {
5757
_metrics_summary?: Record<string, Array<MetricSummary>>;
5858
profile_id?: string;
5959
exclusive_time?: number;
60-
measurements: Measurements;
60+
measurements?: Measurements;
6161
}
6262

6363
// These are aligned with OpenTelemetry trace flags

0 commit comments

Comments
 (0)