features.tsx 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import type {Organization} from 'sentry/types/organization';
  2. import {Dataset} from 'sentry/views/alerts/rules/metric/types';
  3. export function hasMetricsExperimentalFeature(organization: Organization) {
  4. return organization.features.includes('custom-metrics-experimental');
  5. }
  6. export function hasMetricsSidebarItem(organization: Organization) {
  7. return !organization.features.includes('ddm-sidebar-item-hidden');
  8. }
  9. export function hasCustomMetrics(organization: Organization) {
  10. return (
  11. organization.features.includes('custom-metrics') &&
  12. hasMetricsSidebarItem(organization)
  13. );
  14. }
  15. export function hasMetricAlertFeature(organization: Organization) {
  16. return organization.features.includes('incidents');
  17. }
  18. export function hasCustomMetricsExtractionRules(organization: Organization) {
  19. return organization.features.includes('custom-metrics-extraction-rule');
  20. }
  21. /**
  22. * Returns the forceMetricsLayer query param for the alert
  23. * wrapped in an object so it can be spread into existing query params
  24. * @param organization current organization
  25. * @param alertDataset dataset of the alert
  26. */
  27. export function getForceMetricsLayerQueryExtras(
  28. organization: Organization,
  29. alertDataset: Dataset
  30. ): {forceMetricsLayer: 'true'} | Record<string, never> {
  31. return hasCustomMetrics(organization) && alertDataset === Dataset.GENERIC_METRICS
  32. ? {forceMetricsLayer: 'true'}
  33. : {};
  34. }