BannerMetricsAPI.tsx 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { LOCAL_STORAGE_KEYS } from 'common'
  2. import { useParams } from 'common/hooks'
  3. import Link from 'next/link'
  4. import { Badge, Button } from 'ui'
  5. import { BannerCard } from '../BannerCard'
  6. import { useBannerStack } from '../BannerStackProvider'
  7. import { AnimatedLogos } from '@/components/interfaces/LogDrains/AnimatedLogos'
  8. import { useLocalStorageQuery } from '@/hooks/misc/useLocalStorage'
  9. import { DOCS_URL } from '@/lib/constants'
  10. import { useTrack } from '@/lib/telemetry/track'
  11. export const BannerMetricsAPI = () => {
  12. const { ref } = useParams()
  13. const track = useTrack()
  14. const { dismissBanner } = useBannerStack()
  15. const [, setIsDismissed] = useLocalStorageQuery(
  16. LOCAL_STORAGE_KEYS.OBSERVABILITY_BANNER_DISMISSED(ref ?? ''),
  17. false
  18. )
  19. return (
  20. <BannerCard
  21. onDismiss={() => {
  22. setIsDismissed(true)
  23. dismissBanner('metrics-api-banner')
  24. track('metrics_api_banner_dismiss_button_clicked')
  25. }}
  26. >
  27. <div className="flex flex-col gap-y-4">
  28. <div className="flex flex-col gap-y-2 items-start">
  29. <Badge variant="success" className="-ml-0.5 uppercase inline-flex items-center mb-2">
  30. Beta
  31. </Badge>
  32. <AnimatedLogos iconSize={20} className="h-[22px]!" />
  33. </div>
  34. <div className="flex flex-col gap-y-1 mb-2">
  35. <p className="text-sm font-medium">Export Metrics to your dashboards</p>
  36. <p className="text-xs text-foreground-lighter text-balance">
  37. Visualize over 200 database performance and health metrics with our Metrics API.
  38. </p>
  39. </div>
  40. <div className="flex gap-2">
  41. <Button type="default" size="tiny" asChild>
  42. <Link
  43. href={`${DOCS_URL}/guides/telemetry/metrics`}
  44. target="_blank"
  45. onClick={() => track('metrics_api_banner_cta_button_clicked')}
  46. >
  47. Get started for free
  48. </Link>
  49. </Button>
  50. </div>
  51. </div>
  52. </BannerCard>
  53. )
  54. }