throughputChart.tsx 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import {CHART_PALETTE} from 'sentry/constants/chartPalette';
  2. import {t} from 'sentry/locale';
  3. import {useProcessQueuesTimeSeriesQuery} from 'sentry/views/insights/queues/queries/useProcessQueuesTimeSeriesQuery';
  4. import {usePublishQueuesTimeSeriesQuery} from 'sentry/views/insights/queues/queries/usePublishQueuesTimeSeriesQuery';
  5. import type {Referrer} from 'sentry/views/insights/queues/referrers';
  6. import {InsightsLineChartWidget} from '../../common/components/insightsLineChartWidget';
  7. import {renameDiscoverSeries} from '../../common/utils/renameDiscoverSeries';
  8. import {FIELD_ALIASES} from '../settings';
  9. interface Props {
  10. referrer: Referrer;
  11. destination?: string;
  12. error?: Error | null;
  13. }
  14. export function ThroughputChart({error, destination, referrer}: Props) {
  15. const {
  16. data: publishData,
  17. error: publishError,
  18. isPending: isPublishDataLoading,
  19. } = usePublishQueuesTimeSeriesQuery({
  20. destination,
  21. referrer,
  22. });
  23. const {
  24. data: processData,
  25. error: processError,
  26. isPending: isProcessDataLoading,
  27. } = useProcessQueuesTimeSeriesQuery({
  28. destination,
  29. referrer,
  30. });
  31. return (
  32. <InsightsLineChartWidget
  33. title={t('Published vs Processed')}
  34. series={[
  35. renameDiscoverSeries(
  36. {
  37. ...publishData['spm()'],
  38. color: CHART_PALETTE[2][1],
  39. },
  40. 'spm() span.op:queue.publish'
  41. ),
  42. renameDiscoverSeries(
  43. {
  44. ...processData['spm()'],
  45. color: CHART_PALETTE[2][2],
  46. },
  47. 'spm() span.op:queue.process'
  48. ),
  49. ]}
  50. aliases={FIELD_ALIASES}
  51. isLoading={isPublishDataLoading || isProcessDataLoading}
  52. error={error ?? processError ?? publishError}
  53. />
  54. );
  55. }