OrgLogUsage.tsx 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import { dailyUsageToDataPoints } from './Usage.utils'
  2. import UsageSection from './UsageSection/UsageSection'
  3. import { DataPoint } from '@/data/analytics/constants'
  4. import { PricingMetric, type OrgDailyUsageResponse } from '@/data/analytics/org-daily-stats-query'
  5. import type { OrgSubscription } from '@/data/subscriptions/types'
  6. export interface OrgLogUsageProps {
  7. orgSlug: string
  8. projectRef?: string | null
  9. startDate: string | undefined
  10. endDate: string | undefined
  11. subscription: OrgSubscription | undefined
  12. currentBillingCycleSelected: boolean
  13. orgDailyStats: OrgDailyUsageResponse | undefined
  14. isLoadingOrgDailyStats: boolean
  15. }
  16. const OrgLogUsage = ({
  17. orgSlug,
  18. projectRef,
  19. subscription,
  20. currentBillingCycleSelected,
  21. orgDailyStats,
  22. isLoadingOrgDailyStats,
  23. }: OrgLogUsageProps) => {
  24. const chartMeta: {
  25. [key: string]: { data: DataPoint[]; margin: number; isLoading: boolean }
  26. } = {
  27. [PricingMetric.LOG_INGESTION]: {
  28. data: dailyUsageToDataPoints(
  29. orgDailyStats,
  30. (metric) => metric === PricingMetric.LOG_INGESTION
  31. ),
  32. margin: 18,
  33. isLoading: isLoadingOrgDailyStats,
  34. },
  35. [PricingMetric.LOG_QUERYING]: {
  36. data: dailyUsageToDataPoints(
  37. orgDailyStats,
  38. (metric) => metric === PricingMetric.LOG_QUERYING
  39. ),
  40. margin: 20,
  41. isLoading: isLoadingOrgDailyStats,
  42. },
  43. [PricingMetric.LOG_STORAGE]: {
  44. data: dailyUsageToDataPoints(orgDailyStats, (metric) => metric === PricingMetric.LOG_STORAGE),
  45. margin: 0,
  46. isLoading: isLoadingOrgDailyStats,
  47. },
  48. }
  49. return (
  50. <UsageSection
  51. orgSlug={orgSlug}
  52. projectRef={projectRef}
  53. categoryKey="logs"
  54. chartMeta={chartMeta}
  55. subscription={subscription}
  56. currentBillingCycleSelected={currentBillingCycleSelected}
  57. />
  58. )
  59. }
  60. export default OrgLogUsage