useQueuesByDestinationQuery.tsx 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import {decodeScalar} from 'sentry/utils/queryString';
  2. import {MutableSearch} from 'sentry/utils/tokenizeSearch';
  3. import {useLocation} from 'sentry/utils/useLocation';
  4. import {DEFAULT_QUERY_FILTER} from 'sentry/views/performance/queues/settings';
  5. import {useSpanMetrics} from 'sentry/views/starfish/queries/useSpanMetrics';
  6. import {QueryParameterNames} from 'sentry/views/starfish/views/queryParameters';
  7. type Props = {
  8. enabled?: boolean;
  9. };
  10. export function useQueuesByDestinationQuery({enabled}: Props) {
  11. const location = useLocation();
  12. const cursor = decodeScalar(location.query?.[QueryParameterNames.DESTINATIONS_CURSOR]);
  13. const mutableSearch = new MutableSearch(DEFAULT_QUERY_FILTER);
  14. const response = useSpanMetrics({
  15. search: mutableSearch,
  16. fields: [
  17. // TODO: Return destination instead of transaction
  18. 'transaction',
  19. 'count()',
  20. 'count_op(queue.submit.celery)',
  21. 'count_op(queue.task.celery)',
  22. 'sum(span.self_time)',
  23. 'avg(span.self_time)',
  24. 'avg_if(span.self_time,span.op,queue.submit.celery)',
  25. 'avg_if(span.self_time,span.op,queue.task.celery)',
  26. ],
  27. enabled,
  28. sorts: [],
  29. limit: 10,
  30. cursor,
  31. referrer: 'api.performance.queues.destination-summary',
  32. });
  33. return response;
  34. }