diff --git a/x-pack/legacy/plugins/monitoring/public/components/cluster/overview/apm_panel.js b/x-pack/legacy/plugins/monitoring/public/components/cluster/overview/apm_panel.js
index f1f36fde6d899..9032378966b26 100644
--- a/x-pack/legacy/plugins/monitoring/public/components/cluster/overview/apm_panel.js
+++ b/x-pack/legacy/plugins/monitoring/public/components/cluster/overview/apm_panel.js
@@ -23,7 +23,7 @@ import {
EuiHorizontalRule,
EuiFlexGroup,
EuiToolTip,
- EuiBadge
+ EuiIcon
} from '@elastic/eui';
import { formatTimestampToDuration } from '../../../../common';
import { CALCULATE_DURATION_SINCE } from '../../../../common/constants';
@@ -39,35 +39,47 @@ export function ApmPanel(props) {
const goToApm = () => props.changeUrl('apm');
const goToInstances = () => props.changeUrl('apm/instances');
- const setupModeApmData = get(setupMode.data, 'apm');
+ const setupModeAPMData = get(setupMode.data, 'apm');
let setupModeInstancesData = null;
if (setupMode.enabled && setupMode.data) {
- const migratedNodesCount = Object.values(setupModeApmData.byUuid).filter(node => node.isFullyMigrated).length;
- let totalNodesCount = Object.values(setupModeApmData.byUuid).length;
- if (totalNodesCount === 0 && get(setupMode.data, 'apm.detected.mightExist', false)) {
- totalNodesCount = 1;
- }
+ const {
+ totalUniqueInstanceCount,
+ totalUniqueFullyMigratedCount,
+ totalUniquePartiallyMigratedCount
+ } = setupModeAPMData;
+ const hasInstances = totalUniqueInstanceCount > 0 || get(setupModeAPMData, 'detected.mightExist', false);
+ const allMonitoredByMetricbeat = totalUniqueInstanceCount > 0 &&
+ (totalUniqueFullyMigratedCount === totalUniqueInstanceCount || totalUniquePartiallyMigratedCount === totalUniqueInstanceCount);
+ const internalCollectionOn = totalUniquePartiallyMigratedCount > 0;
+ if (hasInstances && (!allMonitoredByMetricbeat || internalCollectionOn)) {
+ let tooltipText = null;
- const badgeColor = migratedNodesCount === totalNodesCount
- ? 'secondary'
- : 'danger';
+ if (!allMonitoredByMetricbeat) {
+ tooltipText = i18n.translate('xpack.monitoring.cluster.overview.apmPanel.setupModeNodesTooltip.oneInternal', {
+ defaultMessage: `There's at least one server that isn't being monitored using Metricbeat. Click the flag
+ icon to visit the servers listing page and find out more information about the status of each server.`
+ });
+ }
+ else if (internalCollectionOn) {
+ tooltipText = i18n.translate('xpack.monitoring.cluster.overview.apmPanel.setupModeNodesTooltip.disableInternal', {
+ defaultMessage: `All servers are being monitored using Metricbeat but internal collection still needs to be turned
+ off. Click the flag icon to visit the servers listing page and disable internal collection.`
+ });
+ }
- setupModeInstancesData = (
-
-
-
- {migratedNodesCount}/{totalNodesCount}
-
-
-
- );
+ setupModeInstancesData = (
+
+
+
+
+
+
+
+ );
+ }
}
return (
@@ -85,7 +97,7 @@ export function ApmPanel(props) {
node.isFullyMigrated).length;
- let totalNodesCount = Object.values(setupModeBeatsData.byUuid).length;
- if (totalNodesCount === 0 && get(setupMode.data, 'beats.detected.mightExist', false)) {
- totalNodesCount = 1;
- }
+ const {
+ totalUniqueInstanceCount,
+ totalUniqueFullyMigratedCount,
+ totalUniquePartiallyMigratedCount
+ } = setupModeBeatsData;
+ const hasInstances = totalUniqueInstanceCount > 0 || get(setupModeBeatsData, 'detected.mightExist', false);
+ const allMonitoredByMetricbeat = totalUniqueInstanceCount > 0 &&
+ (totalUniqueFullyMigratedCount === totalUniqueInstanceCount || totalUniquePartiallyMigratedCount === totalUniqueInstanceCount);
+ const internalCollectionOn = totalUniquePartiallyMigratedCount > 0;
+ if (hasInstances && (!allMonitoredByMetricbeat || internalCollectionOn)) {
+ let tooltipText = null;
- const badgeColor = migratedNodesCount === totalNodesCount
- ? 'secondary'
- : 'danger';
+ if (!allMonitoredByMetricbeat) {
+ tooltipText = i18n.translate('xpack.monitoring.cluster.overview.beatsPanel.setupModeNodesTooltip.oneInternal', {
+ defaultMessage: `There's at least one instance that isn't being monitored using Metricbeat. Click the flag
+ icon to visit the instances listing page and find out more information about the status of each instance.`
+ });
+ }
+ else if (internalCollectionOn) {
+ tooltipText = i18n.translate('xpack.monitoring.cluster.overview.beatsPanel.setupModeNodesTooltip.disableInternal', {
+ defaultMessage: `All instances are being monitored using Metricbeat but internal collection still needs to be turned
+ off. Click the flag icon to visit the instances listing page and disable internal collection.`
+ });
+ }
- setupModeInstancesData = (
-
-
-
- {migratedNodesCount}/{totalNodesCount}
-
-
-
- );
+ setupModeInstancesData = (
+
+
+
+
+
+
+
+ );
+ }
}
const beatTypes = props.beats.types.map((beat, index) => {
diff --git a/x-pack/legacy/plugins/monitoring/public/components/cluster/overview/logstash_panel.js b/x-pack/legacy/plugins/monitoring/public/components/cluster/overview/logstash_panel.js
index a3dfa7f2ef72b..ff647c1c219aa 100644
--- a/x-pack/legacy/plugins/monitoring/public/components/cluster/overview/logstash_panel.js
+++ b/x-pack/legacy/plugins/monitoring/public/components/cluster/overview/logstash_panel.js
@@ -22,7 +22,7 @@ import {
EuiHorizontalRule,
EuiIconTip,
EuiToolTip,
- EuiBadge
+ EuiIcon
} from '@elastic/eui';
import { FormattedMessage } from '@kbn/i18n/react';
import { i18n } from '@kbn/i18n';
@@ -45,32 +45,44 @@ export function LogstashPanel(props) {
const setupModeLogstashData = get(setupMode.data, 'logstash');
let setupModeInstancesData = null;
if (setupMode.enabled && setupMode.data) {
- const migratedNodesCount = Object.values(setupModeLogstashData.byUuid).filter(node => node.isFullyMigrated).length;
- let totalNodesCount = Object.values(setupModeLogstashData.byUuid).length;
- if (totalNodesCount === 0 && get(setupMode.data, 'logstash.detected.mightExist', false)) {
- totalNodesCount = 1;
- }
+ const {
+ totalUniqueInstanceCount,
+ totalUniqueFullyMigratedCount,
+ totalUniquePartiallyMigratedCount
+ } = setupModeLogstashData;
+ const hasInstances = totalUniqueInstanceCount > 0 || get(setupModeLogstashData, 'detected.mightExist', false);
+ const allMonitoredByMetricbeat = totalUniqueInstanceCount > 0 &&
+ (totalUniqueFullyMigratedCount === totalUniqueInstanceCount || totalUniquePartiallyMigratedCount === totalUniqueInstanceCount);
+ const internalCollectionOn = totalUniquePartiallyMigratedCount > 0;
+ if (hasInstances && (!allMonitoredByMetricbeat || internalCollectionOn)) {
+ let tooltipText = null;
- const badgeColor = migratedNodesCount === totalNodesCount
- ? 'secondary'
- : 'danger';
+ if (!allMonitoredByMetricbeat) {
+ tooltipText = i18n.translate('xpack.monitoring.cluster.overview.logstashPanel.setupModeNodesTooltip.oneInternal', {
+ defaultMessage: `There's at least one node that isn't being monitored using Metricbeat. Click the flag
+ icon to visit the nodes listing page and find out more information about the status of each node.`
+ });
+ }
+ else if (internalCollectionOn) {
+ tooltipText = i18n.translate('xpack.monitoring.cluster.overview.logstashPanel.setupModeNodesTooltip.disableInternal', {
+ defaultMessage: `All nodes are being monitored using Metricbeat but internal collection still needs to be turned
+ off. Click the flag icon to visit the nodes listing page and disable internal collection.`
+ });
+ }
- setupModeInstancesData = (
-
-
-
- {formatNumber(migratedNodesCount, 'int_commas')}/{formatNumber(totalNodesCount, 'int_commas')}
-
-
-
- );
+ setupModeInstancesData = (
+
+
+
+
+
+
+
+ );
+ }
}
return (
diff --git a/x-pack/legacy/plugins/monitoring/public/components/elasticsearch/nodes/nodes.js b/x-pack/legacy/plugins/monitoring/public/components/elasticsearch/nodes/nodes.js
index f8073937a7e4d..1f5d2712418ac 100644
--- a/x-pack/legacy/plugins/monitoring/public/components/elasticsearch/nodes/nodes.js
+++ b/x-pack/legacy/plugins/monitoring/public/components/elasticsearch/nodes/nodes.js
@@ -222,7 +222,7 @@ const getColumns = (showCgroupMetricsElasticsearch, setupMode) => {
};
export function ElasticsearchNodes({ clusterStatus, showCgroupMetricsElasticsearch, ...props }) {
- const { sorting, pagination, onTableChange, setupMode } = props;
+ const { sorting, pagination, onTableChange, clusterUuid, setupMode } = props;
const columns = getColumns(showCgroupMetricsElasticsearch, setupMode);
// Merge the nodes data with the setup data if enabled
@@ -251,6 +251,10 @@ export function ElasticsearchNodes({ clusterStatus, showCgroupMetricsElasticsear
// Think net new user scenario
const hasInstances = setupMode.data.totalUniqueInstanceCount > 0;
if (hasInstances && setupMode.data.totalUniquePartiallyMigratedCount === setupMode.data.totalUniqueInstanceCount) {
+ const finishMigrationAction = _.get(setupMode.meta, 'liveClusterUuid') === clusterUuid
+ ? setupMode.shortcutToFinishMigration
+ : setupMode.openFlyout;
+
disableInternalCollectionForMigrationMessage = (
- setupMode.openFlyout()} size="s" color="warning" fill>
+
{i18n.translate('xpack.monitoring.elasticsearch.nodes.metribeatMigration.disableInternalCollectionMigrationButtonLabel', {
defaultMessage: 'Disable and finish migration'
})}
diff --git a/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/flyout/flyout.js b/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/flyout/flyout.js
index 4f5e9135894b1..f8f13866f0938 100644
--- a/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/flyout/flyout.js
+++ b/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/flyout/flyout.js
@@ -27,10 +27,8 @@ import {
import { getInstructionSteps } from '../instruction_steps';
import { Storage } from 'ui/storage';
import { STORAGE_KEY, ELASTICSEARCH_CUSTOM_ID } from '../../../../common/constants';
-import { ensureMinimumTime } from '../../../lib/ensure_minimum_time';
import { i18n } from '@kbn/i18n';
import { FormattedMessage } from '@kbn/i18n/react';
-import { get } from 'lodash';
import {
INSTRUCTION_STEP_SET_MONITORING_URL,
INSTRUCTION_STEP_ENABLE_METRICBEAT,
@@ -38,11 +36,9 @@ import {
} from '../constants';
import { KIBANA_SYSTEM_ID, BEATS_SYSTEM_ID } from '../../../../../telemetry/common/constants';
import { ELASTIC_WEBSITE_URL, DOC_LINK_VERSION } from 'ui/documentation_links';
-import { setNewlyDiscoveredClusterUuid } from '../../../lib/setup_mode';
const storage = new Storage(window.localStorage);
const ES_MONITORING_URL_KEY = `${STORAGE_KEY}.mb_migration.esMonitoringUrl`;
-const AUTO_CHECK_INTERVAL_IN_MS = 5000;
const DEFAULT_ES_MONITORING_URL = 'http://localhost:9200';
export class Flyout extends Component {
@@ -67,66 +63,18 @@ export class Flyout extends Component {
checkedStatusByStep: {
[INSTRUCTION_STEP_ENABLE_METRICBEAT]: false,
[INSTRUCTION_STEP_DISABLE_INTERNAL]: false,
+ userAcknowledgedNoClusterUuidPrompt: false
},
- checkingMigrationStatus: false,
- userAcknowledgedNoClusterUuidPrompt: false
};
}
- componentWillUpdate(_nextProps, nextState) {
- // We attempt to provide a better UX for the user by automatically rechecking
- // the status of their current step, once they have initiated a check manually.
- // The logic here aims to remove the recheck one they have moved on from the
- // step
-
- const thisActiveStep = this.state.activeStep;
- const nextActiveStep = nextState.activeStep;
- const nextEnableMbStatus = nextState.checkedStatusByStep[INSTRUCTION_STEP_ENABLE_METRICBEAT];
- const nowEnableMbStatus = this.state.checkedStatusByStep[INSTRUCTION_STEP_ENABLE_METRICBEAT];
- const nextDisableInternalStatus = nextState.checkedStatusByStep[INSTRUCTION_STEP_DISABLE_INTERNAL];
- const nowDisableInternalStatus = this.state.checkedStatusByStep[INSTRUCTION_STEP_DISABLE_INTERNAL];
-
- const setupInterval = (nextEnableMbStatus && !nowEnableMbStatus) || (nextDisableInternalStatus && !nowDisableInternalStatus);
- const removeInterval = thisActiveStep !== nextActiveStep;
- if (removeInterval) {
- clearInterval(this.checkInterval);
- this.clearInterval = null;
- }
-
- if (setupInterval) {
- this.checkInterval = setInterval(async () => {
- await this.checkForMigrationStatus();
- }, AUTO_CHECK_INTERVAL_IN_MS);
- }
- }
-
- componentWillUnmount() {
- clearInterval(this.checkInterval);
- }
-
- checkForMigrationStatus = async () => {
- this.setState({ checkingMigrationStatus: true });
- await ensureMinimumTime(
- this.props.updateProduct(this.props.instance.uuid, true), 1000
- );
- this.setState(state => ({
- ...state,
- checkingMigrationStatus: false,
- checkedStatusByStep: {
- ...state.checkedStatusByStep,
- [this.state.activeStep]: true,
- }
- }));
- }
-
setEsMonitoringUrl = esMonitoringUrl => {
storage.set(ES_MONITORING_URL_KEY, esMonitoringUrl);
this.setState({ esMonitoringUrl });
}
finishedFlyout() {
- const { onClose, meta } = this.props;
- setNewlyDiscoveredClusterUuid(get(meta, 'clusterUuid'));
+ const { onClose } = this.props;
onClose();
}
@@ -136,7 +84,6 @@ export class Flyout extends Component {
activeStep,
esMonitoringUrl,
checkedStatusByStep,
- checkingMigrationStatus,
} = this.state;
switch (activeStep) {
@@ -166,10 +113,7 @@ export class Flyout extends Component {
const instructionSteps = getInstructionSteps(productName, product, activeStep, meta, {
doneWithMigration: onClose,
esMonitoringUrl,
- checkForMigrationStatus: this.checkForMigrationStatus,
- checkingMigrationStatus,
hasCheckedStatus: checkedStatusByStep[activeStep],
- autoCheckIntervalInMs: AUTO_CHECK_INTERVAL_IN_MS,
});
return (
diff --git a/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/apm/enable_metricbeat_instructions.js b/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/apm/enable_metricbeat_instructions.js
index cfc478761b62c..3f27cdd35ace0 100644
--- a/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/apm/enable_metricbeat_instructions.js
+++ b/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/apm/enable_metricbeat_instructions.js
@@ -9,9 +9,6 @@ import {
EuiSpacer,
EuiCodeBlock,
EuiLink,
- EuiFlexGroup,
- EuiFlexItem,
- EuiButton,
EuiCallOut,
EuiText
} from '@elastic/eui';
@@ -22,10 +19,6 @@ import { ELASTIC_WEBSITE_URL, DOC_LINK_VERSION } from 'ui/documentation_links';
export function getApmInstructionsForEnablingMetricbeat(product, _meta, {
esMonitoringUrl,
- hasCheckedStatus,
- checkingMigrationStatus,
- checkForMigrationStatus,
- autoCheckIntervalInMs
}) {
const securitySetup = (
@@ -174,60 +167,18 @@ export function getApmInstructionsForEnablingMetricbeat(product, _meta, {
let migrationStatusStep = null;
if (product.isInternalCollector || product.isNetNewUser) {
- let status = null;
- if (hasCheckedStatus) {
- status = (
-
-
-
-
- );
- }
-
- let buttonLabel;
- if (checkingMigrationStatus) {
- buttonLabel = i18n.translate('xpack.monitoring.metricbeatMigration.apmInstructions.checkingStatusButtonLabel', {
- defaultMessage: 'Checking for data...'
- });
- } else {
- buttonLabel = i18n.translate('xpack.monitoring.metricbeatMigration.apmInstructions.checkStatusButtonLabel', {
- defaultMessage: 'Check for data'
- });
- }
-
migrationStatusStep = {
title: statusTitle,
status: 'incomplete',
children: (
-
-
-
-
-
- {i18n.translate('xpack.monitoring.metricbeatMigration.apmInstructions.statusDescription', {
- defaultMessage: 'Check that data is received from the Metricbeat'
- })}
-
-
-
-
-
- {buttonLabel}
-
-
-
- {status}
-
+
)
};
}
diff --git a/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/beats/enable_metricbeat_instructions.js b/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/beats/enable_metricbeat_instructions.js
index 810304cf2a7ce..8d167379615d5 100644
--- a/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/beats/enable_metricbeat_instructions.js
+++ b/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/beats/enable_metricbeat_instructions.js
@@ -9,9 +9,6 @@ import {
EuiSpacer,
EuiCodeBlock,
EuiLink,
- EuiFlexGroup,
- EuiFlexItem,
- EuiButton,
EuiCallOut,
EuiText
} from '@elastic/eui';
@@ -22,10 +19,6 @@ import { ELASTIC_WEBSITE_URL, DOC_LINK_VERSION } from 'ui/documentation_links';
export function getBeatsInstructionsForEnablingMetricbeat(product, _meta, {
esMonitoringUrl,
- hasCheckedStatus,
- checkingMigrationStatus,
- checkForMigrationStatus,
- autoCheckIntervalInMs
}) {
const beatType = product.beatType;
const securitySetup = (
@@ -214,60 +207,18 @@ export function getBeatsInstructionsForEnablingMetricbeat(product, _meta, {
let migrationStatusStep = null;
if (product.isInternalCollector || product.isNetNewUser) {
- let status = null;
- if (hasCheckedStatus) {
- status = (
-
-
-
-
- );
- }
-
- let buttonLabel;
- if (checkingMigrationStatus) {
- buttonLabel = i18n.translate('xpack.monitoring.metricbeatMigration.beatsInstructions.checkingStatusButtonLabel', {
- defaultMessage: 'Checking for data...'
- });
- } else {
- buttonLabel = i18n.translate('xpack.monitoring.metricbeatMigration.beatsInstructions.checkStatusButtonLabel', {
- defaultMessage: 'Check for data'
- });
- }
-
migrationStatusStep = {
title: statusTitle,
status: 'incomplete',
children: (
-
-
-
-
-
- {i18n.translate('xpack.monitoring.metricbeatMigration.beatsInstructions.statusDescription', {
- defaultMessage: 'Check that data is received from the Metricbeat'
- })}
-
-
-
-
-
- {buttonLabel}
-
-
-
- {status}
-
+
)
};
}
diff --git a/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/elasticsearch/disable_internal_collection_instructions.js b/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/elasticsearch/disable_internal_collection_instructions.js
index 91aaca02de056..d09f134b1d299 100644
--- a/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/elasticsearch/disable_internal_collection_instructions.js
+++ b/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/elasticsearch/disable_internal_collection_instructions.js
@@ -8,9 +8,6 @@ import React, { Fragment } from 'react';
import {
EuiSpacer,
EuiCodeBlock,
- EuiFlexGroup,
- EuiFlexItem,
- EuiButton,
EuiCallOut,
EuiText
} from '@elastic/eui';
@@ -20,12 +17,7 @@ import { Monospace } from '../components/monospace';
import { FormattedMessage } from '@kbn/i18n/react';
import { statusTitle } from './common_elasticsearch_instructions';
-export function getElasticsearchInstructionsForDisablingInternalCollection(product, meta, {
- checkForMigrationStatus,
- checkingMigrationStatus,
- hasCheckedStatus,
- autoCheckIntervalInMs,
-}) {
+export function getElasticsearchInstructionsForDisablingInternalCollection(product, meta) {
const disableInternalCollectionStep = {
title: i18n.translate('xpack.monitoring.metricbeatMigration.elasticsearchInstructions.disableInternalCollectionTitle', {
defaultMessage: 'Disable internal collection of Elasticsearch monitoring metrics'
@@ -65,100 +57,51 @@ export function getElasticsearchInstructionsForDisablingInternalCollection(produ
let migrationStatusStep = null;
if (!product || !product.isFullyMigrated) {
- let status = null;
- if (hasCheckedStatus) {
- let lastInternallyCollectedMessage = '';
- // It is possible that, during the migration steps, products are not reporting
- // monitoring data for a period of time outside the window of our server-side check
- // and this is most likely temporary so we want to be defensive and not error out
- // and hopefully wait for the next check and this state will be self-corrected.
- if (product) {
- const lastInternallyCollectedTimestamp = product.lastInternallyCollectedTimestamp || product.lastTimestamp;
- const secondsSinceLastInternalCollectionLabel =
- formatTimestampToDuration(lastInternallyCollectedTimestamp, CALCULATE_DURATION_SINCE);
- lastInternallyCollectedMessage = ();
- }
-
- status = (
-
-
-
-
-
-
-
- {lastInternallyCollectedMessage}
-
-
-
- );
- }
-
- let buttonLabel;
- if (checkingMigrationStatus) {
- buttonLabel = i18n.translate(
- 'xpack.monitoring.metricbeatMigration.elasticsearchInstructions.disableInternalCollection.checkingStatusButtonLabel',
- {
- defaultMessage: 'Checking...'
- }
- );
- } else {
- buttonLabel = i18n.translate(
- 'xpack.monitoring.metricbeatMigration.elasticsearchInstructions.disableInternalCollection.checkStatusButtonLabel',
- {
- defaultMessage: 'Check'
- }
- );
+ let lastInternallyCollectedMessage = '';
+ // It is possible that, during the migration steps, products are not reporting
+ // monitoring data for a period of time outside the window of our server-side check
+ // and this is most likely temporary so we want to be defensive and not error out
+ // and hopefully wait for the next check and this state will be self-corrected.
+ if (product) {
+ const lastInternallyCollectedTimestamp = product.lastInternallyCollectedTimestamp || product.lastTimestamp;
+ const secondsSinceLastInternalCollectionLabel =
+ formatTimestampToDuration(lastInternallyCollectedTimestamp, CALCULATE_DURATION_SINCE);
+ lastInternallyCollectedMessage = ();
}
migrationStatusStep = {
title: statusTitle,
status: 'incomplete',
children: (
-
-
-
-
-
- {i18n.translate(
- 'xpack.monitoring.metricbeatMigration.elasticsearchInstructions.disableInternalCollection.statusDescription',
- {
- defaultMessage: 'Check that no documents are coming from internal collection.'
- }
- )}
-
-
-
-
-
- {buttonLabel}
-
-
-
- {status}
-
+
+
+
+
+
+ {lastInternallyCollectedMessage}
+
+
)
};
}
diff --git a/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/elasticsearch/enable_metricbeat_instructions.js b/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/elasticsearch/enable_metricbeat_instructions.js
index 80c9878c9182f..2de84fa883e6e 100644
--- a/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/elasticsearch/enable_metricbeat_instructions.js
+++ b/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/elasticsearch/enable_metricbeat_instructions.js
@@ -9,9 +9,6 @@ import {
EuiSpacer,
EuiCodeBlock,
EuiLink,
- EuiFlexGroup,
- EuiFlexItem,
- EuiButton,
EuiCallOut,
EuiText
} from '@elastic/eui';
@@ -22,10 +19,6 @@ import { ELASTIC_WEBSITE_URL, DOC_LINK_VERSION } from 'ui/documentation_links';
export function getElasticsearchInstructionsForEnablingMetricbeat(product, _meta, {
esMonitoringUrl,
- hasCheckedStatus,
- checkingMigrationStatus,
- checkForMigrationStatus,
- autoCheckIntervalInMs
}) {
const securitySetup = (
@@ -178,60 +171,18 @@ export function getElasticsearchInstructionsForEnablingMetricbeat(product, _meta
let migrationStatusStep = null;
if (product.isInternalCollector || product.isNetNewUser) {
- let status = null;
- if (hasCheckedStatus) {
- status = (
-
-
-
-
- );
- }
-
- let buttonLabel;
- if (checkingMigrationStatus) {
- buttonLabel = i18n.translate('xpack.monitoring.metricbeatMigration.elasticsearchInstructions.checkingStatusButtonLabel', {
- defaultMessage: 'Checking for data...'
- });
- } else {
- buttonLabel = i18n.translate('xpack.monitoring.metricbeatMigration.elasticsearchInstructions.checkStatusButtonLabel', {
- defaultMessage: 'Check for data'
- });
- }
-
migrationStatusStep = {
title: product.isNetNewUser ? statusTitleNewUser : statusTitle,
status: 'incomplete',
children: (
-
-
-
-
-
- {i18n.translate('xpack.monitoring.metricbeatMigration.elasticsearchInstructions.statusDescription', {
- defaultMessage: 'Check that data is received from the Metricbeat'
- })}
-
-
-
-
-
- {buttonLabel}
-
-
-
- {status}
-
+
)
};
}
diff --git a/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/kibana/enable_metricbeat_instructions.js b/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/kibana/enable_metricbeat_instructions.js
index 7871f45ad8a30..1cd8fdea25151 100644
--- a/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/kibana/enable_metricbeat_instructions.js
+++ b/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/kibana/enable_metricbeat_instructions.js
@@ -9,9 +9,6 @@ import {
EuiSpacer,
EuiCodeBlock,
EuiLink,
- EuiFlexGroup,
- EuiFlexItem,
- EuiButton,
EuiCallOut,
EuiText
} from '@elastic/eui';
@@ -22,10 +19,6 @@ import { ELASTIC_WEBSITE_URL, DOC_LINK_VERSION } from 'ui/documentation_links';
export function getKibanaInstructionsForEnablingMetricbeat(product, _meta, {
esMonitoringUrl,
- hasCheckedStatus,
- checkingMigrationStatus,
- checkForMigrationStatus,
- autoCheckIntervalInMs
}) {
const securitySetup = (
@@ -174,60 +167,18 @@ export function getKibanaInstructionsForEnablingMetricbeat(product, _meta, {
let migrationStatusStep = null;
if (product.isInternalCollector || product.isNetNewUser) {
- let status = null;
- if (hasCheckedStatus) {
- status = (
-
-
-
-
- );
- }
-
- let buttonLabel;
- if (checkingMigrationStatus) {
- buttonLabel = i18n.translate('xpack.monitoring.metricbeatMigration.kibanaInstructions.checkingStatusButtonLabel', {
- defaultMessage: 'Checking for data...'
- });
- } else {
- buttonLabel = i18n.translate('xpack.monitoring.metricbeatMigration.kibanaInstructions.checkStatusButtonLabel', {
- defaultMessage: 'Check for data'
- });
- }
-
migrationStatusStep = {
title: product.isNetNewUser ? statusTitleNewUser : statusTitle,
status: 'incomplete',
children: (
-
-
-
-
-
- {i18n.translate('xpack.monitoring.metricbeatMigration.kibanaInstructions.statusDescription', {
- defaultMessage: 'Check that data is received from the Metricbeat'
- })}
-
-
-
-
-
- {buttonLabel}
-
-
-
- {status}
-
+
)
};
}
diff --git a/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/logstash/enable_metricbeat_instructions.js b/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/logstash/enable_metricbeat_instructions.js
index bbdd208ad3628..71300163ce6d2 100644
--- a/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/logstash/enable_metricbeat_instructions.js
+++ b/x-pack/legacy/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/logstash/enable_metricbeat_instructions.js
@@ -9,9 +9,6 @@ import {
EuiSpacer,
EuiCodeBlock,
EuiLink,
- EuiFlexGroup,
- EuiFlexItem,
- EuiButton,
EuiCallOut,
EuiText
} from '@elastic/eui';
@@ -22,10 +19,6 @@ import { ELASTIC_WEBSITE_URL, DOC_LINK_VERSION } from 'ui/documentation_links';
export function getLogstashInstructionsForEnablingMetricbeat(product, _meta, {
esMonitoringUrl,
- hasCheckedStatus,
- checkingMigrationStatus,
- checkForMigrationStatus,
- autoCheckIntervalInMs
}) {
const securitySetup = (
@@ -174,60 +167,18 @@ export function getLogstashInstructionsForEnablingMetricbeat(product, _meta, {
let migrationStatusStep = null;
if (product.isInternalCollector || product.isNetNewUser) {
- let status = null;
- if (hasCheckedStatus) {
- status = (
-
-
-
-
- );
- }
-
- let buttonLabel;
- if (checkingMigrationStatus) {
- buttonLabel = i18n.translate('xpack.monitoring.metricbeatMigration.logstashInstructions.checkingStatusButtonLabel', {
- defaultMessage: 'Checking for data...'
- });
- } else {
- buttonLabel = i18n.translate('xpack.monitoring.metricbeatMigration.logstashInstructions.checkStatusButtonLabel', {
- defaultMessage: 'Check for data'
- });
- }
-
migrationStatusStep = {
title: statusTitle,
status: 'incomplete',
children: (
-
-
-
-
-
- {i18n.translate('xpack.monitoring.metricbeatMigration.logstashInstructions.statusDescription', {
- defaultMessage: 'Check that data is received from the Metricbeat'
- })}
-
-
-
-
-
- {buttonLabel}
-
-
-
- {status}
-
+
)
};
}
diff --git a/x-pack/legacy/plugins/monitoring/public/components/renderers/setup_mode.js b/x-pack/legacy/plugins/monitoring/public/components/renderers/setup_mode.js
index 9e664aada7efb..f1bfebe7851ca 100644
--- a/x-pack/legacy/plugins/monitoring/public/components/renderers/setup_mode.js
+++ b/x-pack/legacy/plugins/monitoring/public/components/renderers/setup_mode.js
@@ -4,7 +4,7 @@
* you may not use this file except in compliance with the Elastic License.
*/
import React from 'react';
-import { getSetupModeState, initSetupModeState, updateSetupModeData } from '../../lib/setup_mode';
+import { getSetupModeState, initSetupModeState, updateSetupModeData, disableElasticsearchInternalCollection } from '../../lib/setup_mode';
import { Flyout } from '../metricbeat_migration/flyout';
import { findNewUuid } from './lib/find_new_uuid';
@@ -97,6 +97,11 @@ export class SetupModeRenderer extends React.Component {
);
}
+ async shortcutToFinishMigration() {
+ await disableElasticsearchInternalCollection();
+ await updateSetupModeData();
+ }
+
render() {
const { render, productName } = this.props;
const setupModeState = getSetupModeState();
@@ -116,9 +121,11 @@ export class SetupModeRenderer extends React.Component {
return render({
setupMode: {
data,
+ meta,
enabled: setupModeState.enabled,
productName,
updateSetupModeData,
+ shortcutToFinishMigration: () => this.shortcutToFinishMigration(),
openFlyout: (instance, isSettingUpNew) => this.setState({ isFlyoutOpen: true, instance, isSettingUpNew }),
closeFlyout: () => this.setState({ isFlyoutOpen: false }),
},
diff --git a/x-pack/legacy/plugins/monitoring/public/components/table/eui_table.js b/x-pack/legacy/plugins/monitoring/public/components/table/eui_table.js
index a52bafd1858cd..9bd04e89c8512 100644
--- a/x-pack/legacy/plugins/monitoring/public/components/table/eui_table.js
+++ b/x-pack/legacy/plugins/monitoring/public/components/table/eui_table.js
@@ -26,6 +26,7 @@ export class EuiMonitoringTable extends React.PureComponent {
setupMode,
uuidField,
nameField,
+ setupNewButtonLabel,
...props
} = this.props;
@@ -193,7 +194,7 @@ export class EuiMonitoringTable extends React.PureComponent {
setupMode.openFlyout({}, true)}>
- {props.setupNewButtonLabel}
+ {setupNewButtonLabel}
);
diff --git a/x-pack/legacy/plugins/monitoring/public/lib/setup_mode.js b/x-pack/legacy/plugins/monitoring/public/lib/setup_mode.js
index 6907c91b6ef64..dbfbdb324f7aa 100644
--- a/x-pack/legacy/plugins/monitoring/public/lib/setup_mode.js
+++ b/x-pack/legacy/plugins/monitoring/public/lib/setup_mode.js
@@ -52,6 +52,9 @@ export const fetchCollectionData = async (uuid, fetchWithoutClusterUuid = false)
else if (!fetchWithoutClusterUuid && clusterUuid) {
url += `/cluster/${clusterUuid}`;
}
+ else {
+ url += '/cluster';
+ }
try {
const response = await http.post(url, { ccs });
@@ -70,11 +73,41 @@ const notifySetupModeDataChange = (oldData) => {
export const updateSetupModeData = async (uuid, fetchWithoutClusterUuid = false) => {
const oldData = setupModeState.data;
- setupModeState.data = await fetchCollectionData(uuid, fetchWithoutClusterUuid);
- if (get(setupModeState.data, '_meta.isOnCloud', false)) {
+ const data = await fetchCollectionData(uuid, fetchWithoutClusterUuid);
+ setupModeState.data = data;
+ if (get(data, '_meta.isOnCloud', false)) {
return toggleSetupMode(false); // eslint-disable-line no-use-before-define
}
notifySetupModeDataChange(oldData);
+
+ const globalState = angularState.injector.get('globalState');
+ const clusterUuid = globalState.cluster_uuid;
+ if (!clusterUuid) {
+ const liveClusterUuid = get(data, '_meta.liveClusterUuid');
+ const migratedEsNodes = Object.values(get(data, 'elasticsearch.byUuid', {}))
+ .filter(node => node.isPartiallyMigrated || node.isFullyMigrated);
+ if (liveClusterUuid && migratedEsNodes.length > 0) {
+ setNewlyDiscoveredClusterUuid(liveClusterUuid);
+ }
+ }
+};
+
+export const disableElasticsearchInternalCollection = async () => {
+ checkAngularState();
+
+ const http = angularState.injector.get('$http');
+ const globalState = angularState.injector.get('globalState');
+ const clusterUuid = globalState.cluster_uuid;
+ const url = `../api/monitoring/v1/setup/collection/${clusterUuid}/disable_internal_collection`;
+ try {
+ const response = await http.post(url);
+ return response.data;
+ }
+ catch (err) {
+ const Private = angularState.injector.get('Private');
+ const ajaxErrorHandlers = Private(ajaxErrorHandlersProvider);
+ return ajaxErrorHandlers(err);
+ }
};
export const toggleSetupMode = inSetupMode => {
diff --git a/x-pack/legacy/plugins/monitoring/public/views/base_controller.js b/x-pack/legacy/plugins/monitoring/public/views/base_controller.js
index 4fa5ed1f79b89..15abe5ed3e949 100644
--- a/x-pack/legacy/plugins/monitoring/public/views/base_controller.js
+++ b/x-pack/legacy/plugins/monitoring/public/views/base_controller.js
@@ -12,6 +12,7 @@ import { PageLoading } from 'plugins/monitoring/components';
import { timefilter } from 'ui/timefilter';
import { I18nContext } from 'ui/i18n';
import { PromiseWithCancel } from '../../common/cancel_promise';
+import { updateSetupModeData, getSetupModeState } from '../lib/setup_mode';
/**
* Class to manage common instantiation behaviors in a view controller
@@ -118,8 +119,13 @@ export class MonitoringViewBaseController {
this.updateDataPromise = null;
}
const _api = apiUrlFn ? apiUrlFn() : api;
- this.updateDataPromise = new PromiseWithCancel(_getPageData($injector, _api));
- return this.updateDataPromise.promise().then((pageData) => {
+ const promises = [_getPageData($injector, _api)];
+ const setupMode = getSetupModeState();
+ if (setupMode.enabled) {
+ promises.push(updateSetupModeData());
+ }
+ this.updateDataPromise = new PromiseWithCancel(Promise.all(promises));
+ return this.updateDataPromise.promise().then(([pageData]) => {
$scope.$apply(() => {
this._isDataInitialized = true; // render will replace loading screen with the react component
$scope.pageData = this.data = pageData; // update the view's data with the fetch result
diff --git a/x-pack/legacy/plugins/monitoring/public/views/elasticsearch/nodes/index.js b/x-pack/legacy/plugins/monitoring/public/views/elasticsearch/nodes/index.js
index b9c1c15de324d..67658c665d3cf 100644
--- a/x-pack/legacy/plugins/monitoring/public/views/elasticsearch/nodes/index.js
+++ b/x-pack/legacy/plugins/monitoring/public/views/elasticsearch/nodes/index.js
@@ -89,6 +89,7 @@ uiRoutes.when('/elasticsearch/nodes', {
{flyoutComponent}
0
- || get(beatsManagementDetectionResponse, 'hits.total.value', 0) > 0) {
- result[BEATS_SYSTEM_ID].mightExist = true;
- }
-
- if (get(logstashDataDetectionResponse, 'hits.total.value', 0) > 0
- || get(logstashManagementDetectionResponse, 'hits.total.value', 0) > 0) {
- result[LOGSTASH_SYSTEM_ID].mightExist = true;
- }
-
- if (get(apmDetectionResponse, 'hits.total.value', 0) > 0) {
- result[APM_CUSTOM_ID].mightExist = true;
+ const { callWithRequest } = req.server.plugins.elasticsearch.getCluster('data');
+ for (const { id, indices } of detectionSearch) {
+ const response = await callWithRequest(req, 'cat.indices', { index: indices, format: 'json' });
+ if (response.length) {
+ result[id].mightExist = true;
+ }
}
return result;
@@ -269,6 +258,27 @@ async function getLiveElasticsearchClusterUuid(req) {
return clusterUuid;
}
+async function getLiveElasticsearchCollectionEnabled(req) {
+ const { callWithRequest } = req.server.plugins.elasticsearch.getCluster('admin');
+ const response = await callWithRequest(req, 'transport.request', {
+ method: 'GET',
+ path: '/_cluster/settings?include_defaults',
+ filter_path: [
+ 'persistent.xpack.monitoring',
+ 'transient.xpack.monitoring',
+ 'defaults.xpack.monitoring'
+ ]
+ });
+ const sources = ['persistent', 'transient', 'defaults'];
+ for (const source of sources) {
+ const collectionSettings = get(response[source], 'xpack.monitoring.collection');
+ if (collectionSettings && collectionSettings.enabled === 'true') {
+ return true;
+ }
+ }
+ return false;
+}
+
/**
* This function will scan all monitoring documents within the past 30s (or a custom time range is supported too)
* and determine which products fall into one of four states:
@@ -319,6 +329,7 @@ export const getCollectionStatus = async (req, indexPatterns, clusterUuid, nodeU
const liveEsNodes = skipLiveData ? [] : await getLivesNodes(req);
const liveKibanaInstance = skipLiveData ? {} : await getLiveKibanaInstance(req);
const indicesBuckets = get(recentDocuments, 'aggregations.indices.buckets', []);
+ const liveClusterInternalCollectionEnabled = await getLiveElasticsearchCollectionEnabled(req);
const status = PRODUCTS.reduce((products, product) => {
const token = product.token || product.name;
@@ -362,7 +373,6 @@ export const getCollectionStatus = async (req, indexPatterns, clusterUuid, nodeU
// If there is no data, then they are a net new user
if (!indexBuckets || indexBuckets.length === 0) {
productStatus.totalUniqueInstanceCount = 0;
- productStatus.detected = detectedProducts[product.name];
}
// If there is a single bucket, then they are fully migrated or fully on the internal collector
else if (indexBuckets.length === 1) {
@@ -425,9 +435,11 @@ export const getCollectionStatus = async (req, indexPatterns, clusterUuid, nodeU
}
// If there are multiple buckets, they are partially upgraded assuming a single mb index exists
else {
+ const considerAllInstancesMigrated = product.name === ELASTICSEARCH_CUSTOM_ID &&
+ clusterUuid === liveClusterUuid && !liveClusterInternalCollectionEnabled;
const internalTimestamps = [];
for (const indexBucket of indexBuckets) {
- const isFullyMigrated = indexBucket.key.includes(METRICBEAT_INDEX_NAME_UNIQUE_TOKEN);
+ const isFullyMigrated = considerAllInstancesMigrated || indexBucket.key.includes(METRICBEAT_INDEX_NAME_UNIQUE_TOKEN);
const map = isFullyMigrated ? fullyMigratedUuidsMap : internalCollectorsUuidsMap;
const otherMap = !isFullyMigrated ? fullyMigratedUuidsMap : internalCollectorsUuidsMap;
@@ -502,6 +514,10 @@ export const getCollectionStatus = async (req, indexPatterns, clusterUuid, nodeU
};
}
+ if (productStatus.totalUniqueInstanceCount === 0) {
+ productStatus.detected = detectedProducts[product.name];
+ }
+
return {
...products,
[product.name]: productStatus,
@@ -510,7 +526,7 @@ export const getCollectionStatus = async (req, indexPatterns, clusterUuid, nodeU
status._meta = {
secondsAgo: NUMBER_OF_SECONDS_AGO_TO_LOOK,
- clusterUuid: liveClusterUuid,
+ liveClusterUuid,
isOnCloud: get(req.server.plugins, 'cloud.config.isCloudEnabled', false)
};
diff --git a/x-pack/legacy/plugins/monitoring/server/routes/api/v1/setup/cluster_setup_status.js b/x-pack/legacy/plugins/monitoring/server/routes/api/v1/setup/cluster_setup_status.js
index 16fca6636abba..de4ba8b171c26 100644
--- a/x-pack/legacy/plugins/monitoring/server/routes/api/v1/setup/cluster_setup_status.js
+++ b/x-pack/legacy/plugins/monitoring/server/routes/api/v1/setup/cluster_setup_status.js
@@ -16,11 +16,11 @@ export function clusterSetupStatusRoute(server) {
*/
server.route({
method: 'POST',
- path: '/api/monitoring/v1/setup/collection/cluster/{clusterUuid}',
+ path: '/api/monitoring/v1/setup/collection/cluster/{clusterUuid?}',
config: {
validate: {
params: Joi.object({
- clusterUuid: Joi.string().required(),
+ clusterUuid: Joi.string().optional(),
}),
query: Joi.object({
// This flag is not intended to be used in production. It was introduced
diff --git a/x-pack/legacy/plugins/monitoring/server/routes/api/v1/setup/clusters_setup_status.js b/x-pack/legacy/plugins/monitoring/server/routes/api/v1/setup/clusters_setup_status.js
deleted file mode 100644
index 5ed4ba54bb5d5..0000000000000
--- a/x-pack/legacy/plugins/monitoring/server/routes/api/v1/setup/clusters_setup_status.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License;
- * you may not use this file except in compliance with the Elastic License.
- */
-import Joi from 'joi';
-import { verifyMonitoringAuth } from '../../../../lib/elasticsearch/verify_monitoring_auth';
-import { handleError } from '../../../../lib/errors';
-import { getCollectionStatus } from '../../../../lib/setup/collection';
-import { getIndexPatterns } from '../../../../lib/cluster/get_index_patterns';
-
-export function clustersSetupStatusRoute(server) {
- /*
- * Monitoring Home
- * Route Init (for checking license and compatibility for multi-cluster monitoring
- */
- server.route({
- method: 'POST',
- path: '/api/monitoring/v1/setup/collection',
- config: {
- validate: {
- query: Joi.object({
- // This flag is not intended to be used in production. It was introduced
- // as a way to ensure consistent API testing - the typical data source
- // for API tests are archived data, where the cluster configuration and data
- // are consistent from environment to environment. However, this endpoint
- // also attempts to retrieve data from the running stack products (ES and Kibana)
- // which will vary from environment to environment making it difficult
- // to write tests against. Therefore, this flag exists and should only be used
- // in our testing environment.
- skipLiveData: Joi.boolean().default(false)
- }),
- payload: Joi.object({
- timeRange: Joi.object({
- min: Joi.date().required(),
- max: Joi.date().required()
- }).optional()
- }).allow(null)
- }
- },
- handler: async (req) => {
- let status = null;
-
- // NOTE using try/catch because checkMonitoringAuth is expected to throw
- // an error when current logged-in user doesn't have permission to read
- // the monitoring data. `try/catch` makes it a little more explicit.
- try {
- await verifyMonitoringAuth(req);
- const indexPatterns = getIndexPatterns(server);
- status = await getCollectionStatus(req, indexPatterns, null, null, req.query.skipLiveData);
- } catch (err) {
- throw handleError(err, req);
- }
-
- return status;
- }
- });
-}
diff --git a/x-pack/legacy/plugins/monitoring/server/routes/api/v1/setup/disable_elasticsearch_internal_collection.js b/x-pack/legacy/plugins/monitoring/server/routes/api/v1/setup/disable_elasticsearch_internal_collection.js
new file mode 100644
index 0000000000000..32e9034ac051f
--- /dev/null
+++ b/x-pack/legacy/plugins/monitoring/server/routes/api/v1/setup/disable_elasticsearch_internal_collection.js
@@ -0,0 +1,35 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License;
+ * you may not use this file except in compliance with the Elastic License.
+ */
+import Joi from 'joi';
+import { verifyMonitoringAuth } from '../../../../lib/elasticsearch/verify_monitoring_auth';
+import { handleError } from '../../../../lib/errors';
+import { setCollectionDisabled } from '../../../../lib/elasticsearch_settings/set/collection_disabled';
+
+export function disableElasticsearchInternalCollectionRoute(server) {
+ server.route({
+ method: 'POST',
+ path: '/api/monitoring/v1/setup/collection/{clusterUuid}/disable_internal_collection',
+ config: {
+ validate: {
+ params: Joi.object({
+ clusterUuid: Joi.string().required()
+ })
+ }
+ },
+ handler: async (req) => {
+ // NOTE using try/catch because checkMonitoringAuth is expected to throw
+ // an error when current logged-in user doesn't have permission to read
+ // the monitoring data. `try/catch` makes it a little more explicit.
+ try {
+ await verifyMonitoringAuth(req);
+ await setCollectionDisabled(req);
+ } catch (err) {
+ throw handleError(err, req);
+ }
+ return null;
+ }
+ });
+}
diff --git a/x-pack/legacy/plugins/monitoring/server/routes/api/v1/setup/index.js b/x-pack/legacy/plugins/monitoring/server/routes/api/v1/setup/index.js
index 3adbb1981d2f4..3ad6a421025dc 100644
--- a/x-pack/legacy/plugins/monitoring/server/routes/api/v1/setup/index.js
+++ b/x-pack/legacy/plugins/monitoring/server/routes/api/v1/setup/index.js
@@ -4,6 +4,6 @@
* you may not use this file except in compliance with the Elastic License.
*/
-export { clustersSetupStatusRoute } from './clusters_setup_status';
export { clusterSetupStatusRoute } from './cluster_setup_status';
export { nodeSetupStatusRoute } from './node_setup_status';
+export { disableElasticsearchInternalCollectionRoute } from './disable_elasticsearch_internal_collection';
diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json
index b74956f1ccd9d..8e69735582672 100644
--- a/x-pack/plugins/translations/translations/ja-JP.json
+++ b/x-pack/plugins/translations/translations/ja-JP.json
@@ -7874,16 +7874,11 @@
"xpack.monitoring.logstashNavigation.overviewLinkText": "概要",
"xpack.monitoring.logstashNavigation.pipelinesLinkText": "パイプライン",
"xpack.monitoring.logstashNavigation.pipelineVersionDescription": "バージョンは {relativeLastSeen} 時点でアクティブ、初回検知 {relativeFirstSeen}",
- "xpack.monitoring.metricbeatMigration.elasticsearchInstructions.checkingStatusButtonLabel": "データを確認中...",
- "xpack.monitoring.metricbeatMigration.elasticsearchInstructions.checkStatusButtonLabel": "データを確認",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.configureMetricbeatDescription": "{file} にこれらの変更を加えます。",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.configureMetricbeatTitle": "Metricbeat を構成して監視クラスターに送ります",
- "xpack.monitoring.metricbeatMigration.elasticsearchInstructions.disableInternalCollection.checkingStatusButtonLabel": "確認中...",
- "xpack.monitoring.metricbeatMigration.elasticsearchInstructions.disableInternalCollection.checkStatusButtonLabel": "確認",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.disableInternalCollection.fullyMigratedStatusDescription": "内部収集からのドキュメントがありません。移行完了!",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.disableInternalCollection.fullyMigratedStatusTitle": "お疲れさまでした!",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.disableInternalCollection.partiallyMigratedStatusDescription": "最後の内部収集は {secondsSinceLastInternalCollectionLabel} 前に行われました。",
- "xpack.monitoring.metricbeatMigration.elasticsearchInstructions.disableInternalCollection.statusDescription": "内部収集からのドキュメントがないことを確認してください。",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.disableInternalCollectionDescription": "Elasticsearch 監視メトリックの内部収集を無効にします。本番クラスターの各サーバーの {monospace} を false に設定します。",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.disableInternalCollectionTitle": "Elasticsearch 監視メトリックの内部収集を無効にする",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.enableMetricbeatModuleDescription": "モジュールはデフォルトで {url} から Elasticsearch 監視メトリックを収集します。ローカル Elasticsearch サーバーのアドレスが異なる場合は、{module} ファイルのホスト設定で指定する必要があります。",
@@ -7892,14 +7887,11 @@
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.fullyMigratedStatusTitle": "お疲れさまでした!",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.installMetricbeatLinkText": "こちらの手順に従ってください",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.installMetricbeatTitle": "Metricbeat を Elasticsearch と同じサーバーにインストール",
- "xpack.monitoring.metricbeatMigration.elasticsearchInstructions.isInternalCollectorStatusTitle": "この Elasticsearch の Metricbeat からの監視データが検出されていません。\n 引き続きバックグラウンドで {timePeriod} 秒ごとに確認します。",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.metricbeatSecuritySetup": "セキュリティ機能が有効な場合、追加セットアップが必要な可能性があります。{link}",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.metricbeatSecuritySetupLinkText": "詳細をご覧ください。",
- "xpack.monitoring.metricbeatMigration.elasticsearchInstructions.partiallyMigratedStatusDescription": "検出には最長 {secondsAgo} 秒かかる場合がありますが、引き続きバックグラウンドで {timePeriod} 秒ごとに確認します。",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.partiallyMigratedStatusTitle": "現在も Elasticsearch の内部収集からデータが送信されています。",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.startMetricbeatLinkText": "こちらの手順に従ってください",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.startMetricbeatTitle": "Metricbeat を起動します",
- "xpack.monitoring.metricbeatMigration.elasticsearchInstructions.statusDescription": "Metricbeat データを受け取ったことを確認してください",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.statusTitle": "移行ステータス",
"xpack.monitoring.metricbeatMigration.flyout.closeButtonLabel": "閉じる",
"xpack.monitoring.metricbeatMigration.flyout.doneButtonLabel": "完了",
@@ -7910,8 +7902,6 @@
"xpack.monitoring.metricbeatMigration.flyout.nextButtonLabel": "次へ",
"xpack.monitoring.metricbeatMigration.flyout.step1.monitoringUrlHelpText": "これは通常単一のインスタンスですが、複数ある場合は、すべてのインスタンス URL をコンマ区切りで入力します。\n Metricbeat インスタンスの実行には、Elasticsearch サーバーとの通信が必要です。",
"xpack.monitoring.metricbeatMigration.flyout.step1.monitoringUrlLabel": "監視クラスター URL",
- "xpack.monitoring.metricbeatMigration.kibanaInstructions.checkingStatusButtonLabel": "データを確認中...",
- "xpack.monitoring.metricbeatMigration.kibanaInstructions.checkStatusButtonLabel": "データを確認",
"xpack.monitoring.metricbeatMigration.kibanaInstructions.configureMetricbeatDescription": "{file} にこれらの変更を加えます。",
"xpack.monitoring.metricbeatMigration.kibanaInstructions.configureMetricbeatTitle": "Metricbeat を構成して監視クラスターに送ります",
"xpack.monitoring.metricbeatMigration.kibanaInstructions.disableInternalCollection.checkingStatusButtonLabel": "確認中...",
@@ -7931,14 +7921,12 @@
"xpack.monitoring.metricbeatMigration.kibanaInstructions.fullyMigratedStatusTitle": "お疲れさまでした!",
"xpack.monitoring.metricbeatMigration.kibanaInstructions.installMetricbeatLinkText": "こちらの手順に従ってください",
"xpack.monitoring.metricbeatMigration.kibanaInstructions.installMetricbeatTitle": "Metricbeat を Kibana と同じサーバーにインストール",
- "xpack.monitoring.metricbeatMigration.kibanaInstructions.isInternalCollectorStatusTitle": "この Kibana の Metricbeat からの監視データが検出されていません。\n 引き続きバックグラウンドで {timePeriod} 秒ごとに確認します。",
"xpack.monitoring.metricbeatMigration.kibanaInstructions.metricbeatSecuritySetup": "セキュリティ機能が有効な場合、追加セットアップが必要な可能性があります。{link}",
"xpack.monitoring.metricbeatMigration.kibanaInstructions.metricbeatSecuritySetupLinkText": "詳細をご覧ください。",
"xpack.monitoring.metricbeatMigration.kibanaInstructions.partiallyMigratedStatusDescription": "検出には最長 {secondsAgo} 秒かかる場合がありますが、引き続きバックグラウンドで {timePeriod} 秒ごとに確認します。",
"xpack.monitoring.metricbeatMigration.kibanaInstructions.partiallyMigratedStatusTitle": "現在も Kibana の内部収集からデータが送信されています。",
"xpack.monitoring.metricbeatMigration.kibanaInstructions.startMetricbeatLinkText": "こちらの手順に従ってください",
"xpack.monitoring.metricbeatMigration.kibanaInstructions.startMetricbeatTitle": "Metricbeat を起動します",
- "xpack.monitoring.metricbeatMigration.kibanaInstructions.statusDescription": "Metricbeat データを受け取ったことを確認してください",
"xpack.monitoring.metricbeatMigration.kibanaInstructions.statusTitle": "移行ステータス",
"xpack.monitoring.metrics.apm.outputAckedEventsRate.ackedDescription": "アウトプットにより処理されたイベントです (再試行を含む)",
"xpack.monitoring.metrics.apm.outputAckedEventsRate.ackedLabel": "承認済み",
diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json
index f38ecafd20bb4..1f13cc5929bdd 100644
--- a/x-pack/plugins/translations/translations/zh-CN.json
+++ b/x-pack/plugins/translations/translations/zh-CN.json
@@ -8017,16 +8017,11 @@
"xpack.monitoring.logstashNavigation.overviewLinkText": "概览",
"xpack.monitoring.logstashNavigation.pipelinesLinkText": "管道",
"xpack.monitoring.logstashNavigation.pipelineVersionDescription": "活动版本 {relativeLastSeen} 和首次看到 {relativeFirstSeen}",
- "xpack.monitoring.metricbeatMigration.elasticsearchInstructions.checkingStatusButtonLabel": "正在检查数据......",
- "xpack.monitoring.metricbeatMigration.elasticsearchInstructions.checkStatusButtonLabel": "检查数据",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.configureMetricbeatDescription": "在 {file} 文件中进行这些更改。",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.configureMetricbeatTitle": "配置 Metricbeat 以发送至监测集群",
- "xpack.monitoring.metricbeatMigration.elasticsearchInstructions.disableInternalCollection.checkingStatusButtonLabel": "正在检查......",
- "xpack.monitoring.metricbeatMigration.elasticsearchInstructions.disableInternalCollection.checkStatusButtonLabel": "检查",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.disableInternalCollection.fullyMigratedStatusDescription": "我们未看到任何来自内部收集的文档。迁移完成!",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.disableInternalCollection.fullyMigratedStatusTitle": "恭喜您!",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.disableInternalCollection.partiallyMigratedStatusDescription": "上次内部收集发生于 {secondsSinceLastInternalCollectionLabel}前。",
- "xpack.monitoring.metricbeatMigration.elasticsearchInstructions.disableInternalCollection.statusDescription": "确认没有文档来自内部收集。",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.disableInternalCollectionDescription": "禁用 Elasticsearch 监测指标的内部收集。在生产集群中的每个服务器上将 {monospace} 设置为 false。",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.disableInternalCollectionTitle": "禁用 Elasticsearch 监测指标的内部收集",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.enableMetricbeatModuleDescription": "默认情况下,该模块将从 {url} 收集 Elasticsearch 监测指标。如果本地 Elasticsearch 服务器有不同的地址,则必须通过 {module} 文件中的 hosts 设置来进行指定。",
@@ -8035,14 +8030,11 @@
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.fullyMigratedStatusTitle": "恭喜您!",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.installMetricbeatLinkText": "按照此处的说明执行操作",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.installMetricbeatTitle": "在安装 Elasticsearch 的同一台服务器上安装 Metricbeat",
- "xpack.monitoring.metricbeatMigration.elasticsearchInstructions.isInternalCollectorStatusTitle": "我们未检测到任何监测数据来自此 Elasticsearch 的 Metricbeat。\n 我们将在后台每 {timePeriod} 秒检查一次。",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.metricbeatSecuritySetup": "如果已启用安全功能,则可能需要更多的设置。{link}",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.metricbeatSecuritySetupLinkText": "查看更多信息。",
- "xpack.monitoring.metricbeatMigration.elasticsearchInstructions.partiallyMigratedStatusDescription": "请注意,检测最多花费 {secondsAgo} 秒,但我们在后台每 {timePeriod} 秒检查一次。",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.partiallyMigratedStatusTitle": "我们仍看到数据来自 Elasticsearch 的内部收集。",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.startMetricbeatLinkText": "按照此处的说明执行操作",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.startMetricbeatTitle": "启动 Metricbeat",
- "xpack.monitoring.metricbeatMigration.elasticsearchInstructions.statusDescription": "确认从 Metricbeat 收到数据",
"xpack.monitoring.metricbeatMigration.elasticsearchInstructions.statusTitle": "迁移状态",
"xpack.monitoring.metricbeatMigration.flyout.closeButtonLabel": "关闭",
"xpack.monitoring.metricbeatMigration.flyout.doneButtonLabel": "完成",
@@ -8053,8 +8045,6 @@
"xpack.monitoring.metricbeatMigration.flyout.nextButtonLabel": "下一个",
"xpack.monitoring.metricbeatMigration.flyout.step1.monitoringUrlHelpText": "这通常是单个实例,但如果您有多个,请输入所有实例 url,以逗号分隔。\n 切记运行的 Metricbeat 实例需要能够与这些 Elasticsearch 实例通信。",
"xpack.monitoring.metricbeatMigration.flyout.step1.monitoringUrlLabel": "监测集群 URL",
- "xpack.monitoring.metricbeatMigration.kibanaInstructions.checkingStatusButtonLabel": "正在检查数据......",
- "xpack.monitoring.metricbeatMigration.kibanaInstructions.checkStatusButtonLabel": "检查数据",
"xpack.monitoring.metricbeatMigration.kibanaInstructions.configureMetricbeatDescription": "在 {file} 文件中进行这些更改。",
"xpack.monitoring.metricbeatMigration.kibanaInstructions.configureMetricbeatTitle": "配置 Metricbeat 以发送至监测集群",
"xpack.monitoring.metricbeatMigration.kibanaInstructions.disableInternalCollection.checkingStatusButtonLabel": "正在检查......",
@@ -8074,14 +8064,12 @@
"xpack.monitoring.metricbeatMigration.kibanaInstructions.fullyMigratedStatusTitle": "恭喜您!",
"xpack.monitoring.metricbeatMigration.kibanaInstructions.installMetricbeatLinkText": "按照此处的说明执行操作",
"xpack.monitoring.metricbeatMigration.kibanaInstructions.installMetricbeatTitle": "在安装 Kibana 的同一台服务器上安装 Metricbeat",
- "xpack.monitoring.metricbeatMigration.kibanaInstructions.isInternalCollectorStatusTitle": "我们未检测到任何监测数据来自此 Kibana 的 Metricbeat。\n 我们将在后台每 {timePeriod} 秒检查一次。",
"xpack.monitoring.metricbeatMigration.kibanaInstructions.metricbeatSecuritySetup": "如果已启用安全功能,则可能需要更多的设置。{link}",
"xpack.monitoring.metricbeatMigration.kibanaInstructions.metricbeatSecuritySetupLinkText": "查看更多信息。",
"xpack.monitoring.metricbeatMigration.kibanaInstructions.partiallyMigratedStatusDescription": "请注意,检测最多花费 {secondsAgo} 秒,但我们在后台每 {timePeriod} 秒检查一次。",
"xpack.monitoring.metricbeatMigration.kibanaInstructions.partiallyMigratedStatusTitle": "我们仍看到数据来自 Kibana 的内部收集。",
"xpack.monitoring.metricbeatMigration.kibanaInstructions.startMetricbeatLinkText": "按照此处的说明执行操作",
"xpack.monitoring.metricbeatMigration.kibanaInstructions.startMetricbeatTitle": "启动 Metricbeat",
- "xpack.monitoring.metricbeatMigration.kibanaInstructions.statusDescription": "确认从 Metricbeat 收到数据",
"xpack.monitoring.metricbeatMigration.kibanaInstructions.statusTitle": "迁移状态",
"xpack.monitoring.metrics.apm.outputAckedEventsRate.ackedDescription": "输出处理的事件(包括重试)",
"xpack.monitoring.metrics.apm.outputAckedEventsRate.ackedLabel": "已确认",
diff --git a/x-pack/test/api_integration/apis/monitoring/setup/collection/detect_apm.js b/x-pack/test/api_integration/apis/monitoring/setup/collection/detect_apm.js
index 1f11e3c457644..042b93b5e5979 100644
--- a/x-pack/test/api_integration/apis/monitoring/setup/collection/detect_apm.js
+++ b/x-pack/test/api_integration/apis/monitoring/setup/collection/detect_apm.js
@@ -29,7 +29,7 @@ export default function ({ getService }) {
it('should get collection status', async () => {
const { body } = await supertest
- .post('/api/monitoring/v1/setup/collection?skipLiveData=true')
+ .post('/api/monitoring/v1/setup/collection/cluster?skipLiveData=true')
.set('kbn-xsrf', 'xxx')
.send({ timeRange })
.expect(200);
diff --git a/x-pack/test/api_integration/apis/monitoring/setup/collection/detect_beats.js b/x-pack/test/api_integration/apis/monitoring/setup/collection/detect_beats.js
index 30e263a1a81d7..336202c5afd6b 100644
--- a/x-pack/test/api_integration/apis/monitoring/setup/collection/detect_beats.js
+++ b/x-pack/test/api_integration/apis/monitoring/setup/collection/detect_beats.js
@@ -29,7 +29,7 @@ export default function ({ getService }) {
it('should get collection status', async () => {
const { body } = await supertest
- .post('/api/monitoring/v1/setup/collection?skipLiveData=true')
+ .post('/api/monitoring/v1/setup/collection/cluster?skipLiveData=true')
.set('kbn-xsrf', 'xxx')
.send({ timeRange })
.expect(200);
diff --git a/x-pack/test/api_integration/apis/monitoring/setup/collection/detect_beats_management.js b/x-pack/test/api_integration/apis/monitoring/setup/collection/detect_beats_management.js
index 64008f27ff8f8..95a7e1ba0c219 100644
--- a/x-pack/test/api_integration/apis/monitoring/setup/collection/detect_beats_management.js
+++ b/x-pack/test/api_integration/apis/monitoring/setup/collection/detect_beats_management.js
@@ -29,7 +29,7 @@ export default function ({ getService }) {
it('should get collection status', async () => {
const { body } = await supertest
- .post('/api/monitoring/v1/setup/collection?skipLiveData=true')
+ .post('/api/monitoring/v1/setup/collection/cluster?skipLiveData=true')
.set('kbn-xsrf', 'xxx')
.send({ timeRange })
.expect(200);
diff --git a/x-pack/test/api_integration/apis/monitoring/setup/collection/detect_logstash.js b/x-pack/test/api_integration/apis/monitoring/setup/collection/detect_logstash.js
index dcf5df172ea1b..741a60ea7f3d5 100644
--- a/x-pack/test/api_integration/apis/monitoring/setup/collection/detect_logstash.js
+++ b/x-pack/test/api_integration/apis/monitoring/setup/collection/detect_logstash.js
@@ -29,7 +29,7 @@ export default function ({ getService }) {
it('should get collection status', async () => {
const { body } = await supertest
- .post('/api/monitoring/v1/setup/collection?skipLiveData=true')
+ .post('/api/monitoring/v1/setup/collection/cluster?skipLiveData=true')
.set('kbn-xsrf', 'xxx')
.send({ timeRange })
.expect(200);
diff --git a/x-pack/test/api_integration/apis/monitoring/setup/collection/detect_logstash_management.js b/x-pack/test/api_integration/apis/monitoring/setup/collection/detect_logstash_management.js
index 86cfcbddd80c2..fd1d89ddfb055 100644
--- a/x-pack/test/api_integration/apis/monitoring/setup/collection/detect_logstash_management.js
+++ b/x-pack/test/api_integration/apis/monitoring/setup/collection/detect_logstash_management.js
@@ -29,7 +29,7 @@ export default function ({ getService }) {
it('should get collection status', async () => {
const { body } = await supertest
- .post('/api/monitoring/v1/setup/collection?skipLiveData=true')
+ .post('/api/monitoring/v1/setup/collection/cluster?skipLiveData=true')
.set('kbn-xsrf', 'xxx')
.send({ timeRange })
.expect(200);
diff --git a/x-pack/test/api_integration/apis/monitoring/setup/collection/es_and_kibana_exclusive_mb.js b/x-pack/test/api_integration/apis/monitoring/setup/collection/es_and_kibana_exclusive_mb.js
index f9980fea605c9..59ca189650546 100644
--- a/x-pack/test/api_integration/apis/monitoring/setup/collection/es_and_kibana_exclusive_mb.js
+++ b/x-pack/test/api_integration/apis/monitoring/setup/collection/es_and_kibana_exclusive_mb.js
@@ -29,7 +29,7 @@ export default function ({ getService }) {
it('should get collection status', async () => {
const { body } = await supertest
- .post('/api/monitoring/v1/setup/collection?skipLiveData=true')
+ .post('/api/monitoring/v1/setup/collection/cluster?skipLiveData=true')
.set('kbn-xsrf', 'xxx')
.send({ timeRange })
.expect(200);
diff --git a/x-pack/test/api_integration/apis/monitoring/setup/collection/es_and_kibana_mb.js b/x-pack/test/api_integration/apis/monitoring/setup/collection/es_and_kibana_mb.js
index 7a5c4a2d35eb4..09da226189c74 100644
--- a/x-pack/test/api_integration/apis/monitoring/setup/collection/es_and_kibana_mb.js
+++ b/x-pack/test/api_integration/apis/monitoring/setup/collection/es_and_kibana_mb.js
@@ -29,7 +29,7 @@ export default function ({ getService }) {
it('should get collection status', async () => {
const { body } = await supertest
- .post('/api/monitoring/v1/setup/collection?skipLiveData=true')
+ .post('/api/monitoring/v1/setup/collection/cluster?skipLiveData=true')
.set('kbn-xsrf', 'xxx')
.send({ timeRange })
.expect(200);
diff --git a/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/detect_apm.json b/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/detect_apm.json
index 6f6b9365d72a5..518c074bc985d 100644
--- a/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/detect_apm.json
+++ b/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/detect_apm.json
@@ -47,6 +47,6 @@
"_meta": {
"secondsAgo": 30,
"isOnCloud": false,
- "clusterUuid": null
+ "liveClusterUuid": null
}
}
diff --git a/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/detect_beats.json b/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/detect_beats.json
index 874317c32268a..219b2194d04db 100644
--- a/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/detect_beats.json
+++ b/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/detect_beats.json
@@ -56,6 +56,6 @@
"_meta": {
"secondsAgo": 30,
"isOnCloud": false,
- "clusterUuid": null
+ "liveClusterUuid": null
}
}
diff --git a/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/detect_beats_management.json b/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/detect_beats_management.json
index 6a07a501f01e2..72e44a3227728 100644
--- a/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/detect_beats_management.json
+++ b/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/detect_beats_management.json
@@ -47,6 +47,6 @@
"_meta": {
"secondsAgo": 30,
"isOnCloud": false,
- "clusterUuid": null
+ "liveClusterUuid": null
}
}
diff --git a/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/detect_logstash.json b/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/detect_logstash.json
index 483298faea8c3..a30ee6c04640d 100644
--- a/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/detect_logstash.json
+++ b/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/detect_logstash.json
@@ -47,6 +47,6 @@
"_meta": {
"secondsAgo": 30,
"isOnCloud": false,
- "clusterUuid": null
+ "liveClusterUuid": null
}
}
diff --git a/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/detect_logstash_management.json b/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/detect_logstash_management.json
index 483298faea8c3..a30ee6c04640d 100644
--- a/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/detect_logstash_management.json
+++ b/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/detect_logstash_management.json
@@ -47,6 +47,6 @@
"_meta": {
"secondsAgo": 30,
"isOnCloud": false,
- "clusterUuid": null
+ "liveClusterUuid": null
}
}
diff --git a/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/es_and_kibana_exclusive_mb.json b/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/es_and_kibana_exclusive_mb.json
index ba00987b1569b..28f90aeba7ceb 100644
--- a/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/es_and_kibana_exclusive_mb.json
+++ b/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/es_and_kibana_exclusive_mb.json
@@ -46,7 +46,9 @@
"totalUniqueInstanceCount": 0,
"totalUniqueFullyMigratedCount": 0,
"totalUniquePartiallyMigratedCount": 0,
- "detected": null,
+ "detected": {
+ "mightExist": false
+ },
"byUuid": {}
},
"elasticsearch": {
@@ -65,6 +67,6 @@
"_meta": {
"secondsAgo": 30,
"isOnCloud": false,
- "clusterUuid": null
+ "liveClusterUuid": null
}
}
diff --git a/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/es_and_kibana_mb.json b/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/es_and_kibana_mb.json
index e6fd107b6170d..16d079ea9b7e9 100644
--- a/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/es_and_kibana_mb.json
+++ b/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/es_and_kibana_mb.json
@@ -46,7 +46,9 @@
"totalUniqueInstanceCount": 0,
"totalUniqueFullyMigratedCount": 0,
"totalUniquePartiallyMigratedCount": 0,
- "detected": null,
+ "detected": {
+ "mightExist": false
+ },
"byUuid": {}
},
"elasticsearch": {
@@ -65,6 +67,6 @@
"_meta": {
"secondsAgo": 30,
"isOnCloud": false,
- "clusterUuid": null
+ "liveClusterUuid": null
}
}
diff --git a/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/kibana_exclusive_mb.json b/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/kibana_exclusive_mb.json
index 0f5f7db7c14d1..7f5e8cb889782 100644
--- a/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/kibana_exclusive_mb.json
+++ b/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/kibana_exclusive_mb.json
@@ -46,7 +46,9 @@
"totalUniqueInstanceCount": 0,
"totalUniqueFullyMigratedCount": 0,
"totalUniquePartiallyMigratedCount": 0,
- "detected": null,
+ "detected": {
+ "mightExist": false
+ },
"byUuid": {}
},
"elasticsearch": {
@@ -65,6 +67,6 @@
"_meta": {
"secondsAgo": 30,
"isOnCloud": false,
- "clusterUuid": null
+ "liveClusterUuid": null
}
}
diff --git a/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/kibana_mb.json b/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/kibana_mb.json
index 98e161832ddc0..3c6da934bbf94 100644
--- a/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/kibana_mb.json
+++ b/x-pack/test/api_integration/apis/monitoring/setup/collection/fixtures/kibana_mb.json
@@ -46,7 +46,9 @@
"totalUniqueInstanceCount": 0,
"totalUniqueFullyMigratedCount": 0,
"totalUniquePartiallyMigratedCount": 0,
- "detected": null,
+ "detected": {
+ "mightExist": false
+ },
"byUuid": {}
},
"elasticsearch": {
@@ -65,6 +67,6 @@
"_meta": {
"secondsAgo": 30,
"isOnCloud": false,
- "clusterUuid": null
+ "liveClusterUuid": null
}
}
diff --git a/x-pack/test/api_integration/apis/monitoring/setup/collection/kibana_exclusive_mb.js b/x-pack/test/api_integration/apis/monitoring/setup/collection/kibana_exclusive_mb.js
index 3540cb050909d..cc2e608e9513d 100644
--- a/x-pack/test/api_integration/apis/monitoring/setup/collection/kibana_exclusive_mb.js
+++ b/x-pack/test/api_integration/apis/monitoring/setup/collection/kibana_exclusive_mb.js
@@ -28,7 +28,7 @@ export default function ({ getService }) {
it('should get collection status', async () => {
const { body } = await supertest
- .post('/api/monitoring/v1/setup/collection?skipLiveData=true')
+ .post('/api/monitoring/v1/setup/collection/cluster?skipLiveData=true')
.set('kbn-xsrf', 'xxx')
.send({ timeRange })
.expect(200);
diff --git a/x-pack/test/api_integration/apis/monitoring/setup/collection/kibana_mb.js b/x-pack/test/api_integration/apis/monitoring/setup/collection/kibana_mb.js
index e7cfd0df94162..6f8fdd5840049 100644
--- a/x-pack/test/api_integration/apis/monitoring/setup/collection/kibana_mb.js
+++ b/x-pack/test/api_integration/apis/monitoring/setup/collection/kibana_mb.js
@@ -28,7 +28,7 @@ export default function ({ getService }) {
it('should get collection status', async () => {
const { body } = await supertest
- .post('/api/monitoring/v1/setup/collection?skipLiveData=true')
+ .post('/api/monitoring/v1/setup/collection/cluster?skipLiveData=true')
.set('kbn-xsrf', 'xxx')
.send({ timeRange })
.expect(200);