types.tsx 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import {CheckInStatus} from 'sentry/views/monitors/types';
  2. export type TimeWindow = '1h' | '24h' | '7d' | '30d';
  3. export interface TimeWindowOptions {
  4. /**
  5. * The time format used for the cursor label and job tick tooltip
  6. */
  7. dateLabelFormat: string;
  8. /**
  9. * Props to pass to <DateTime> when displaying a time marker
  10. */
  11. dateTimeProps: {dateOnly?: boolean; timeOnly?: boolean};
  12. /**
  13. * The elapsed minutes based on the selected resolution
  14. */
  15. elapsedMinutes: number;
  16. /**
  17. * The interval between each grid line and time label in minutes
  18. */
  19. timeMarkerInterval: number;
  20. }
  21. // TODO(davidenwang): Remove this type as its a little too specific
  22. export type MonitorBucketData = MonitorBucket[];
  23. export type MonitorBucket = [timestamp: number, envData: MonitorBucketEnvMapping];
  24. export interface JobTickData {
  25. endTs: number;
  26. envMapping: MonitorBucketEnvMapping;
  27. roundedLeft: boolean;
  28. roundedRight: boolean;
  29. startTs: number;
  30. width: number;
  31. }
  32. export type StatsBucket = {
  33. [CheckInStatus.IN_PROGRESS]: number;
  34. [CheckInStatus.OK]: number;
  35. [CheckInStatus.MISSED]: number;
  36. [CheckInStatus.TIMEOUT]: number;
  37. [CheckInStatus.ERROR]: number;
  38. };
  39. export type MonitorBucketEnvMapping = Record<string, StatsBucket>;