projectMetrics.tsx 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import {Fragment} from 'react';
  2. import {Button} from 'sentry/components/button';
  3. import ExternalLink from 'sentry/components/links/externalLink';
  4. import SentryDocumentTitle from 'sentry/components/sentryDocumentTitle';
  5. import {t, tct} from 'sentry/locale';
  6. import type {RouteComponentProps} from 'sentry/types/legacyReactRouter';
  7. import type {Organization} from 'sentry/types/organization';
  8. import type {Project} from 'sentry/types/project';
  9. import {METRICS_DOCS_URL} from 'sentry/utils/metrics/constants';
  10. import routeTitleGen from 'sentry/utils/routeTitle';
  11. import {useMetricsOnboardingSidebar} from 'sentry/views/metrics/ddmOnboarding/useMetricsOnboardingSidebar';
  12. import {MetricsBetaEndAlert} from 'sentry/views/metrics/metricsBetaEndAlert';
  13. import SettingsPageHeader from 'sentry/views/settings/components/settingsPageHeader';
  14. import TextBlock from 'sentry/views/settings/components/text/textBlock';
  15. import PermissionAlert from 'sentry/views/settings/project/permissionAlert';
  16. import {CustomMetricsTable} from 'sentry/views/settings/projectMetrics/customMetricsTable';
  17. type Props = {
  18. organization: Organization;
  19. project: Project;
  20. } & RouteComponentProps<{projectId: string}, {}>;
  21. function ProjectMetrics({project, organization}: Props) {
  22. const {activateSidebar} = useMetricsOnboardingSidebar();
  23. return (
  24. <Fragment>
  25. <SentryDocumentTitle title={routeTitleGen(t('Metrics'), project.slug, false)} />
  26. <SettingsPageHeader
  27. title={t('Metrics')}
  28. action={
  29. <Button
  30. priority="primary"
  31. onClick={() => {
  32. activateSidebar();
  33. }}
  34. size="sm"
  35. >
  36. {t('Add Metric')}
  37. </Button>
  38. }
  39. />
  40. <TextBlock>
  41. {tct(
  42. `Metrics are numerical values extracted from span attributes that can help you track anything about your environment over time. To learn more about metrics, [link:read the docs].`,
  43. {
  44. link: <ExternalLink href={METRICS_DOCS_URL} />,
  45. }
  46. )}
  47. </TextBlock>
  48. <MetricsBetaEndAlert organization={organization} />
  49. <PermissionAlert project={project} />
  50. <CustomMetricsTable project={project} />
  51. </Fragment>
  52. );
  53. }
  54. export default ProjectMetrics;