Skip to content

Commit

Permalink
Disable log stream and settings pages (elastic#203996)
Browse files Browse the repository at this point in the history
## Release note
Logs Stream and the logs settings page in Observability are removed. Use
the [Discover](https://www.elastic.co/guide/en/kibana/current/discover.html) application,
which now offers a contextual experience for logs, to explore your logs.
The logs stream panel in dashboards is removed, use Discover sessions
instead.

## 📓 Summary
The Logs Stream app in Observability and the log stream panel available
in dashboards were hidden behind an advanced setting as part of
elastic#194519 in `8.16.0`. At the same
time, a link was added to the left navigation for the logs settings
page.

This PR which targets `9.0.0` disables these pages as well as the
dashboard panel:
- Removes the navigation item for the logs settings page and the
corresponding route
- Removes the `observability:enableLogsStream` setting and keeps the
redirects to logs explorer. The locators will be updated to point to
Discover as part of elastic#182229.

Removing the code that renders the logs stream and the settings pages
will be done in a [follow-up
issue](elastic#204005).

### Left navigation

#### Classic
<img width="238" alt="image"
src="https://github.com/user-attachments/assets/bc72c5ce-ed32-472e-91c1-8bd691dd2420"
/>

#### Solution
<img width="275" alt="image"
src="https://github.com/user-attachments/assets/3b21a2ae-5e82-478e-97bb-e12303178a24"
/>

### Navigating to /app/logs/settings
<img width="1722" alt="image"
src="https://github.com/user-attachments/assets/07b4197c-6063-4a59-8194-a97ce2fa3cd7"
/>


Closes elastic/observability-dev#4156

---------

Co-authored-by: kibanamachine <[email protected]>
Co-authored-by: Elastic Machine <[email protected]>
  • Loading branch information
3 people authored and JoseLuisGJ committed Dec 19, 2024
1 parent affa730 commit 05f21ea
Show file tree
Hide file tree
Showing 20 changed files with 23 additions and 220 deletions.
1 change: 0 additions & 1 deletion packages/kbn-management/settings/setting_ids/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,6 @@ export const OBSERVABILITY_LOGS_EXPLORER_ALLOWED_DATA_VIEWS_ID =
export const OBSERVABILITY_LOGS_SHARED_NEW_LOGS_OVERVIEW_ID = 'observability:newLogsOverview';
export const OBSERVABILITY_ENTITY_CENTRIC_EXPERIENCE = 'observability:entityCentricExperience';
export const OBSERVABILITY_LOGS_DATA_ACCESS_LOG_SOURCES_ID = 'observability:logSources';
export const OBSERVABILITY_ENABLE_LOGS_STREAM = 'observability:enableLogsStream';
export const OBSERVABILITY_AI_ASSISTANT_SIMULATED_FUNCTION_CALLING =
'observability:aiAssistantSimulatedFunctionCalling';
export const OBSERVABILITY_AI_ASSISTANT_SEARCH_CONNECTOR_INDEX_PATTERN =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -502,10 +502,6 @@ export const stackManagementSchema: MakeSchemaFrom<UsageStats> = {
_meta: { description: 'Non-default value of setting.' },
},
},
'observability:enableLogsStream': {
type: 'boolean',
_meta: { description: 'Non-default value of setting.' },
},
'banners:placement': {
type: 'keyword',
_meta: { description: 'Non-default value of setting.' },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ export interface UsageStats {
'observability:apmEnableServiceInventoryTableSearchBar': boolean;
'observability:logsExplorer:allowedDataViews': string[];
'observability:logSources': string[];
'observability:enableLogsStream': boolean;
'observability:newLogsOverview': boolean;
'observability:aiAssistantSimulatedFunctionCalling': boolean;
'observability:aiAssistantSearchConnectorIndexPattern': string;
Expand Down
6 changes: 0 additions & 6 deletions src/plugins/telemetry/schema/oss_plugins.json
Original file line number Diff line number Diff line change
Expand Up @@ -11010,12 +11010,6 @@
}
}
},
"observability:enableLogsStream": {
"type": "boolean",
"_meta": {
"description": "Non-default value of setting."
}
},
"banners:placement": {
"type": "keyword",
"_meta": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
*/

import expect from '@kbn/expect';
import { OBSERVABILITY_ENABLE_LOGS_STREAM } from '@kbn/management-settings-ids';
import { VisualizeConstants } from '@kbn/visualizations-plugin/common/constants';
import { FtrProviderContext } from '../../../ftr_provider_context';

Expand All @@ -28,20 +27,18 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await kibanaServer.uiSettings.replace({
defaultIndex: '0bf35f60-3dc9-11e8-8660-4d65aa086b3c',
});
await kibanaServer.uiSettings.update({ [OBSERVABILITY_ENABLE_LOGS_STREAM]: true });
});

after(async () => {
await kibanaServer.savedObjects.cleanStandardList();
await kibanaServer.uiSettings.update({ [OBSERVABILITY_ENABLE_LOGS_STREAM]: false });
});

it('ensure toolbar popover closes on add', async () => {
await dashboard.navigateToApp();
await dashboard.clickNewDashboard();
await dashboard.switchToEditMode();
await dashboardAddPanel.clickEditorMenuButton();
await dashboardAddPanel.clickAddNewPanelFromUIActionLink('Log stream (deprecated)');
await dashboardAddPanel.clickAddNewPanelFromUIActionLink('Monitors stats');
await dashboardAddPanel.expectEditorMenuClosed();
});

Expand Down
1 change: 0 additions & 1 deletion test/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,6 @@
"@kbn/default-nav-management",
"@kbn/default-nav-devtools",
"@kbn/core-saved-objects-import-export-server-internal",
"@kbn/management-settings-ids",
"@kbn/core-deprecations-common",
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -23883,8 +23883,6 @@
"xpack.infra.durationUnits.weeks.singular": "semaine",
"xpack.infra.durationUnits.years.plural": "années",
"xpack.infra.durationUnits.years.singular": "an",
"xpack.infra.enableLogsStream": "Flux de logs",
"xpack.infra.enableLogsStreamDescription": "Active l'application Logs Stream héritée et le panneau du tableau de bord.",
"xpack.infra.errorPage.errorOccurredTitle": "Une erreur s'est produite",
"xpack.infra.errorPage.tryAgainButtonLabel": "Réessayer",
"xpack.infra.errorPage.tryAgainDescription ": "Cliquez sur le bouton Retour et réessayez.",
Expand Down Expand Up @@ -24274,8 +24272,6 @@
"xpack.infra.logsPage.toolbar.logFilterErrorToastTitle": "Erreur de filtrage du log",
"xpack.infra.logsSettingsPage.loadingButtonLabel": "Chargement",
"xpack.infra.logsStreamEmbeddable.deprecationWarningDescription": "La maintenance des panneaux de flux de logs n'est plus assurée. Essayez d'utiliser {savedSearchDocsLink} pour une visualisation similaire.",
"xpack.infra.logStreamEmbeddable.displayName": "Logs Stream (déclassé)",
"xpack.infra.logStreamEmbeddable.title": "Flux de log",
"xpack.infra.logStreamPageTemplate.backtoLogsStream": "Retour au flux de logs",
"xpack.infra.logStreamPageTemplate.widgetBadge": "Widget",
"xpack.infra.logStreamPageTemplate.widgetDescription": "Vous visionnez un widget intégré. Les modifications seront synchronisées avec l'URL, mais elles ne seront pas conservées dans la vue par défaut du flux de logs.",
Expand Down Expand Up @@ -33853,8 +33849,6 @@
"xpack.observability.obltNav.otherTools": "Autres outils",
"xpack.observability.obltNav.otherTools.logsAnomalies": "Anomalies des logs",
"xpack.observability.obltNav.otherTools.logsCategories": "Bibliothèque Visualize",
"xpack.observability.obltNav.otherTools.logsSettings": "Paramètres des logs",
"xpack.observability.obltNav.otherTools.logsStream": "Flux de logs",
"xpack.observability.obltNav.stackManagement": "Gestion de la Suite",
"xpack.observability.overview.alerts.appLink": "Afficher les alertes",
"xpack.observability.overview.alerts.title": "Alertes",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23745,8 +23745,6 @@
"xpack.infra.durationUnits.weeks.singular": "週",
"xpack.infra.durationUnits.years.plural": "年",
"xpack.infra.durationUnits.years.singular": "年",
"xpack.infra.enableLogsStream": "ログストリーム",
"xpack.infra.enableLogsStreamDescription": "レガシーログストリームアプリケーションとダッシュボードパネルを有効化します。",
"xpack.infra.errorPage.errorOccurredTitle": "エラーが発生しました",
"xpack.infra.errorPage.tryAgainButtonLabel": "再試行",
"xpack.infra.errorPage.tryAgainDescription ": "戻るボタンをクリックして再試行してください。",
Expand Down Expand Up @@ -24135,8 +24133,6 @@
"xpack.infra.logsPage.toolbar.logFilterErrorToastTitle": "ログフィルターエラー",
"xpack.infra.logsSettingsPage.loadingButtonLabel": "読み込み中",
"xpack.infra.logsStreamEmbeddable.deprecationWarningDescription": "ログストリームパネルは管理されていません。{savedSearchDocsLink}を同様の視覚化に活用してください。",
"xpack.infra.logStreamEmbeddable.displayName": "ログストリーム(廃止予定)",
"xpack.infra.logStreamEmbeddable.title": "ログストリーム",
"xpack.infra.logStreamPageTemplate.backtoLogsStream": "ログストリームに戻る",
"xpack.infra.logStreamPageTemplate.widgetBadge": "ウィジェット",
"xpack.infra.logStreamPageTemplate.widgetDescription": "埋め込まれたウィジェットを表示しています。変更はURLと同期されますが、デフォルトログストリームビューには永続しません。",
Expand Down Expand Up @@ -33714,8 +33710,6 @@
"xpack.observability.obltNav.otherTools": "その他のツール",
"xpack.observability.obltNav.otherTools.logsAnomalies": "Logs異常",
"xpack.observability.obltNav.otherTools.logsCategories": "Visualizeライブラリ",
"xpack.observability.obltNav.otherTools.logsSettings": "Logs設定",
"xpack.observability.obltNav.otherTools.logsStream": "ログストリーム",
"xpack.observability.obltNav.stackManagement": "スタック管理",
"xpack.observability.overview.alerts.appLink": "アラートを表示",
"xpack.observability.overview.alerts.title": "アラート",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23366,8 +23366,6 @@
"xpack.infra.durationUnits.weeks.singular": "周",
"xpack.infra.durationUnits.years.plural": "年",
"xpack.infra.durationUnits.years.singular": "年",
"xpack.infra.enableLogsStream": "日志流",
"xpack.infra.enableLogsStreamDescription": "启用旧版日志流应用程序和仪表板面板。",
"xpack.infra.errorPage.errorOccurredTitle": "发生错误",
"xpack.infra.errorPage.tryAgainButtonLabel": "重试",
"xpack.infra.errorPage.tryAgainDescription ": "请点击后退按钮,然后重试。",
Expand Down Expand Up @@ -23752,8 +23750,6 @@
"xpack.infra.logsPage.toolbar.logFilterErrorToastTitle": "日志筛选错误",
"xpack.infra.logsSettingsPage.loadingButtonLabel": "正在加载",
"xpack.infra.logsStreamEmbeddable.deprecationWarningDescription": "将不再维护日志流面板。尝试将 {savedSearchDocsLink} 用于类似可视化。",
"xpack.infra.logStreamEmbeddable.displayName": "日志流(已过时)",
"xpack.infra.logStreamEmbeddable.title": "日志流",
"xpack.infra.logStreamPageTemplate.backtoLogsStream": "返回到日志流",
"xpack.infra.logStreamPageTemplate.widgetBadge": "小组件",
"xpack.infra.logStreamPageTemplate.widgetDescription": "您正在查看嵌入式小组件。更改将同步到 URL,但不会持续存在于默认日志流视图。",
Expand Down Expand Up @@ -33229,8 +33225,6 @@
"xpack.observability.obltNav.otherTools": "其他工具",
"xpack.observability.obltNav.otherTools.logsAnomalies": "日志异常",
"xpack.observability.obltNav.otherTools.logsCategories": "Visualize 库",
"xpack.observability.obltNav.otherTools.logsSettings": "日志设置",
"xpack.observability.obltNav.otherTools.logsStream": "日志流",
"xpack.observability.obltNav.stackManagement": "Stack Management",
"xpack.observability.overview.alerts.appLink": "显示告警",
"xpack.observability.overview.alerts.title": "告警",
Expand Down
37 changes: 0 additions & 37 deletions x-pack/plugins/observability_solution/infra/common/ui_settings.ts

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { EuiFlexGroup, EuiFlexItem, EuiHeaderLink, EuiHeaderLinks } from '@elast
import { i18n } from '@kbn/i18n';
import React, { useContext } from 'react';
import { Routes, Route } from '@kbn/shared-ux-router';
import { useKibana, useUiSetting } from '@kbn/kibana-react-plugin/public';
import { useKibana } from '@kbn/kibana-react-plugin/public';
import { HeaderMenuPortal, useLinkProps } from '@kbn/observability-shared-plugin/public';
import { SharePublicStart } from '@kbn/share-plugin/public/plugin';
import {
Expand All @@ -20,7 +20,6 @@ import {
} from '@kbn/deeplinks-observability';
import { dynamic } from '@kbn/shared-ux-utility';
import { isDevMode } from '@kbn/xstate-utils';
import { OBSERVABILITY_ENABLE_LOGS_STREAM } from '@kbn/management-settings-ids';
import { LazyAlertDropdownWrapper } from '../../alerting/log_threshold';
import { HelpCenterContent } from '../../components/help_center_content';
import { useReadOnlyBadge } from '../../hooks/use_readonly_badge';
Expand All @@ -29,16 +28,13 @@ import { RedirectWithQueryParams } from '../../utils/redirect_with_query_params'
import { NotFoundPage } from '../404';
import { getLogsAppRoutes } from './routes';

const StreamPage = dynamic(() => import('./stream').then((mod) => ({ default: mod.StreamPage })));
const LogEntryCategoriesPage = dynamic(() =>
import('./log_entry_categories').then((mod) => ({ default: mod.LogEntryCategoriesPage }))
);
const LogEntryRatePage = dynamic(() =>
import('./log_entry_rate').then((mod) => ({ default: mod.LogEntryRatePage }))
);
const LogsSettingsPage = dynamic(() =>
import('./settings').then((mod) => ({ default: mod.LogsSettingsPage }))
);

const StateMachinePlayground = dynamic(() =>
import('../../observability_logs/xstate_helpers').then((mod) => ({
default: mod.StateMachinePlayground,
Expand All @@ -48,8 +44,6 @@ const StateMachinePlayground = dynamic(() =>
export const LogsPageContent: React.FunctionComponent = () => {
const { application, share } = useKibana<{ share: SharePublicStart }>().services;

const isLogsStreamEnabled: boolean = useUiSetting(OBSERVABILITY_ENABLE_LOGS_STREAM, false);

const uiCapabilities = application?.capabilities;
const onboardingLocator = share?.url.locators.get<ObservabilityOnboardingLocatorParams>(
OBSERVABILITY_ONBOARDING_LOCATOR
Expand All @@ -60,7 +54,7 @@ export const LogsPageContent: React.FunctionComponent = () => {

useReadOnlyBadge(!uiCapabilities?.logs?.save);

const routes = getLogsAppRoutes({ isLogsStreamEnabled });
const routes = getLogsAppRoutes();

const settingsLinkProps = useLinkProps({
app: 'logs',
Expand Down Expand Up @@ -94,34 +88,23 @@ export const LogsPageContent: React.FunctionComponent = () => {
)}

<Routes>
{routes.stream ? (
<Route path={routes.stream.path} component={StreamPage} />
) : (
<Route
path="/stream"
exact
render={() => {
share.url.locators
.get<AllDatasetsLocatorParams>(ALL_DATASETS_LOCATOR_ID)
?.navigate({});

return null;
}}
/>
)}
<Route
path="/stream"
exact
render={() => {
share.url.locators.get<AllDatasetsLocatorParams>(ALL_DATASETS_LOCATOR_ID)?.navigate({});

return null;
}}
/>
<Route path={routes.logsAnomalies.path} component={LogEntryRatePage} />
<Route path={routes.logsCategories.path} component={LogEntryCategoriesPage} />
<Route path={routes.settings.path} component={LogsSettingsPage} />
{enableDeveloperRoutes && (
<Route path={'/state-machine-playground'} component={StateMachinePlayground} />
)}
<RedirectWithQueryParams from={'/analysis'} to={routes.logsAnomalies.path} exact />
<RedirectWithQueryParams from={'/log-rate'} to={routes.logsAnomalies.path} exact />
<RedirectWithQueryParams
from={'/'}
to={routes.stream?.path ?? routes.logsAnomalies.path}
exact
/>
<RedirectWithQueryParams from={'/'} to={routes.logsAnomalies.path} exact />

<Route render={() => <NotFoundPage title={pageTitle} />} />
</Routes>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,7 @@
* 2.0.
*/

import {
logsAnomaliesTitle,
logCategoriesTitle,
settingsTitle,
streamTitle,
} from '../../translations';
import { logsAnomaliesTitle, logCategoriesTitle } from '../../translations';

export interface LogsRoute {
id: string;
Expand All @@ -21,11 +16,9 @@ export interface LogsRoute {
export interface LogsAppRoutes {
logsAnomalies: LogsRoute;
logsCategories: LogsRoute;
settings: LogsRoute;
stream?: LogsRoute;
}

export const getLogsAppRoutes = ({ isLogsStreamEnabled }: { isLogsStreamEnabled: boolean }) => {
export const getLogsAppRoutes = () => {
const routes: LogsAppRoutes = {
logsAnomalies: {
id: 'anomalies',
Expand All @@ -37,20 +30,7 @@ export const getLogsAppRoutes = ({ isLogsStreamEnabled }: { isLogsStreamEnabled:
title: logCategoriesTitle,
path: '/log-categories',
},
settings: {
id: 'settings',
title: settingsTitle,
path: '/settings',
},
};

if (isLogsStreamEnabled) {
routes.stream = {
id: 'stream',
title: streamTitle,
path: '/stream',
};
}

return routes;
};
Loading

0 comments on commit 05f21ea

Please sign in to comment.