1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- import {Tag} from 'sentry/types';
- import {useDiscoverQuery} from 'sentry/utils/discover/discoverQuery';
- import EventView from 'sentry/utils/discover/eventView';
- import {DiscoverDatasets} from 'sentry/utils/discover/types';
- import {useLocation} from 'sentry/utils/useLocation';
- import useOrganization from 'sentry/utils/useOrganization';
- import usePageFilters from 'sentry/utils/usePageFilters';
- type Props = {
- tag?: Tag;
- transaction?: string;
- };
- export const useProjectWebVitalsQuery = ({transaction, tag}: Props = {}) => {
- const organization = useOrganization();
- const pageFilters = usePageFilters();
- const location = useLocation();
- const projectEventView = EventView.fromNewQueryWithPageFilters(
- {
- fields: [
- 'p75(measurements.lcp)',
- 'p75(measurements.fcp)',
- 'p75(measurements.cls)',
- 'p75(measurements.ttfb)',
- 'p75(measurements.fid)',
- 'count()',
- 'failure_count()',
- 'p95(transaction.duration)',
- 'eps()',
- ],
- name: 'Web Vitals',
- query:
- 'transaction.op:pageload' +
- (transaction ? ` transaction:"${transaction}"` : '') +
- (tag ? ` ${tag.key}:"${tag.name}"` : ''),
- version: 2,
- dataset: DiscoverDatasets.METRICS,
- },
- pageFilters.selection
- );
- return useDiscoverQuery({
- eventView: projectEventView,
- limit: 50,
- location,
- orgSlug: organization.slug,
- options: {
- enabled: pageFilters.isReady,
- refetchOnWindowFocus: false,
- },
- });
- };
|