import {Fragment} from 'react'; import styled from '@emotion/styled'; import Alert from 'sentry/components/alert'; import {t, tct} from 'sentry/locale'; import {space} from 'sentry/styles/space'; import {formatBytesBase2} from 'sentry/utils'; import {DurationUnit, SizeUnit} from 'sentry/utils/discover/fields'; import getDynamicText from 'sentry/utils/getDynamicText'; import {RESOURCE_THROUGHPUT_UNIT} from 'sentry/views/performance/browser/resources'; import {MetricReadout} from 'sentry/views/performance/metricReadout'; import {getTimeSpentExplanation} from 'sentry/views/starfish/components/tableCells/timeSpentCell'; import {DataTitles, getThroughputTitle} from 'sentry/views/starfish/views/spans/types'; type Props = { avgContentLength: number; avgDecodedContentLength: number; avgDuration: number; avgTransferSize: number; throughput: number; timeSpentPercentage: number; timeSpentTotal: number; }; function ResourceInfo(props: Props) { const { avgContentLength, avgDecodedContentLength, avgDuration, avgTransferSize, throughput, timeSpentPercentage, timeSpentTotal, } = props; const tooltips = { avgContentLength: tct( 'On average, this resource is [bytes] when encoded (for example when gzipped).', { bytes: getDynamicText({ value: formatBytesBase2(avgContentLength), fixed: 'xx KiB', }), } ), avgDecodedContentLength: tct('On average, this resource is [bytes] when decoded.', { bytes: getDynamicText({ value: formatBytesBase2(avgDecodedContentLength), fixed: 'xx KiB', }), }), avgTransferSize: tct( 'On average, the total bytes transferred over the network (body + headers) for this resource is [bytes].', { bytes: getDynamicText({ value: formatBytesBase2(avgTransferSize), fixed: 'xx KiB', }), } ), }; const hasNoData = avgContentLength === 0 && avgDecodedContentLength === 0 && avgTransferSize === 0; return ( {hasNoData && ( {t( "We couldn't find any size information for this resource, this is likely because the `timing-allow-origin` header is not set." )} )} ); } const MetricsRibbon = styled('div')` display: flex; flex-wrap: wrap; gap: ${space(4)}; `; export default ResourceInfo;