index.tsx 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import {Fragment} from 'react';
  2. import {Alert} from 'sentry/components/alert';
  3. import {LinkButton} from 'sentry/components/button';
  4. import SentryDocumentTitle from 'sentry/components/sentryDocumentTitle';
  5. import {t} from 'sentry/locale';
  6. import {hasDynamicSamplingCustomFeature} from 'sentry/utils/dynamicSampling/features';
  7. import useOrganization from 'sentry/utils/useOrganization';
  8. import SettingsPageHeader from 'sentry/views/settings/components/settingsPageHeader';
  9. import {OrganizationSampling} from 'sentry/views/settings/dynamicSampling/organizationSampling';
  10. import {ProjectSampling} from 'sentry/views/settings/dynamicSampling/projectSampling';
  11. export default function DynamicSamplingSettings() {
  12. const organization = useOrganization();
  13. if (!hasDynamicSamplingCustomFeature(organization)) {
  14. return <Alert type="warning">{t("You don't have access to this feature")}</Alert>;
  15. }
  16. return (
  17. <Fragment>
  18. <SentryDocumentTitle title={t('Dynamic Sampling')} orgSlug={organization.slug} />
  19. <div>
  20. <SettingsPageHeader
  21. title={t('Dynamic Sampling')}
  22. action={
  23. <LinkButton
  24. external
  25. href="https://docs.sentry.io/product/performance/retention-priorities/"
  26. >
  27. {t('Read the docs')}
  28. </LinkButton>
  29. }
  30. />
  31. <p>
  32. {t(
  33. 'Dynamic sampling adaptively reduces the number of spans stored in Sentry without changing SDK sample rates. It allows you to keep the most relevant samples and obtain accurate high-level insights while limiting redundancy and stored span volume. You can customize sample rates and priorities in these settings to control which data is stored.'
  34. )}
  35. </p>
  36. {organization.samplingMode === 'organization' ? (
  37. <OrganizationSampling />
  38. ) : (
  39. <ProjectSampling />
  40. )}
  41. </div>
  42. </Fragment>
  43. );
  44. }