diff --git a/static/app/views/dashboards/utils/prebuiltConfigs/mobileVitals/appStarts.ts b/static/app/views/dashboards/utils/prebuiltConfigs/mobileVitals/appStarts.ts index 75cb62e4a1de87..1d69243de639e7 100644 --- a/static/app/views/dashboards/utils/prebuiltConfigs/mobileVitals/appStarts.ts +++ b/static/app/views/dashboards/utils/prebuiltConfigs/mobileVitals/appStarts.ts @@ -7,13 +7,12 @@ import {APP_STARTS_DASHBOARD_TITLE} from 'sentry/views/dashboards/utils/prebuilt import {WIDGET_COLUMN_LABELS} from 'sentry/views/dashboards/utils/prebuiltConfigs/settings'; import {ModuleName, SpanFields} from 'sentry/views/insights/types'; -const TRANSACTION_OP_CONDITION = `${SpanFields.TRANSACTION_OP}:[ui.load,navigation]`; -const COLD_START_CONDITION = `${SpanFields.SPAN_OP}:app.start.cold ${SpanFields.SPAN_DESCRIPTION}:["Cold Start","Cold App Start"]`; -const WARM_START_CONDITION = `${SpanFields.SPAN_OP}:app.start.warm ${SpanFields.SPAN_DESCRIPTION}:["Warm Start","Warm App Start"]`; +const COLD_START_CONDITION = `has:${SpanFields.APP_VITALS_START_COLD_VALUE}`; +const WARM_START_CONDITION = `has:${SpanFields.APP_VITALS_START_WARM_VALUE}`; -const COLD_START_TABLE_OPERATIONS_CONDITION = `!${SpanFields.SPAN_DESCRIPTION}:"Cold Start" !${SpanFields.SPAN_DESCRIPTION}:"Warm Start" !${SpanFields.SPAN_DESCRIPTION}:"Cold App Start" !${SpanFields.SPAN_DESCRIPTION}:"Warm App Start" !${SpanFields.SPAN_DESCRIPTION}:"Initial Frame Render" has:${SpanFields.SPAN_DESCRIPTION} ${SpanFields.TRANSACTION_OP}:[ui.load,navigation] has:ttid app_start_type:cold ${SpanFields.SPAN_OP}:[app.start.cold,app.start.warm,contentprovider.load,application.load,activity.load,ui.load,process.load]`; +const COLD_START_TABLE_OPERATIONS_CONDITION = `!${SpanFields.SPAN_DESCRIPTION}:"Cold Start" !${SpanFields.SPAN_DESCRIPTION}:"Warm Start" !${SpanFields.SPAN_DESCRIPTION}:"Cold App Start" !${SpanFields.SPAN_DESCRIPTION}:"Warm App Start" !${SpanFields.SPAN_DESCRIPTION}:"Initial Frame Render" has:${SpanFields.SPAN_DESCRIPTION} ${SpanFields.TRANSACTION_OP}:[ui.load,navigation,app.start] has:ttid ${SpanFields.APP_VITALS_START_TYPE}:cold ${SpanFields.SPAN_OP}:[app.start.cold,app.start.warm,contentprovider.load,application.load,activity.load,ui.load,process.load]`; -const WARM_START_TABLE_OPERATIONS_CONDITION = `!${SpanFields.SPAN_DESCRIPTION}:"Cold Start" !${SpanFields.SPAN_DESCRIPTION}:"Warm Start" !${SpanFields.SPAN_DESCRIPTION}:"Cold App Start" !${SpanFields.SPAN_DESCRIPTION}:"Warm App Start" !${SpanFields.SPAN_DESCRIPTION}:"Initial Frame Render" has:${SpanFields.SPAN_DESCRIPTION} ${SpanFields.TRANSACTION_OP}:[ui.load,navigation] has:ttid app_start_type:warm ${SpanFields.SPAN_OP}:[app.start.cold,app.start.warm,contentprovider.load,application.load,activity.load,ui.load,process.load]`; +const WARM_START_TABLE_OPERATIONS_CONDITION = `!${SpanFields.SPAN_DESCRIPTION}:"Cold Start" !${SpanFields.SPAN_DESCRIPTION}:"Warm Start" !${SpanFields.SPAN_DESCRIPTION}:"Cold App Start" !${SpanFields.SPAN_DESCRIPTION}:"Warm App Start" !${SpanFields.SPAN_DESCRIPTION}:"Initial Frame Render" has:${SpanFields.SPAN_DESCRIPTION} ${SpanFields.TRANSACTION_OP}:[ui.load,navigation,app.start] has:ttid ${SpanFields.APP_VITALS_START_TYPE}:warm ${SpanFields.SPAN_OP}:[app.start.cold,app.start.warm,contentprovider.load,application.load,activity.load,ui.load,process.load]`; const AVG_COLD_STARTS_BIG_NUMBER_WIDGET: Widget = { id: 'avg-cold-starts-big-number', @@ -26,8 +25,8 @@ const AVG_COLD_STARTS_BIG_NUMBER_WIDGET: Widget = { queries: [ { name: '', - fields: [`avg(${SpanFields.SPAN_DURATION})`], - aggregates: [`avg(${SpanFields.SPAN_DURATION})`], + fields: [`avg(${SpanFields.APP_VITALS_START_COLD_VALUE})`], + aggregates: [`avg(${SpanFields.APP_VITALS_START_COLD_VALUE})`], columns: [], conditions: COLD_START_CONDITION, orderby: '', @@ -53,8 +52,8 @@ const TOTAL_COLD_START_COUNT_BIG_NUMBER_WIDGET: Widget = { queries: [ { name: '', - fields: [`count(${SpanFields.SPAN_DURATION})`], - aggregates: [`count(${SpanFields.SPAN_DURATION})`], + fields: [`count(${SpanFields.APP_VITALS_START_COLD_VALUE})`], + aggregates: [`count(${SpanFields.APP_VITALS_START_COLD_VALUE})`], columns: [], conditions: COLD_START_CONDITION, orderby: '', @@ -80,8 +79,8 @@ const AVG_WARM_STARTS_BIG_NUMBER_WIDGET: Widget = { queries: [ { name: '', - fields: [`avg(${SpanFields.SPAN_DURATION})`], - aggregates: [`avg(${SpanFields.SPAN_DURATION})`], + fields: [`avg(${SpanFields.APP_VITALS_START_WARM_VALUE})`], + aggregates: [`avg(${SpanFields.APP_VITALS_START_WARM_VALUE})`], columns: [], conditions: WARM_START_CONDITION, orderby: '', @@ -107,8 +106,8 @@ const TOTAL_WARM_START_COUNT_BIG_NUMBER_WIDGET: Widget = { queries: [ { name: '', - fields: [`count(${SpanFields.SPAN_DURATION})`], - aggregates: [`count(${SpanFields.SPAN_DURATION})`], + fields: [`count(${SpanFields.APP_VITALS_START_WARM_VALUE})`], + aggregates: [`count(${SpanFields.APP_VITALS_START_WARM_VALUE})`], columns: [], conditions: WARM_START_CONDITION, orderby: '', @@ -134,12 +133,12 @@ const AVG_COLD_START_LINE_WIDGET: Widget = { queries: [ { name: '', - fields: [`avg(${SpanFields.SPAN_DURATION})`], - aggregates: [`avg(${SpanFields.SPAN_DURATION})`], + fields: [`avg(${SpanFields.APP_VITALS_START_COLD_VALUE})`], + aggregates: [`avg(${SpanFields.APP_VITALS_START_COLD_VALUE})`], columns: [], fieldAliases: [], conditions: COLD_START_CONDITION, - orderby: `-avg(${SpanFields.SPAN_DURATION})`, + orderby: `-avg(${SpanFields.APP_VITALS_START_COLD_VALUE})`, }, ], layout: { @@ -162,12 +161,12 @@ const AVG_WARM_START_LINE_WIDGET: Widget = { queries: [ { name: '', - fields: [`avg(${SpanFields.SPAN_DURATION})`], - aggregates: [`avg(${SpanFields.SPAN_DURATION})`], + fields: [`avg(${SpanFields.APP_VITALS_START_WARM_VALUE})`], + aggregates: [`avg(${SpanFields.APP_VITALS_START_WARM_VALUE})`], columns: [], fieldAliases: [], conditions: WARM_START_CONDITION, - orderby: `-avg(${SpanFields.SPAN_DURATION})`, + orderby: `-avg(${SpanFields.APP_VITALS_START_WARM_VALUE})`, }, ], layout: { @@ -190,10 +189,10 @@ const COLD_START_DEVICE_DISTRIBUTION_WIDGET: Widget = { queries: [ { name: '', - fields: [SpanFields.DEVICE_CLASS, `avg(${SpanFields.APP_START_COLD})`], - aggregates: [`avg(${SpanFields.APP_START_COLD})`], + fields: [SpanFields.DEVICE_CLASS, `avg(${SpanFields.APP_VITALS_START_COLD_VALUE})`], + aggregates: [`avg(${SpanFields.APP_VITALS_START_COLD_VALUE})`], columns: [SpanFields.DEVICE_CLASS], - conditions: TRANSACTION_OP_CONDITION, + conditions: COLD_START_CONDITION, orderby: SpanFields.DEVICE_CLASS, }, ], @@ -217,10 +216,10 @@ const WARM_START_DEVICE_DISTRIBUTION_WIDGET: Widget = { queries: [ { name: '', - fields: [SpanFields.DEVICE_CLASS, `avg(${SpanFields.APP_START_WARM})`], - aggregates: [`avg(${SpanFields.APP_START_WARM})`], + fields: [SpanFields.DEVICE_CLASS, `avg(${SpanFields.APP_VITALS_START_WARM_VALUE})`], + aggregates: [`avg(${SpanFields.APP_VITALS_START_WARM_VALUE})`], columns: [SpanFields.DEVICE_CLASS], - conditions: TRANSACTION_OP_CONDITION, + conditions: WARM_START_CONDITION, orderby: SpanFields.DEVICE_CLASS, }, ], diff --git a/static/app/views/dashboards/utils/prebuiltConfigs/mobileVitals/mobileVitals.ts b/static/app/views/dashboards/utils/prebuiltConfigs/mobileVitals/mobileVitals.ts index e32f42f97ec802..61d9bd3c708419 100644 --- a/static/app/views/dashboards/utils/prebuiltConfigs/mobileVitals/mobileVitals.ts +++ b/static/app/views/dashboards/utils/prebuiltConfigs/mobileVitals/mobileVitals.ts @@ -8,22 +8,26 @@ import {TABLE_MIN_HEIGHT} from 'sentry/views/dashboards/utils/prebuiltConfigs/se import {ModuleName, SpanFields} from 'sentry/views/insights/types'; const TRANSACTION_OP_CONDITION = `${SpanFields.TRANSACTION_OP}:[ui.load,navigation]`; +const COLD_START_CONDITION = `has:${SpanFields.APP_VITALS_START_COLD_VALUE}`; +const WARM_START_CONDITION = `has:${SpanFields.APP_VITALS_START_WARM_VALUE}`; +const TTID_CONDITION = `has:${SpanFields.APP_VITALS_TTID_VALUE}`; +const TTFD_CONDITION = `has:${SpanFields.APP_VITALS_TTFD_VALUE}`; // Mirrors the appStarts.ts sub-dashboard which uses transaction.op without is_transaction:true. // The has: checks already restrict results to spans with app start data. OR is intentional: // a screen may only have warm-start data (app was already running) and should still appear. -const APP_START_CONDITION = `${TRANSACTION_OP_CONDITION} (has:${SpanFields.APP_START_COLD} OR has:${SpanFields.APP_START_WARM})`; +const APP_START_CONDITION = `${TRANSACTION_OP_CONDITION} (has:${SpanFields.APP_VITALS_START_COLD_VALUE} OR has:${SpanFields.APP_VITALS_START_WARM_VALUE})`; // Filters to root transaction spans (is_transaction:true) since TTID/TTFD are only set on // root spans. OR is intentional: TTFD can be absent while TTID is present // (reportFullyDrawn() is opt-in). -const SCREEN_LOAD_CONDITION = `is_transaction:true ${TRANSACTION_OP_CONDITION} (has:${SpanFields.MEASUREMENTS_TIME_TO_INITIAL_DISPLAY} OR has:${SpanFields.MEASUREMENTS_TIME_TO_FULL_DISPLAY})`; +const SCREEN_LOAD_CONDITION = `is_transaction:true ${TRANSACTION_OP_CONDITION} (has:${SpanFields.APP_VITALS_TTID_VALUE} OR has:${SpanFields.APP_VITALS_TTFD_VALUE})`; // Uses transaction.op (consistent with APP_START_CONDITION and SCREEN_LOAD_CONDITION) since // this table groups by transaction. Requires mobile.total_frames to be present — a single // `has:` on the shared denominator, because both the slow-frames and frozen-frames equations // are undefined when total_frames is absent. -const SCREEN_RENDERING_CONDITION = `${TRANSACTION_OP_CONDITION} has:${SpanFields.MOBILE_TOTAL_FRAMES}`; +const SCREEN_RENDERING_CONDITION = `${TRANSACTION_OP_CONDITION} has:${SpanFields.APP_VITALS_FRAMES_TOTAL_COUNT}`; const COLD_START_BIG_NUMBER_WIDGET: Widget = { id: 'cold-start-big-number', @@ -42,10 +46,10 @@ const COLD_START_BIG_NUMBER_WIDGET: Widget = { queries: [ { name: '', - fields: [`avg(${SpanFields.APP_START_COLD})`], - aggregates: [`avg(${SpanFields.APP_START_COLD})`], + fields: [`avg(${SpanFields.APP_VITALS_START_COLD_VALUE})`], + aggregates: [`avg(${SpanFields.APP_VITALS_START_COLD_VALUE})`], columns: [], - conditions: TRANSACTION_OP_CONDITION, + conditions: COLD_START_CONDITION, orderby: '', }, ], @@ -75,10 +79,10 @@ const WARM_START_BIG_NUMBER_WIDGET: Widget = { queries: [ { name: '', - fields: [`avg(${SpanFields.APP_START_WARM})`], - aggregates: [`avg(${SpanFields.APP_START_WARM})`], + fields: [`avg(${SpanFields.APP_VITALS_START_WARM_VALUE})`], + aggregates: [`avg(${SpanFields.APP_VITALS_START_WARM_VALUE})`], columns: [], - conditions: TRANSACTION_OP_CONDITION, + conditions: WARM_START_CONDITION, orderby: '', }, ], @@ -102,10 +106,10 @@ const AVG_TTID_BIG_NUMBER_WIDGET: Widget = { queries: [ { name: '', - fields: [`avg(${SpanFields.MEASUREMENTS_TIME_TO_INITIAL_DISPLAY})`], - aggregates: [`avg(${SpanFields.MEASUREMENTS_TIME_TO_INITIAL_DISPLAY})`], + fields: [`avg(${SpanFields.APP_VITALS_TTID_VALUE})`], + aggregates: [`avg(${SpanFields.APP_VITALS_TTID_VALUE})`], columns: [], - conditions: TRANSACTION_OP_CONDITION, + conditions: TTID_CONDITION, orderby: '', }, ], @@ -129,10 +133,10 @@ const AVG_TTFD_BIG_NUMBER_WIDGET: Widget = { queries: [ { name: '', - fields: [`avg(${SpanFields.MEASUREMENTS_TIME_TO_FULL_DISPLAY})`], - aggregates: [`avg(${SpanFields.MEASUREMENTS_TIME_TO_FULL_DISPLAY})`], + fields: [`avg(${SpanFields.APP_VITALS_TTFD_VALUE})`], + aggregates: [`avg(${SpanFields.APP_VITALS_TTFD_VALUE})`], columns: [], - conditions: TRANSACTION_OP_CONDITION, + conditions: TTFD_CONDITION, orderby: '', }, ], @@ -187,14 +191,14 @@ const SLOW_FRAME_RATE_WIDGET: Widget = { { name: '', fields: [ - `sum(${SpanFields.MOBILE_SLOW_FRAMES})`, - `sum(${SpanFields.MOBILE_TOTAL_FRAMES})`, - `equation|sum(${SpanFields.MOBILE_SLOW_FRAMES}) / sum(${SpanFields.MOBILE_TOTAL_FRAMES})`, + `sum(${SpanFields.APP_VITALS_FRAMES_SLOW_COUNT})`, + `sum(${SpanFields.APP_VITALS_FRAMES_TOTAL_COUNT})`, + `equation|sum(${SpanFields.APP_VITALS_FRAMES_SLOW_COUNT}) / sum(${SpanFields.APP_VITALS_FRAMES_TOTAL_COUNT})`, ], aggregates: [ - `sum(${SpanFields.MOBILE_SLOW_FRAMES})`, - `sum(${SpanFields.MOBILE_TOTAL_FRAMES})`, - `equation|sum(${SpanFields.MOBILE_SLOW_FRAMES}) / sum(${SpanFields.MOBILE_TOTAL_FRAMES})`, + `sum(${SpanFields.APP_VITALS_FRAMES_SLOW_COUNT})`, + `sum(${SpanFields.APP_VITALS_FRAMES_TOTAL_COUNT})`, + `equation|sum(${SpanFields.APP_VITALS_FRAMES_SLOW_COUNT}) / sum(${SpanFields.APP_VITALS_FRAMES_TOTAL_COUNT})`, ], selectedAggregate: 2, columns: [], @@ -223,14 +227,14 @@ const FROZEN_FRAME_RATE_WIDGET: Widget = { { name: '', fields: [ - `sum(${SpanFields.MOBILE_FROZEN_FRAMES})`, - `sum(${SpanFields.MOBILE_TOTAL_FRAMES})`, - `equation|sum(${SpanFields.MOBILE_FROZEN_FRAMES}) / sum(${SpanFields.MOBILE_TOTAL_FRAMES})`, + `sum(${SpanFields.APP_VITALS_FRAMES_FROZEN_COUNT})`, + `sum(${SpanFields.APP_VITALS_FRAMES_TOTAL_COUNT})`, + `equation|sum(${SpanFields.APP_VITALS_FRAMES_FROZEN_COUNT}) / sum(${SpanFields.APP_VITALS_FRAMES_TOTAL_COUNT})`, ], aggregates: [ - `sum(${SpanFields.MOBILE_FROZEN_FRAMES})`, - `sum(${SpanFields.MOBILE_TOTAL_FRAMES})`, - `equation|sum(${SpanFields.MOBILE_FROZEN_FRAMES}) / sum(${SpanFields.MOBILE_TOTAL_FRAMES})`, + `sum(${SpanFields.APP_VITALS_FRAMES_FROZEN_COUNT})`, + `sum(${SpanFields.APP_VITALS_FRAMES_TOTAL_COUNT})`, + `equation|sum(${SpanFields.APP_VITALS_FRAMES_FROZEN_COUNT}) / sum(${SpanFields.APP_VITALS_FRAMES_TOTAL_COUNT})`, ], selectedAggregate: 2, columns: [], @@ -258,8 +262,8 @@ const AVG_FRAME_DELAY_WIDGET: Widget = { queries: [ { name: '', - fields: [`avg(${SpanFields.MOBILE_FRAMES_DELAY})`], - aggregates: [`avg(${SpanFields.MOBILE_FRAMES_DELAY})`], + fields: [`avg(${SpanFields.APP_VITALS_FRAMES_DELAY_VALUE})`], + aggregates: [`avg(${SpanFields.APP_VITALS_FRAMES_DELAY_VALUE})`], columns: [], conditions: TRANSACTION_OP_CONDITION, orderby: '', @@ -287,13 +291,13 @@ const APP_START_TABLE: Widget = { name: '', fields: [ SpanFields.TRANSACTION, - `avg(${SpanFields.APP_START_COLD})`, - `avg(${SpanFields.APP_START_WARM})`, + `avg(${SpanFields.APP_VITALS_START_COLD_VALUE})`, + `avg(${SpanFields.APP_VITALS_START_WARM_VALUE})`, `count(${SpanFields.SPAN_DURATION})`, ], aggregates: [ - `avg(${SpanFields.APP_START_COLD})`, - `avg(${SpanFields.APP_START_WARM})`, + `avg(${SpanFields.APP_VITALS_START_COLD_VALUE})`, + `avg(${SpanFields.APP_VITALS_START_WARM_VALUE})`, `count(${SpanFields.SPAN_DURATION})`, ], columns: [SpanFields.TRANSACTION], @@ -331,13 +335,13 @@ const SCREEN_RENDERING_TABLE: Widget = { name: '', fields: [ SpanFields.TRANSACTION, - `equation|sum(${SpanFields.MOBILE_SLOW_FRAMES})/sum(${SpanFields.MOBILE_TOTAL_FRAMES})`, - `equation|sum(${SpanFields.MOBILE_FROZEN_FRAMES})/sum(${SpanFields.MOBILE_TOTAL_FRAMES})`, + `equation|sum(${SpanFields.APP_VITALS_FRAMES_SLOW_COUNT})/sum(${SpanFields.APP_VITALS_FRAMES_TOTAL_COUNT})`, + `equation|sum(${SpanFields.APP_VITALS_FRAMES_FROZEN_COUNT})/sum(${SpanFields.APP_VITALS_FRAMES_TOTAL_COUNT})`, `count(${SpanFields.SPAN_DURATION})`, ], aggregates: [ - `equation|sum(${SpanFields.MOBILE_SLOW_FRAMES})/sum(${SpanFields.MOBILE_TOTAL_FRAMES})`, - `equation|sum(${SpanFields.MOBILE_FROZEN_FRAMES})/sum(${SpanFields.MOBILE_TOTAL_FRAMES})`, + `equation|sum(${SpanFields.APP_VITALS_FRAMES_SLOW_COUNT})/sum(${SpanFields.APP_VITALS_FRAMES_TOTAL_COUNT})`, + `equation|sum(${SpanFields.APP_VITALS_FRAMES_FROZEN_COUNT})/sum(${SpanFields.APP_VITALS_FRAMES_TOTAL_COUNT})`, `count(${SpanFields.SPAN_DURATION})`, ], columns: [SpanFields.TRANSACTION], @@ -380,13 +384,13 @@ const SCREEN_LOAD_TABLE: Widget = { name: '', fields: [ SpanFields.TRANSACTION, - `avg(${SpanFields.MEASUREMENTS_TIME_TO_INITIAL_DISPLAY})`, - `avg(${SpanFields.MEASUREMENTS_TIME_TO_FULL_DISPLAY})`, + `avg(${SpanFields.APP_VITALS_TTID_VALUE})`, + `avg(${SpanFields.APP_VITALS_TTFD_VALUE})`, `count(${SpanFields.SPAN_DURATION})`, ], aggregates: [ - `avg(${SpanFields.MEASUREMENTS_TIME_TO_INITIAL_DISPLAY})`, - `avg(${SpanFields.MEASUREMENTS_TIME_TO_FULL_DISPLAY})`, + `avg(${SpanFields.APP_VITALS_TTID_VALUE})`, + `avg(${SpanFields.APP_VITALS_TTFD_VALUE})`, `count(${SpanFields.SPAN_DURATION})`, ], columns: [SpanFields.TRANSACTION], diff --git a/static/app/views/dashboards/utils/prebuiltConfigs/mobileVitals/screenLoads.ts b/static/app/views/dashboards/utils/prebuiltConfigs/mobileVitals/screenLoads.ts index 95adbc8d624c15..fe67423458cbbb 100644 --- a/static/app/views/dashboards/utils/prebuiltConfigs/mobileVitals/screenLoads.ts +++ b/static/app/views/dashboards/utils/prebuiltConfigs/mobileVitals/screenLoads.ts @@ -6,7 +6,8 @@ import type {PrebuiltDashboard} from 'sentry/views/dashboards/utils/prebuiltConf import {SCREEN_LOADS_DASHBOARD_TITLE} from 'sentry/views/dashboards/utils/prebuiltConfigs/mobileVitals/settings'; import {ModuleName, SpanFields} from 'sentry/views/insights/types'; -const TRANSACTION_CONDITION = `is_transaction:true ${SpanFields.TRANSACTION_OP}:[ui.load,navigation]`; +const TTID_CONDITION = `has:${SpanFields.APP_VITALS_TTID_VALUE} ${SpanFields.TRANSACTION_OP}:[ui.load,navigation]`; +const TTFD_CONDITION = `has:${SpanFields.APP_VITALS_TTFD_VALUE} ${SpanFields.TRANSACTION_OP}:[ui.load,navigation]`; const SPAN_OPERATIONS_CONDITION = `${SpanFields.TRANSACTION_OP}:[ui.load,navigation] has:${SpanFields.SPAN_DESCRIPTION} ${SpanFields.SPAN_OP}:[file.read,file.write,ui.load,navigation,http.client,db,db.sql.room,db.sql.query,db.sql.transaction]`; const AVG_TTID_BIG_NUMBER_WIDGET: Widget = { @@ -20,10 +21,10 @@ const AVG_TTID_BIG_NUMBER_WIDGET: Widget = { queries: [ { name: '', - fields: [`avg(${SpanFields.MEASUREMENTS_TIME_TO_INITIAL_DISPLAY})`], - aggregates: [`avg(${SpanFields.MEASUREMENTS_TIME_TO_INITIAL_DISPLAY})`], + fields: [`avg(${SpanFields.APP_VITALS_TTID_VALUE})`], + aggregates: [`avg(${SpanFields.APP_VITALS_TTID_VALUE})`], columns: [], - conditions: TRANSACTION_CONDITION, + conditions: TTID_CONDITION, orderby: '', }, ], @@ -47,10 +48,10 @@ const AVG_TTFD_BIG_NUMBER_WIDGET: Widget = { queries: [ { name: '', - fields: [`avg(${SpanFields.MEASUREMENTS_TIME_TO_FULL_DISPLAY})`], - aggregates: [`avg(${SpanFields.MEASUREMENTS_TIME_TO_FULL_DISPLAY})`], + fields: [`avg(${SpanFields.APP_VITALS_TTFD_VALUE})`], + aggregates: [`avg(${SpanFields.APP_VITALS_TTFD_VALUE})`], columns: [], - conditions: TRANSACTION_CONDITION, + conditions: TTFD_CONDITION, orderby: '', }, ], @@ -77,7 +78,7 @@ const TOTAL_COUNT_BIG_NUMBER_WIDGET: Widget = { fields: [`count(${SpanFields.SPAN_DURATION})`], aggregates: [`count(${SpanFields.SPAN_DURATION})`], columns: [], - conditions: TRANSACTION_CONDITION, + conditions: TTID_CONDITION, orderby: '', }, ], @@ -101,12 +102,12 @@ const AVG_TTID_LINE_WIDGET: Widget = { queries: [ { name: 'TTID', - fields: [`avg(${SpanFields.MEASUREMENTS_TIME_TO_INITIAL_DISPLAY})`], - aggregates: [`avg(${SpanFields.MEASUREMENTS_TIME_TO_INITIAL_DISPLAY})`], + fields: [`avg(${SpanFields.APP_VITALS_TTID_VALUE})`], + aggregates: [`avg(${SpanFields.APP_VITALS_TTID_VALUE})`], columns: [], fieldAliases: [], - conditions: TRANSACTION_CONDITION, - orderby: 'avg(measurements.time_to_initial_display)', + conditions: TTID_CONDITION, + orderby: `avg(${SpanFields.APP_VITALS_TTID_VALUE})`, }, ], layout: { @@ -129,12 +130,12 @@ const AVG_TTFD_LINE_WIDGET: Widget = { queries: [ { name: 'TTFD', - fields: [`avg(${SpanFields.MEASUREMENTS_TIME_TO_FULL_DISPLAY})`], - aggregates: [`avg(${SpanFields.MEASUREMENTS_TIME_TO_FULL_DISPLAY})`], + fields: [`avg(${SpanFields.APP_VITALS_TTFD_VALUE})`], + aggregates: [`avg(${SpanFields.APP_VITALS_TTFD_VALUE})`], columns: [], fieldAliases: [], - conditions: TRANSACTION_CONDITION, - orderby: 'avg(measurements.time_to_full_display)', + conditions: TTFD_CONDITION, + orderby: `avg(${SpanFields.APP_VITALS_TTFD_VALUE})`, }, ], layout: { @@ -161,7 +162,7 @@ const TOTAL_COUNT_LINE_WIDGET: Widget = { aggregates: [`count(${SpanFields.SPAN_DURATION})`], columns: [], fieldAliases: [], - conditions: TRANSACTION_CONDITION, + conditions: TTID_CONDITION, orderby: `count(${SpanFields.SPAN_DURATION})`, }, ], @@ -185,14 +186,11 @@ const TTID_BAR_CHART_WIDGET: Widget = { queries: [ { name: '', - fields: [ - SpanFields.DEVICE_CLASS, - `avg(${SpanFields.MEASUREMENTS_TIME_TO_INITIAL_DISPLAY})`, - ], - aggregates: [`avg(${SpanFields.MEASUREMENTS_TIME_TO_INITIAL_DISPLAY})`], + fields: [SpanFields.DEVICE_CLASS, `avg(${SpanFields.APP_VITALS_TTID_VALUE})`], + aggregates: [`avg(${SpanFields.APP_VITALS_TTID_VALUE})`], columns: [SpanFields.DEVICE_CLASS], fieldAliases: [t('Device Class'), 'AVG TTID'], - conditions: TRANSACTION_CONDITION, + conditions: TTID_CONDITION, orderby: SpanFields.DEVICE_CLASS, }, ], @@ -216,14 +214,11 @@ const TTFD_BAR_CHART_WIDGET: Widget = { queries: [ { name: '', - fields: [ - SpanFields.DEVICE_CLASS, - `avg(${SpanFields.MEASUREMENTS_TIME_TO_FULL_DISPLAY})`, - ], - aggregates: [`avg(${SpanFields.MEASUREMENTS_TIME_TO_FULL_DISPLAY})`], + fields: [SpanFields.DEVICE_CLASS, `avg(${SpanFields.APP_VITALS_TTFD_VALUE})`], + aggregates: [`avg(${SpanFields.APP_VITALS_TTFD_VALUE})`], columns: [SpanFields.DEVICE_CLASS], fieldAliases: [t('Device Class'), 'AVG TTFD'], - conditions: TRANSACTION_CONDITION, + conditions: TTFD_CONDITION, orderby: SpanFields.DEVICE_CLASS, }, ], diff --git a/static/app/views/dashboards/utils/prebuiltConfigs/mobileVitals/screenRendering.ts b/static/app/views/dashboards/utils/prebuiltConfigs/mobileVitals/screenRendering.ts index 35ea5e0439a7b5..9cd23d667250ad 100644 --- a/static/app/views/dashboards/utils/prebuiltConfigs/mobileVitals/screenRendering.ts +++ b/static/app/views/dashboards/utils/prebuiltConfigs/mobileVitals/screenRendering.ts @@ -21,14 +21,14 @@ const SPAN_OPERATIONS_TABLE: Widget = { fields: [ SpanFields.SPAN_OP, SpanFields.SPAN_DESCRIPTION, - `equation|sum(${SpanFields.MOBILE_SLOW_FRAMES})/sum(${SpanFields.MOBILE_TOTAL_FRAMES})`, - `equation|sum(${SpanFields.MOBILE_FROZEN_FRAMES})/sum(${SpanFields.MOBILE_TOTAL_FRAMES})`, - `avg(${SpanFields.MOBILE_FRAMES_DELAY})`, + `equation|sum(${SpanFields.APP_VITALS_FRAMES_SLOW_COUNT})/sum(${SpanFields.APP_VITALS_FRAMES_TOTAL_COUNT})`, + `equation|sum(${SpanFields.APP_VITALS_FRAMES_FROZEN_COUNT})/sum(${SpanFields.APP_VITALS_FRAMES_TOTAL_COUNT})`, + `avg(${SpanFields.APP_VITALS_FRAMES_DELAY_VALUE})`, ], aggregates: [ - `equation|sum(${SpanFields.MOBILE_SLOW_FRAMES})/sum(${SpanFields.MOBILE_TOTAL_FRAMES})`, - `equation|sum(${SpanFields.MOBILE_FROZEN_FRAMES})/sum(${SpanFields.MOBILE_TOTAL_FRAMES})`, - `avg(${SpanFields.MOBILE_FRAMES_DELAY})`, + `equation|sum(${SpanFields.APP_VITALS_FRAMES_SLOW_COUNT})/sum(${SpanFields.APP_VITALS_FRAMES_TOTAL_COUNT})`, + `equation|sum(${SpanFields.APP_VITALS_FRAMES_FROZEN_COUNT})/sum(${SpanFields.APP_VITALS_FRAMES_TOTAL_COUNT})`, + `avg(${SpanFields.APP_VITALS_FRAMES_DELAY_VALUE})`, ], columns: [SpanFields.SPAN_OP, SpanFields.SPAN_DESCRIPTION], fieldAliases: [ @@ -39,7 +39,7 @@ const SPAN_OPERATIONS_TABLE: Widget = { 'Delay', ], conditions: SPAN_OPERATIONS_CONDITION, - orderby: '-avg(mobile.frames_delay)', + orderby: `-avg(${SpanFields.APP_VITALS_FRAMES_DELAY_VALUE})`, }, ], layout: { diff --git a/static/app/views/insights/types.tsx b/static/app/views/insights/types.tsx index d98a0964375794..63b15f5042dcbc 100644 --- a/static/app/views/insights/types.tsx +++ b/static/app/views/insights/types.tsx @@ -141,18 +141,29 @@ export enum SpanFields { DB_SYSTEM = 'db.system', // TODO: this is a duplicate of `SPAN_SYSTEM` // Mobile fields + DEVICE_CLASS = 'device.class', + APP_VITALS_START_COLD_VALUE = 'app.vitals.start.cold.value', + APP_VITALS_START_WARM_VALUE = 'app.vitals.start.warm.value', + APP_VITALS_START_TYPE = 'app.vitals.start.type', + APP_VITALS_TTID_VALUE = 'app.vitals.ttid.value', + APP_VITALS_TTFD_VALUE = 'app.vitals.ttfd.value', + APP_VITALS_FRAMES_SLOW_COUNT = 'app.vitals.frames.slow.count', + APP_VITALS_FRAMES_FROZEN_COUNT = 'app.vitals.frames.frozen.count', + APP_VITALS_FRAMES_TOTAL_COUNT = 'app.vitals.frames.total.count', + APP_VITALS_FRAMES_DELAY_VALUE = 'app.vitals.frames.delay.value', + + // Mobile fields (deprecated, prefer app.vitals.* equivalents) MEASUREMENTS_TIME_TO_INITIAL_DISPLAY = 'measurements.time_to_initial_display', MEASUREMENTS_TIME_TO_FULL_DISPLAY = 'measurements.time_to_full_display', MOBILE_FROZEN_FRAMES = 'mobile.frozen_frames', MOBILE_TOTAL_FRAMES = 'mobile.total_frames', MOBILE_SLOW_FRAMES = 'mobile.slow_frames', - FROZEN_FRAMES_RATE = 'measurements.frames_frozen_rate', - SLOW_FRAMES_RATE = 'measurements.frames_slow_rate', - DEVICE_CLASS = 'device.class', APP_START_COLD = 'measurements.app_start_cold', APP_START_WARM = 'measurements.app_start_warm', MOBILE_FRAMES_DELAY = 'mobile.frames_delay', APP_START_TYPE = 'app_start_type', + FROZEN_FRAMES_RATE = 'measurements.frames_frozen_rate', + SLOW_FRAMES_RATE = 'measurements.frames_slow_rate', TTID = 'sentry.ttid', TTFD = 'sentry.ttfd',