diff --git a/static/app/views/detectors/components/forms/metric/metricsVisualize.tsx b/static/app/views/detectors/components/forms/metric/metricsVisualize.tsx index 7c038ea251a4..071c19c2bf2e 100644 --- a/static/app/views/detectors/components/forms/metric/metricsVisualize.tsx +++ b/static/app/views/detectors/components/forms/metric/metricsVisualize.tsx @@ -24,7 +24,6 @@ import { import {SectionLabel} from 'sentry/views/detectors/components/forms/sectionLabel'; import {useMetricOptions} from 'sentry/views/explore/hooks/useMetricOptions'; import {NONE_UNIT, OPTIONS_BY_TYPE} from 'sentry/views/explore/metrics/constants'; -import {useHasMetricUnitsUI} from 'sentry/views/explore/metrics/hooks/useHasMetricUnitsUI'; import type {TraceMetric} from 'sentry/views/explore/metrics/metricQuery'; import {MetricTypeBadge} from 'sentry/views/explore/metrics/metricToolbar/metricOptionLabel'; import {parseMetricAggregate} from 'sentry/views/explore/metrics/parseMetricsAggregate'; @@ -52,7 +51,6 @@ interface MetricSelectOption extends SelectOption { */ export function MetricsVisualize() { const formContext = useContext(FormContext); - const hasMetricUnitsUI = useHasMetricUnitsUI(); const aggregateFunction = useMetricDetectorFormField( METRIC_DETECTOR_FORM_FIELDS.aggregateFunction ); @@ -72,32 +70,24 @@ export function MetricsVisualize() { environments: environment ? [environment] : undefined, }); - const metricSelectValue = makeMetricSelectValue( - hasMetricUnitsUI ? traceMetric : {name: traceMetric.name, type: traceMetric.type} - ); + const metricSelectValue = makeMetricSelectValue(traceMetric); const optionFromTraceMetric: MetricSelectOption = useMemo( () => ({ label: traceMetric.name || t('Select an application metric'), value: metricSelectValue, metricType: traceMetric.type as TraceMetricTypeValue, metricName: traceMetric.name, - metricUnit: hasMetricUnitsUI ? (traceMetric.unit ?? NONE_UNIT) : undefined, + metricUnit: traceMetric.unit ?? NONE_UNIT, trailingItems: ( - {hasDisplayMetricUnit(hasMetricUnitsUI, traceMetric.unit) ? ( + {hasDisplayMetricUnit(traceMetric.unit) ? ( {traceMetric.unit} ) : null} ), }), - [ - metricSelectValue, - traceMetric.name, - traceMetric.type, - traceMetric.unit, - hasMetricUnitsUI, - ] + [metricSelectValue, traceMetric.name, traceMetric.type, traceMetric.unit] ); const metricOptions = useMemo((): MetricSelectOption[] => { @@ -113,22 +103,15 @@ export function MetricsVisualize() { value: makeMetricSelectValue({ name: option[TraceMetricKnownFieldKey.METRIC_NAME], type: option[TraceMetricKnownFieldKey.METRIC_TYPE], - unit: hasMetricUnitsUI - ? (option[TraceMetricKnownFieldKey.METRIC_UNIT] ?? NONE_UNIT) - : undefined, + unit: option[TraceMetricKnownFieldKey.METRIC_UNIT] ?? NONE_UNIT, }), metricType: option[TraceMetricKnownFieldKey.METRIC_TYPE], metricName: option[TraceMetricKnownFieldKey.METRIC_NAME], - metricUnit: hasMetricUnitsUI - ? (option[TraceMetricKnownFieldKey.METRIC_UNIT] ?? NONE_UNIT) - : undefined, + metricUnit: option[TraceMetricKnownFieldKey.METRIC_UNIT] ?? NONE_UNIT, trailingItems: ( - {hasDisplayMetricUnit( - hasMetricUnitsUI, - option[TraceMetricKnownFieldKey.METRIC_UNIT] - ) ? ( + {hasDisplayMetricUnit(option[TraceMetricKnownFieldKey.METRIC_UNIT]) ? ( {option[TraceMetricKnownFieldKey.METRIC_UNIT]} @@ -137,7 +120,7 @@ export function MetricsVisualize() { ), })) ?? []), ]; - }, [metricOptionsData, optionFromTraceMetric, traceMetric.name, hasMetricUnitsUI]); + }, [metricOptionsData, optionFromTraceMetric, traceMetric.name]); const debouncedSetSearch = useMemo( () => @@ -179,7 +162,7 @@ export function MetricsVisualize() { const newMetric: TraceMetric = { name: option.metricName, type: option.metricType, - unit: hasMetricUnitsUI ? (option.metricUnit ?? NONE_UNIT) : undefined, + unit: option.metricUnit ?? NONE_UNIT, }; const newMetricType = option.metricType?.toLowerCase() ?? ''; const validOperations = OPTIONS_BY_TYPE[newMetricType] ?? []; @@ -204,12 +187,12 @@ export function MetricsVisualize() { traceMetric: { name: firstMetric.metricName, type: firstMetric.metricType, - unit: hasMetricUnitsUI ? (firstMetric.metricUnit ?? NONE_UNIT) : undefined, + unit: firstMetric.metricUnit ?? NONE_UNIT, }, }) ); } - }, [metricOptions, updateFormAggregate, traceMetric.name, hasMetricUnitsUI]); + }, [metricOptions, updateFormAggregate, traceMetric.name]); const previousOptions = usePrevious(metricOptions); const hasNoMetrics = isMetricOptionsEmpty && !search; diff --git a/static/app/views/explore/hooks/useMetricOptions.spec.tsx b/static/app/views/explore/hooks/useMetricOptions.spec.tsx index c923595a3d0a..ffbe3344cf0a 100644 --- a/static/app/views/explore/hooks/useMetricOptions.spec.tsx +++ b/static/app/views/explore/hooks/useMetricOptions.spec.tsx @@ -68,6 +68,7 @@ describe('useMetricOptions', () => { 'metric.type', 'count(metric.name)', 'max(timestamp_precise)', + 'metric.unit', ], referrer: 'api.explore.metric-options', }), @@ -117,6 +118,7 @@ describe('useMetricOptions', () => { 'metric.type', 'count(metric.name)', 'max(timestamp_precise)', + 'metric.unit', ], referrer: 'api.explore.metric-options', statsPeriod: '3d', diff --git a/static/app/views/explore/hooks/useMetricOptions.tsx b/static/app/views/explore/hooks/useMetricOptions.tsx index e6c5b3f979ec..803d29999819 100644 --- a/static/app/views/explore/hooks/useMetricOptions.tsx +++ b/static/app/views/explore/hooks/useMetricOptions.tsx @@ -9,7 +9,6 @@ import {defined} from 'sentry/utils/defined'; import {DiscoverDatasets} from 'sentry/utils/discover/types'; import {MutableSearch} from 'sentry/utils/tokenizeSearch'; import {useOrganization} from 'sentry/utils/useOrganization'; -import {useHasMetricUnitsUI} from 'sentry/views/explore/metrics/hooks/useHasMetricUnitsUI'; import { TraceMetricKnownFieldKey, type TraceMetricEventsResult, @@ -30,19 +29,15 @@ function metricOptionsQueryKey({ datetime, search, environments, - hasMetricUnitsUI, -}: UseMetricOptionsProps & {hasMetricUnitsUI?: boolean} = {}) { +}: UseMetricOptionsProps = {}) { const queryFields = [ TraceMetricKnownFieldKey.METRIC_NAME, TraceMetricKnownFieldKey.METRIC_TYPE, `count(${TraceMetricKnownFieldKey.METRIC_NAME})`, `max(${TraceMetricKnownFieldKey.TIMESTAMP_PRECISE})`, + TraceMetricKnownFieldKey.METRIC_UNIT, ]; - if (hasMetricUnitsUI) { - queryFields.push(TraceMetricKnownFieldKey.METRIC_UNIT); - } - let searchValue: MutableSearch | undefined; if (search) { searchValue = new MutableSearch(''); @@ -90,7 +85,6 @@ export function useMetricOptions({ }: UseMetricOptionsProps = {}) { const organization = useOrganization(); const {selection} = usePageFilters(); - const hasMetricUnitsUI = useHasMetricUnitsUI(); const { data: result, @@ -103,7 +97,6 @@ export function useMetricOptions({ projectIds: projectIds ?? selection.projects, datetime: datetime ?? selection.datetime, environments: environments ?? selection.environments, - hasMetricUnitsUI, }), refetchOnWindowFocus: false, diff --git a/static/app/views/explore/metrics/hooks/useHasMetricUnitsUI.tsx b/static/app/views/explore/metrics/hooks/useHasMetricUnitsUI.tsx deleted file mode 100644 index 5f5a2cafdbd6..000000000000 --- a/static/app/views/explore/metrics/hooks/useHasMetricUnitsUI.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import {useOrganization} from 'sentry/utils/useOrganization'; - -export function useHasMetricUnitsUI() { - const organization = useOrganization(); - return organization.features.includes('tracemetrics-units-ui'); -} diff --git a/static/app/views/explore/metrics/metricToolbar/metricSelector/metricDetailPanel.tsx b/static/app/views/explore/metrics/metricToolbar/metricSelector/metricDetailPanel.tsx index 1c5f0eb44a51..5db3fac009bc 100644 --- a/static/app/views/explore/metrics/metricToolbar/metricSelector/metricDetailPanel.tsx +++ b/static/app/views/explore/metrics/metricToolbar/metricSelector/metricDetailPanel.tsx @@ -20,13 +20,7 @@ import { const METRIC_ATTRIBUTES_DEBOUNCE_DURATION = 200; -export function MetricDetailPanel({ - metric, - hasMetricUnitsUI, -}: { - hasMetricUnitsUI: boolean; - metric: MetricSelectorOption | null; -}) { +export function MetricDetailPanel({metric}: {metric: MetricSelectorOption | null}) { if (!metric) { return ( @@ -46,7 +40,7 @@ export function MetricDetailPanel({ - {hasDisplayMetricUnit(hasMetricUnitsUI, metric.metricUnit) ? ( + {hasDisplayMetricUnit(metric.metricUnit) ? ( {t('Unit')} diff --git a/static/app/views/explore/metrics/metricToolbar/metricSelector/metricSelector.spec.tsx b/static/app/views/explore/metrics/metricToolbar/metricSelector/metricSelector.spec.tsx index 8654fd6b33f1..e66deef7d996 100644 --- a/static/app/views/explore/metrics/metricToolbar/metricSelector/metricSelector.spec.tsx +++ b/static/app/views/explore/metrics/metricToolbar/metricSelector/metricSelector.spec.tsx @@ -565,26 +565,11 @@ describe('MetricSelector', () => { }); }); - it('does not show unit badges without tracemetrics-units-ui feature', async () => { + it('shows unit badges', async () => { render(, { organization, }); - await userEvent.click(screen.getByRole('button', {name: 'bar'})); - await screen.findByRole('option', {name: 'bar'}); - - expect(screen.queryByText('millisecond')).not.toBeInTheDocument(); - expect(screen.queryByText('megabyte')).not.toBeInTheDocument(); - }); - - it('shows unit badges when tracemetrics-units-ui feature is enabled', async () => { - render(, { - organization: { - ...organization, - features: [...organization.features, 'tracemetrics-units-ui'], - }, - }); - await userEvent.click(screen.getByRole('button', {name: 'bar'})); await screen.findByRole('listbox'); @@ -593,10 +578,7 @@ describe('MetricSelector', () => { it('does not show a unit badge when the metric unit is none', async () => { render(, { - organization: { - ...organization, - features: [...organization.features, 'tracemetrics-units-ui'], - }, + organization, }); await userEvent.click(screen.getByRole('button', {name: 'bar'})); diff --git a/static/app/views/explore/metrics/metricToolbar/metricSelector/metricSelector.tsx b/static/app/views/explore/metrics/metricToolbar/metricSelector/metricSelector.tsx index 2a9340653372..ee6a643e458b 100644 --- a/static/app/views/explore/metrics/metricToolbar/metricSelector/metricSelector.tsx +++ b/static/app/views/explore/metrics/metricToolbar/metricSelector/metricSelector.tsx @@ -28,7 +28,6 @@ import {useOverlay} from 'sentry/utils/useOverlay'; import {usePrevious} from 'sentry/utils/usePrevious'; import {useMetricOptions} from 'sentry/views/explore/hooks/useMetricOptions'; import {NONE_UNIT} from 'sentry/views/explore/metrics/constants'; -import {useHasMetricUnitsUI} from 'sentry/views/explore/metrics/hooks/useHasMetricUnitsUI'; import type {TraceMetric} from 'sentry/views/explore/metrics/metricQuery'; import {MetricTypeBadge} from 'sentry/views/explore/metrics/metricToolbar/metricOptionLabel'; import {MetricDetailPanel} from 'sentry/views/explore/metrics/metricToolbar/metricSelector/metricDetailPanel'; @@ -69,16 +68,14 @@ function nextFrameCallback(cb: () => void) { function MetricOptionTrailingItems({ metricType, metricUnit, - hasMetricUnitsUI, }: { - hasMetricUnitsUI: boolean; metricType: TraceMetricTypeValue; metricUnit?: string; }) { return ( - {hasDisplayMetricUnit(hasMetricUnitsUI, metricUnit) ? ( + {hasDisplayMetricUnit(metricUnit) ? ( {metricUnit} ) : null} @@ -114,8 +111,6 @@ export function MetricSelector({ const theme = useTheme(); const triggerId = useId(); - const hasMetricUnitsUI = useHasMetricUnitsUI(); - const searchRef = useRef(null); const listElementRef = useRef(null); const scrollElementRef = useRef(null); @@ -163,7 +158,6 @@ export function MetricSelector({ ), }; @@ -173,7 +167,6 @@ export function MetricSelector({ traceMetricType, traceMetric.unit, traceMetricDisplayUnit, - hasMetricUnitsUI, ]); // Always show the selected metric at the top of the list so it's easy to @@ -230,7 +223,6 @@ export function MetricSelector({ lastSeen, trailingItems: () => ( @@ -295,7 +287,6 @@ export function MetricSelector({ traceMetric.type, traceMetric.unit, traceMetricSelectValue, - hasMetricUnitsUI, ]); // Auto-select the first selectable metric when no metric is currently @@ -799,7 +790,6 @@ export function MetricSelector({ > ) : null} diff --git a/static/app/views/explore/metrics/utils.tsx b/static/app/views/explore/metrics/utils.tsx index 571d9f82a6e4..82fb6124cde0 100644 --- a/static/app/views/explore/metrics/utils.tsx +++ b/static/app/views/explore/metrics/utils.tsx @@ -135,13 +135,8 @@ export function parseTraceMetricFromQuery(query: string): { }; } -export function hasDisplayMetricUnit( - hasMetricUnitsUI: boolean, - metricUnit?: string | null -): metricUnit is string { - return ( - hasMetricUnitsUI && !!metricUnit && metricUnit !== '-' && metricUnit !== NONE_UNIT - ); +export function hasDisplayMetricUnit(metricUnit?: string | null): metricUnit is string { + return !!metricUnit && metricUnit !== '-' && metricUnit !== NONE_UNIT; } export function makeMetricSelectValue(metric: TraceMetric): string {