diff --git a/x-pack/plugins/apm/public/components/app/Home/index.tsx b/x-pack/plugins/apm/public/components/app/Home/index.tsx
index b09c03f853aa9..c6c0861c26a34 100644
--- a/x-pack/plugins/apm/public/components/app/Home/index.tsx
+++ b/x-pack/plugins/apm/public/components/app/Home/index.tsx
@@ -83,7 +83,8 @@ interface Props {
}
export function Home({ tab }: Props) {
- const { config } = useApmPluginContext();
+ const { config, core } = useApmPluginContext();
+ const isMLEnabled = !!core.application.capabilities.ml;
const homeTabs = getHomeTabs(config);
const selectedTab = homeTabs.find(
(homeTab) => homeTab.name === tab
@@ -105,9 +106,11 @@ export function Home({ tab }: Props) {
-
-
-
+ {isMLEnabled && (
+
+
+
+ )}
diff --git a/x-pack/plugins/apm/public/components/app/Settings/anomaly_detection/add_environments.tsx b/x-pack/plugins/apm/public/components/app/Settings/anomaly_detection/add_environments.tsx
index 48fb19560e43f..a594edb32b083 100644
--- a/x-pack/plugins/apm/public/components/app/Settings/anomaly_detection/add_environments.tsx
+++ b/x-pack/plugins/apm/public/components/app/Settings/anomaly_detection/add_environments.tsx
@@ -64,7 +64,7 @@ export function AddEnvironments({
return (
{ML_ERRORS.MISSING_WRITE_PRIVILEGES}>}
/>
diff --git a/x-pack/plugins/apm/public/components/app/Settings/anomaly_detection/index.tsx b/x-pack/plugins/apm/public/components/app/Settings/anomaly_detection/index.tsx
index f59949b22b3c8..9c04caf61022a 100644
--- a/x-pack/plugins/apm/public/components/app/Settings/anomaly_detection/index.tsx
+++ b/x-pack/plugins/apm/public/components/app/Settings/anomaly_detection/index.tsx
@@ -29,7 +29,7 @@ const DEFAULT_VALUE: AnomalyDetectionApiResponse = {
export function AnomalyDetection() {
const plugin = useApmPluginContext();
- const canGetJobs = !!plugin.core.application.capabilities.ml.canGetJobs;
+ const canGetJobs = !!plugin.core.application.capabilities.ml?.canGetJobs;
const license = useLicense();
const hasValidLicense = license?.isActive && license?.hasAtLeast('platinum');
@@ -57,7 +57,7 @@ export function AnomalyDetection() {
return (
{ML_ERRORS.MISSING_READ_PRIVILEGES}>}
/>
diff --git a/x-pack/plugins/apm/public/components/app/Settings/index.tsx b/x-pack/plugins/apm/public/components/app/Settings/index.tsx
index bd2ea706e492d..1471bc345d850 100644
--- a/x-pack/plugins/apm/public/components/app/Settings/index.tsx
+++ b/x-pack/plugins/apm/public/components/app/Settings/index.tsx
@@ -16,8 +16,11 @@ import {
import { HomeLink } from '../../shared/Links/apm/HomeLink';
import { useLocation } from '../../../hooks/useLocation';
import { getAPMHref } from '../../shared/Links/apm/APMLink';
+import { useApmPluginContext } from '../../../hooks/useApmPluginContext';
export function Settings(props: { children: ReactNode }) {
+ const plugin = useApmPluginContext();
+ const isMLEnabled = !!plugin.core.application.capabilities.ml;
const { search, pathname } = useLocation();
return (
<>
@@ -48,17 +51,25 @@ export function Settings(props: { children: ReactNode }) {
'/settings/agent-configuration'
),
},
- {
- name: i18n.translate(
- 'xpack.apm.settings.anomalyDetection',
- {
- defaultMessage: 'Anomaly detection',
- }
- ),
- id: '4',
- href: getAPMHref('/settings/anomaly-detection', search),
- isSelected: pathname === '/settings/anomaly-detection',
- },
+ ...(isMLEnabled
+ ? [
+ {
+ name: i18n.translate(
+ 'xpack.apm.settings.anomalyDetection',
+ {
+ defaultMessage: 'Anomaly detection',
+ }
+ ),
+ id: '4',
+ href: getAPMHref(
+ '/settings/anomaly-detection',
+ search
+ ),
+ isSelected:
+ pathname === '/settings/anomaly-detection',
+ },
+ ]
+ : []),
{
name: i18n.translate('xpack.apm.settings.customizeApp', {
defaultMessage: 'Customize app',