Skip to content

Commit f0bc628

Browse files
[Monitoring] Ensure setup mode works on cloud but only for alerts (#73127)
* Ensure setup mode works on cloud but only for alerts * Update snapshot * Update translations * Restructure tests to understand the failure better * PR feedback * Backwards, whoops * Remove commented out code Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> # Conflicts: # x-pack/plugins/monitoring/public/components/apm/instances/instances.js
1 parent 58d042a commit f0bc628

31 files changed

Lines changed: 260 additions & 79 deletions

File tree

x-pack/plugins/monitoring/common/enums.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,8 @@ export enum AlertParamType {
2626
Duration = 'duration',
2727
Percentage = 'percentage',
2828
}
29+
30+
export enum SetupModeFeature {
31+
MetricbeatMigration = 'metricbeatMigration',
32+
Alerts = 'alerts',
33+
}

x-pack/plugins/monitoring/public/alerts/badge.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ export const AlertsBadge: React.FC<Props> = (props: Props) => {
180180
}
181181

182182
return (
183-
<EuiFlexGrid>
183+
<EuiFlexGrid data-test-subj="monitoringSetupModeAlertBadges">
184184
{badges.map((badge, index) => (
185185
<EuiFlexItem key={index} grow={false}>
186186
{badge}

x-pack/plugins/monitoring/public/components/apm/instances/instances.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ import { i18n } from '@kbn/i18n';
1717
import { APM_SYSTEM_ID } from '../../../../common/constants';
1818
import { ListingCallOut } from '../../setup_mode/listing_callout';
1919
import { SetupModeBadge } from '../../setup_mode/badge';
20+
import { isSetupModeFeatureEnabled } from '../../../lib/setup_mode';
21+
import { SetupModeFeature } from '../../../../common/enums';
2022

2123
function getColumns(setupMode) {
2224
return [
@@ -27,7 +29,7 @@ function getColumns(setupMode) {
2729
field: 'name',
2830
render: (name, apm) => {
2931
let setupModeStatus = null;
30-
if (setupMode && setupMode.enabled) {
32+
if (isSetupModeFeatureEnabled(SetupModeFeature.MetricbeatMigration)) {
3133
const list = get(setupMode, 'data.byUuid', {});
3234
const status = list[apm.uuid] || {};
3335
const instance = {
@@ -120,7 +122,7 @@ export function ApmServerInstances({ apms, setupMode }) {
120122
const { pagination, sorting, onTableChange, data } = apms;
121123

122124
let setupModeCallout = null;
123-
if (setupMode.enabled && setupMode.data) {
125+
if (isSetupModeFeatureEnabled(SetupModeFeature.MetricbeatMigration)) {
124126
setupModeCallout = (
125127
<ListingCallOut
126128
setupModeData={setupMode.data}

x-pack/plugins/monitoring/public/components/beats/listing/listing.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ import { getSafeForExternalLink } from '../../../lib/get_safe_for_external_link'
2323
import { ListingCallOut } from '../../setup_mode/listing_callout';
2424
import { SetupModeBadge } from '../../setup_mode/badge';
2525
import { FormattedMessage } from '@kbn/i18n/react';
26+
import { isSetupModeFeatureEnabled } from '../../../lib/setup_mode';
27+
import { SetupModeFeature } from '../../../../common/enums';
2628

2729
export class Listing extends PureComponent {
2830
getColumns() {
@@ -36,7 +38,7 @@ export class Listing extends PureComponent {
3638
field: 'name',
3739
render: (name, beat) => {
3840
let setupModeStatus = null;
39-
if (setupMode && setupMode.enabled) {
41+
if (isSetupModeFeatureEnabled(SetupModeFeature.MetricbeatMigration)) {
4042
const list = get(setupMode, 'data.byUuid', {});
4143
const status = list[beat.uuid] || {};
4244
const instance = {
@@ -122,7 +124,7 @@ export class Listing extends PureComponent {
122124
const { stats, data, sorting, pagination, onTableChange, setupMode } = this.props;
123125

124126
let setupModeCallOut = null;
125-
if (setupMode.enabled && setupMode.data) {
127+
if (isSetupModeFeatureEnabled(SetupModeFeature.MetricbeatMigration)) {
126128
setupModeCallOut = (
127129
<ListingCallOut
128130
setupModeData={setupMode.data}

x-pack/plugins/monitoring/public/components/cluster/overview/apm_panel.js

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ import { formatTimestampToDuration } from '../../../../common';
2727
import { CALCULATE_DURATION_SINCE, APM_SYSTEM_ID } from '../../../../common/constants';
2828
import { SetupModeTooltip } from '../../setup_mode/tooltip';
2929
import { getSafeForExternalLink } from '../../../lib/get_safe_for_external_link';
30+
import { isSetupModeFeatureEnabled } from '../../../lib/setup_mode';
31+
import { SetupModeFeature } from '../../../../common/enums';
3032

3133
export function ApmPanel(props) {
3234
const { setupMode } = props;
@@ -38,14 +40,15 @@ export function ApmPanel(props) {
3840

3941
const goToInstances = () => getSafeForExternalLink('#/apm/instances');
4042
const setupModeData = get(setupMode.data, 'apm');
41-
const setupModeTooltip =
42-
setupMode && setupMode.enabled ? (
43-
<SetupModeTooltip
44-
setupModeData={setupModeData}
45-
badgeClickLink={goToInstances()}
46-
productName={APM_SYSTEM_ID}
47-
/>
48-
) : null;
43+
const setupModeMetricbeatMigrationTooltip = isSetupModeFeatureEnabled(
44+
SetupModeFeature.MetricbeatMigration
45+
) ? (
46+
<SetupModeTooltip
47+
setupModeData={setupModeData}
48+
badgeClickLink={goToInstances()}
49+
productName={APM_SYSTEM_ID}
50+
/>
51+
) : null;
4952

5053
return (
5154
<ClusterItemContainer
@@ -137,7 +140,7 @@ export function ApmPanel(props) {
137140
</h3>
138141
</EuiTitle>
139142
</EuiFlexItem>
140-
{setupModeTooltip}
143+
{setupModeMetricbeatMigrationTooltip}
141144
</EuiFlexGroup>
142145
<EuiHorizontalRule margin="m" />
143146
<EuiDescriptionList type="column">

x-pack/plugins/monitoring/public/components/cluster/overview/beats_panel.js

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ import { i18n } from '@kbn/i18n';
2525
import { SetupModeTooltip } from '../../setup_mode/tooltip';
2626
import { BEATS_SYSTEM_ID } from '../../../../common/constants';
2727
import { getSafeForExternalLink } from '../../../lib/get_safe_for_external_link';
28+
import { isSetupModeFeatureEnabled } from '../../../lib/setup_mode';
29+
import { SetupModeFeature } from '../../../../common/enums';
2830

2931
export function BeatsPanel(props) {
3032
const { setupMode } = props;
@@ -35,14 +37,15 @@ export function BeatsPanel(props) {
3537
}
3638

3739
const setupModeData = get(setupMode.data, 'beats');
38-
const setupModeTooltip =
39-
setupMode && setupMode.enabled ? (
40-
<SetupModeTooltip
41-
setupModeData={setupModeData}
42-
productName={BEATS_SYSTEM_ID}
43-
badgeClickLink={getSafeForExternalLink('#/beats/beats')}
44-
/>
45-
) : null;
40+
const setupModeMetricbeatMigrationTooltip = isSetupModeFeatureEnabled(
41+
SetupModeFeature.MetricbeatMigration
42+
) ? (
43+
<SetupModeTooltip
44+
setupModeData={setupModeData}
45+
productName={BEATS_SYSTEM_ID}
46+
badgeClickLink={getSafeForExternalLink('#/beats/beats')}
47+
/>
48+
) : null;
4649

4750
const beatTypes = props.beats.types.map((beat, index) => {
4851
return [
@@ -142,7 +145,7 @@ export function BeatsPanel(props) {
142145
</h3>
143146
</EuiTitle>
144147
</EuiFlexItem>
145-
{setupModeTooltip}
148+
{setupModeMetricbeatMigrationTooltip}
146149
</EuiFlexGroup>
147150
<EuiHorizontalRule margin="m" />
148151
<EuiDescriptionList type="column">{beatTypes}</EuiDescriptionList>

x-pack/plugins/monitoring/public/components/cluster/overview/elasticsearch_panel.js

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ import {
4444
} from '../../../../common/constants';
4545
import { AlertsBadge } from '../../../alerts/badge';
4646
import { shouldShowAlertBadge } from '../../../alerts/lib/should_show_alert_badge';
47+
import { SetupModeFeature } from '../../../../common/enums';
48+
import { isSetupModeFeatureEnabled } from '../../../lib/setup_mode';
4749

4850
const calculateShards = (shards) => {
4951
const total = get(shards, 'total', 0);
@@ -172,14 +174,15 @@ export function ElasticsearchPanel(props) {
172174
const { primaries, replicas } = calculateShards(get(props, 'cluster_stats.indices.shards', {}));
173175

174176
const setupModeData = get(setupMode.data, 'elasticsearch');
175-
const setupModeTooltip =
176-
setupMode && setupMode.enabled ? (
177-
<SetupModeTooltip
178-
setupModeData={setupModeData}
179-
productName={ELASTICSEARCH_SYSTEM_ID}
180-
badgeClickLink={goToNodes()}
181-
/>
182-
) : null;
177+
const setupModeMetricbeatMigrationTooltip = isSetupModeFeatureEnabled(
178+
SetupModeFeature.MetricbeatMigration
179+
) ? (
180+
<SetupModeTooltip
181+
setupModeData={setupModeData}
182+
productName={ELASTICSEARCH_SYSTEM_ID}
183+
badgeClickLink={goToNodes()}
184+
/>
185+
) : null;
183186

184187
const showMlJobs = () => {
185188
// if license doesn't support ML, then `ml === null`
@@ -367,7 +370,7 @@ export function ElasticsearchPanel(props) {
367370
</EuiFlexItem>
368371
<EuiFlexItem grow={false}>
369372
<EuiFlexGroup gutterSize="s" alignItems="center">
370-
{setupModeTooltip}
373+
{setupModeMetricbeatMigrationTooltip}
371374
{nodesAlertStatus}
372375
</EuiFlexGroup>
373376
</EuiFlexItem>

x-pack/plugins/monitoring/public/components/cluster/overview/kibana_panel.js

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ import { KIBANA_SYSTEM_ID, ALERT_KIBANA_VERSION_MISMATCH } from '../../../../com
3232
import { getSafeForExternalLink } from '../../../lib/get_safe_for_external_link';
3333
import { AlertsBadge } from '../../../alerts/badge';
3434
import { shouldShowAlertBadge } from '../../../alerts/lib/should_show_alert_badge';
35+
import { isSetupModeFeatureEnabled } from '../../../lib/setup_mode';
36+
import { SetupModeFeature } from '../../../../common/enums';
3537

3638
const INSTANCES_PANEL_ALERTS = [ALERT_KIBANA_VERSION_MISMATCH];
3739

@@ -50,14 +52,15 @@ export function KibanaPanel(props) {
5052
const goToInstances = () => getSafeForExternalLink('#/kibana/instances');
5153

5254
const setupModeData = get(setupMode.data, 'kibana');
53-
const setupModeTooltip =
54-
setupMode && setupMode.enabled ? (
55-
<SetupModeTooltip
56-
setupModeData={setupModeData}
57-
productName={KIBANA_SYSTEM_ID}
58-
badgeClickLink={goToInstances()}
59-
/>
60-
) : null;
55+
const setupModeMetricbeatMigrationTooltip = isSetupModeFeatureEnabled(
56+
SetupModeFeature.MetricbeatMigration
57+
) ? (
58+
<SetupModeTooltip
59+
setupModeData={setupModeData}
60+
productName={KIBANA_SYSTEM_ID}
61+
badgeClickLink={goToInstances()}
62+
/>
63+
) : null;
6164

6265
let instancesAlertStatus = null;
6366
if (shouldShowAlertBadge(alerts, INSTANCES_PANEL_ALERTS)) {
@@ -165,7 +168,7 @@ export function KibanaPanel(props) {
165168
</EuiFlexItem>
166169
<EuiFlexItem grow={false}>
167170
<EuiFlexGroup gutterSize="s" alignItems="center">
168-
{setupModeTooltip}
171+
{setupModeMetricbeatMigrationTooltip}
169172
{instancesAlertStatus}
170173
</EuiFlexGroup>
171174
</EuiFlexItem>

x-pack/plugins/monitoring/public/components/cluster/overview/logstash_panel.js

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ import { SetupModeTooltip } from '../../setup_mode/tooltip';
3737
import { getSafeForExternalLink } from '../../../lib/get_safe_for_external_link';
3838
import { AlertsBadge } from '../../../alerts/badge';
3939
import { shouldShowAlertBadge } from '../../../alerts/lib/should_show_alert_badge';
40+
import { isSetupModeFeatureEnabled } from '../../../lib/setup_mode';
41+
import { SetupModeFeature } from '../../../../common/enums';
4042

4143
const NODES_PANEL_ALERTS = [ALERT_LOGSTASH_VERSION_MISMATCH];
4244

@@ -56,14 +58,15 @@ export function LogstashPanel(props) {
5658
const goToPipelines = () => getSafeForExternalLink('#/logstash/pipelines');
5759

5860
const setupModeData = get(setupMode.data, 'logstash');
59-
const setupModeTooltip =
60-
setupMode && setupMode.enabled ? (
61-
<SetupModeTooltip
62-
setupModeData={setupModeData}
63-
productName={LOGSTASH_SYSTEM_ID}
64-
badgeClickLink={goToNodes()}
65-
/>
66-
) : null;
61+
const setupModeMetricbeatMigrationTooltip = isSetupModeFeatureEnabled(
62+
SetupModeFeature.MetricbeatMigration
63+
) ? (
64+
<SetupModeTooltip
65+
setupModeData={setupModeData}
66+
productName={LOGSTASH_SYSTEM_ID}
67+
badgeClickLink={goToNodes()}
68+
/>
69+
) : null;
6770

6871
let nodesAlertStatus = null;
6972
if (shouldShowAlertBadge(alerts, NODES_PANEL_ALERTS)) {
@@ -162,7 +165,7 @@ export function LogstashPanel(props) {
162165
</EuiFlexItem>
163166
<EuiFlexItem grow={false}>
164167
<EuiFlexGroup gutterSize="s" alignItems="center">
165-
{setupModeTooltip}
168+
{setupModeMetricbeatMigrationTooltip}
166169
{nodesAlertStatus}
167170
</EuiFlexGroup>
168171
</EuiFlexItem>

x-pack/plugins/monitoring/public/components/elasticsearch/nodes/nodes.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ import _ from 'lodash';
3030
import { ELASTICSEARCH_SYSTEM_ID } from '../../../../common/constants';
3131
import { ListingCallOut } from '../../setup_mode/listing_callout';
3232
import { AlertsStatus } from '../../../alerts/status';
33+
import { isSetupModeFeatureEnabled } from '../../../lib/setup_mode';
34+
import { SetupModeFeature } from '../../../../common/enums';
3335

3436
const getNodeTooltip = (node) => {
3537
const { nodeTypeLabel, nodeTypeClass } = node;
@@ -83,7 +85,7 @@ const getColumns = (showCgroupMetricsElasticsearch, setupMode, clusterUuid, aler
8385
);
8486

8587
let setupModeStatus = null;
86-
if (setupMode && setupMode.enabled) {
88+
if (isSetupModeFeatureEnabled(SetupModeFeature.MetricbeatMigration)) {
8789
const list = _.get(setupMode, 'data.byUuid', {});
8890
const status = list[node.resolver] || {};
8991
const instance = {
@@ -307,7 +309,11 @@ export function ElasticsearchNodes({ clusterStatus, showCgroupMetricsElasticsear
307309

308310
// Merge the nodes data with the setup data if enabled
309311
const nodes = props.nodes || [];
310-
if (setupMode.enabled && setupMode.data) {
312+
if (
313+
setupMode &&
314+
setupMode.enabled &&
315+
isSetupModeFeatureEnabled(SetupModeFeature.MetricbeatMigration)
316+
) {
311317
// We want to create a seamless experience for the user by merging in the setup data
312318
// and the node data from monitoring indices in the likely scenario where some nodes
313319
// are using MB collection and some are using no collection
@@ -330,7 +336,7 @@ export function ElasticsearchNodes({ clusterStatus, showCgroupMetricsElasticsear
330336
}
331337

332338
let setupModeCallout = null;
333-
if (setupMode.enabled && setupMode.data) {
339+
if (isSetupModeFeatureEnabled(SetupModeFeature.MetricbeatMigration)) {
334340
setupModeCallout = (
335341
<ListingCallOut
336342
setupModeData={setupMode.data}

0 commit comments

Comments
 (0)