mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 01:38:56 -04:00
[ObsUX] Hide Alerts and rules dropdown behind feature flag in serverless (#169611)
Closes https://github.com/elastic/kibana/issues/169339
## Summary
* Hides the "Alerts and rule" dropdown in the Infra header behind a
feature flag in serverless
* Moves serverless infra tests to the `index.feature_flags.ts` to
prevent failures on MKI

## How to test
* Run in serverless
* Make sure the Alerts and rules dropdown is not there anymore
* Run in stateful
* Make sure dropdown works as before
This commit is contained in:
parent
ebfca9a9ac
commit
78d2eda0ff
14 changed files with 28 additions and 17 deletions
|
@ -280,6 +280,7 @@ export default function ({ getService }: PluginFunctionalProviderContext) {
|
|||
'xpack.infra.featureFlags.metricThresholdAlertRuleEnabled (any)',
|
||||
'xpack.infra.featureFlags.logThresholdAlertRuleEnabled (any)',
|
||||
'xpack.infra.featureFlags.logsUIEnabled (any)',
|
||||
'xpack.infra.featureFlags.alertsAndRulesDropdownEnabled (any)',
|
||||
|
||||
'xpack.license_management.ui.enabled (boolean)',
|
||||
'xpack.maps.preserveDrawingBuffer (boolean)',
|
||||
|
|
|
@ -33,6 +33,7 @@ export interface InfraConfig {
|
|||
inventoryThresholdAlertRuleEnabled: boolean;
|
||||
metricThresholdAlertRuleEnabled: boolean;
|
||||
logThresholdAlertRuleEnabled: boolean;
|
||||
alertsAndRulesDropdownEnabled: boolean;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@ describe('usePluginConfig()', () => {
|
|||
inventoryThresholdAlertRuleEnabled: true,
|
||||
metricThresholdAlertRuleEnabled: true,
|
||||
logThresholdAlertRuleEnabled: true,
|
||||
alertsAndRulesDropdownEnabled: true,
|
||||
},
|
||||
};
|
||||
const { result } = renderHook(() => usePluginConfig(), {
|
||||
|
|
|
@ -85,7 +85,9 @@ export const InfrastructurePage = () => {
|
|||
{settingsTabTitle}
|
||||
</EuiHeaderLink>
|
||||
<Route path={'/inventory'} component={AnomalyDetectionFlyout} />
|
||||
<MetricsAlertDropdown />
|
||||
{config.featureFlags.alertsAndRulesDropdownEnabled && (
|
||||
<MetricsAlertDropdown />
|
||||
)}
|
||||
<EuiHeaderLink
|
||||
href={kibana.services?.application?.getUrlForApp('/integrations/browse')}
|
||||
color="primary"
|
||||
|
|
|
@ -2271,6 +2271,7 @@ const createMockStaticConfiguration = (sources: any): InfraConfig => ({
|
|||
inventoryThresholdAlertRuleEnabled: true,
|
||||
metricThresholdAlertRuleEnabled: true,
|
||||
logThresholdAlertRuleEnabled: true,
|
||||
alertsAndRulesDropdownEnabled: true,
|
||||
},
|
||||
enabled: true,
|
||||
sources,
|
||||
|
|
|
@ -133,6 +133,7 @@ const createMockStaticConfiguration = (sources: any): InfraConfig => ({
|
|||
inventoryThresholdAlertRuleEnabled: true,
|
||||
metricThresholdAlertRuleEnabled: true,
|
||||
logThresholdAlertRuleEnabled: true,
|
||||
alertsAndRulesDropdownEnabled: true,
|
||||
},
|
||||
sources,
|
||||
enabled: true,
|
||||
|
|
|
@ -109,6 +109,10 @@ export const config: PluginConfigDescriptor<InfraConfig> = {
|
|||
traditional: schema.boolean({ defaultValue: true }),
|
||||
serverless: schema.boolean({ defaultValue: false }),
|
||||
}),
|
||||
alertsAndRulesDropdownEnabled: offeringBasedSchema({
|
||||
traditional: schema.boolean({ defaultValue: true }),
|
||||
serverless: schema.boolean({ defaultValue: false }),
|
||||
}),
|
||||
}),
|
||||
}),
|
||||
deprecations: configDeprecations,
|
||||
|
|
|
@ -347,6 +347,10 @@ export function InfraHomePageProvider({ getService, getPageObjects }: FtrProvide
|
|||
await thresholdInput.type([threshold]);
|
||||
},
|
||||
|
||||
async ensureAlertsAndRulesDropdownIsMissing() {
|
||||
await testSubjects.missingOrFail('infrastructure-alerts-and-rules');
|
||||
},
|
||||
|
||||
async clickAlertsAndRules() {
|
||||
await testSubjects.click('infrastructure-alerts-and-rules');
|
||||
},
|
||||
|
|
|
@ -18,7 +18,11 @@ export default createTestConfig({
|
|||
},
|
||||
suiteTags: { exclude: ['skipSvlOblt'] },
|
||||
// add feature flags
|
||||
kbnServerArgs: [],
|
||||
kbnServerArgs: [
|
||||
'--xpack.infra.enabled=true',
|
||||
'--xpack.infra.featureFlags.customThresholdAlertsEnabled=true',
|
||||
'--xpack.observability.unsafe.thresholdRule.enabled=true',
|
||||
],
|
||||
// load tests in the index file
|
||||
testFiles: [require.resolve('./index.feature_flags.ts')],
|
||||
|
||||
|
|
|
@ -18,9 +18,5 @@ export default createTestConfig({
|
|||
// include settings from project controller
|
||||
// https://github.com/elastic/project-controller/blob/main/internal/project/observability/config/elasticsearch.yml
|
||||
esServerArgs: ['xpack.ml.dfa.enabled=false', 'xpack.ml.nlp.enabled=false'],
|
||||
kbnServerArgs: [
|
||||
'--xpack.infra.enabled=true',
|
||||
'--xpack.infra.featureFlags.customThresholdAlertsEnabled=true',
|
||||
'--xpack.observability.unsafe.thresholdRule.enabled=true',
|
||||
],
|
||||
kbnServerArgs: [],
|
||||
});
|
||||
|
|
|
@ -5,9 +5,11 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
export default function () {
|
||||
import { FtrProviderContext } from '../../ftr_provider_context';
|
||||
|
||||
export default function ({ loadTestFile }: FtrProviderContext) {
|
||||
describe('serverless observability UI - feature flags', function () {
|
||||
// add tests that require feature flags, defined in config.feature_flags.ts
|
||||
// loadTestFile(require.resolve(<path_to_test_file>));
|
||||
loadTestFile(require.resolve('./infra'));
|
||||
});
|
||||
}
|
||||
|
|
|
@ -15,7 +15,6 @@ export default function ({ loadTestFile }: FtrProviderContext) {
|
|||
loadTestFile(require.resolve('./rules/rules_list'));
|
||||
loadTestFile(require.resolve('./cases'));
|
||||
loadTestFile(require.resolve('./advanced_settings'));
|
||||
loadTestFile(require.resolve('./infra'));
|
||||
loadTestFile(require.resolve('./ml'));
|
||||
});
|
||||
}
|
||||
|
|
|
@ -30,11 +30,8 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
await pageObjects.header.waitUntilLoadingHasFinished();
|
||||
});
|
||||
|
||||
it('should have menu item to create a custom threshold alert', async () => {
|
||||
await pageObjects.infraHome.clickAlertsAndRules();
|
||||
await pageObjects.infraHome.ensurePopoverOpened();
|
||||
await pageObjects.infraHome.ensureCustomThresholdAlertMenuItemIsVisible();
|
||||
await pageObjects.infraHome.clickAlertsAndRules();
|
||||
it('is hidden', async () => {
|
||||
await pageObjects.infraHome.ensureAlertsAndRulesDropdownIsMissing();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -9,8 +9,6 @@ import { FtrProviderContext } from '../../../ftr_provider_context';
|
|||
|
||||
export default function ({ loadTestFile }: FtrProviderContext) {
|
||||
describe('Observability Infra', function () {
|
||||
// TimeoutError: Waiting for element to be located By(css selector, [data-test-subj="infrastructure-alerts-and-rules"])
|
||||
this.tags(['failsOnMKI']);
|
||||
loadTestFile(require.resolve('./header_menu'));
|
||||
loadTestFile(require.resolve('./node_details'));
|
||||
loadTestFile(require.resolve('./hosts_page'));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue