Skip to content

Commit

Permalink
[8.x] Implement new o11y nav hierarchy for serverless (#193510) (#199467
Browse files Browse the repository at this point in the history
)

# Backport

This will backport the following commits from `main` to `8.x`:
- [Implement new o11y nav hierarchy for serverless
(#193510)](#193510)

<!--- Backport version: 9.4.3 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Panagiota
Mitsopoulou","email":"[email protected]"},"sourceCommit":{"committedDate":"2024-11-08T12:18:50Z","message":"Implement
new o11y nav hierarchy for serverless (#193510)\n\nFixes
https://github.com/elastic/kibana/issues/192804\r\n\r\nThis PR updates
the nav hierarchy on serverless and changes the\r\n`accordion` to
`panelOpener`. The menu items have been updated according\r\nto the
[Figma\r\nfile](https://www.figma.com/design/IAR7FjBaSCDWypNYL83fzy/Observability-Navigation?node-id=1232-10087&node-type=frame&t=AMlUqaK2UhhiyqGi-0).\r\nHere's
a Video of how nav hierarchy looks like on serverless with the\r\nnew
changes:\r\n\r\n\r\nhttps://github.com/user-attachments/assets/55d04969-379e-4cd1-8e25-d50382cf51e0\r\n\r\n##
What was changed\r\n\r\n- AI & ML menu is removed and split into\r\n -
`AI Assistant`\r\n - `Machine learning`\r\n- `Applications` now opens a
`panelOpener` instead of an `accordion`\r\n- `Service Inventory` was
renamed to `Service inventory` to meet the use\r\nof sentence-case
requirement\r\n - Synthetics was moved to a new section\r\n-
`Infrastructure`\r\n- `Infrastructure Inventory` was renamed to
`Infrastructure inventory`\r\nto match the sentence-case
requirement\r\n- `Machine learning`: this menu was not present at all on
serverless \r\n\r\n## Notes for the Reviewer\r\n\r\n- `Stack Management`
on security and search don't use any `panelOpener`,\r\nthey use a
landing page instead. In order to be consistent with the
rest\r\nsolutions, I kept Stack Management as is.\r\n- `Machine
Learning` menu item was not present at all on serverless. I\r\nneed a
confirmation, that it is fine to bring it in as it is from\r\nstateful
cc @vinaychandrasekhar\r\n\r\n---------\r\n\r\nCo-authored-by: Elastic
Machine
<[email protected]>","sha":"0e736e31176fafa0059773d351782cb0707db426","branchLabelMapping":{"^v9.0.0$":"main","^v8.17.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","backport:prev-minor","ci:build-serverless-image","ci:project-deploy-observability","Team:obs-ux-management"],"title":"Implement
new o11y nav hierarchy for
serverless","number":193510,"url":"https://github.com/elastic/kibana/pull/193510","mergeCommit":{"message":"Implement
new o11y nav hierarchy for serverless (#193510)\n\nFixes
https://github.com/elastic/kibana/issues/192804\r\n\r\nThis PR updates
the nav hierarchy on serverless and changes the\r\n`accordion` to
`panelOpener`. The menu items have been updated according\r\nto the
[Figma\r\nfile](https://www.figma.com/design/IAR7FjBaSCDWypNYL83fzy/Observability-Navigation?node-id=1232-10087&node-type=frame&t=AMlUqaK2UhhiyqGi-0).\r\nHere's
a Video of how nav hierarchy looks like on serverless with the\r\nnew
changes:\r\n\r\n\r\nhttps://github.com/user-attachments/assets/55d04969-379e-4cd1-8e25-d50382cf51e0\r\n\r\n##
What was changed\r\n\r\n- AI & ML menu is removed and split into\r\n -
`AI Assistant`\r\n - `Machine learning`\r\n- `Applications` now opens a
`panelOpener` instead of an `accordion`\r\n- `Service Inventory` was
renamed to `Service inventory` to meet the use\r\nof sentence-case
requirement\r\n - Synthetics was moved to a new section\r\n-
`Infrastructure`\r\n- `Infrastructure Inventory` was renamed to
`Infrastructure inventory`\r\nto match the sentence-case
requirement\r\n- `Machine learning`: this menu was not present at all on
serverless \r\n\r\n## Notes for the Reviewer\r\n\r\n- `Stack Management`
on security and search don't use any `panelOpener`,\r\nthey use a
landing page instead. In order to be consistent with the
rest\r\nsolutions, I kept Stack Management as is.\r\n- `Machine
Learning` menu item was not present at all on serverless. I\r\nneed a
confirmation, that it is fine to bring it in as it is from\r\nstateful
cc @vinaychandrasekhar\r\n\r\n---------\r\n\r\nCo-authored-by: Elastic
Machine
<[email protected]>","sha":"0e736e31176fafa0059773d351782cb0707db426"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/193510","number":193510,"mergeCommit":{"message":"Implement
new o11y nav hierarchy for serverless (#193510)\n\nFixes
https://github.com/elastic/kibana/issues/192804\r\n\r\nThis PR updates
the nav hierarchy on serverless and changes the\r\n`accordion` to
`panelOpener`. The menu items have been updated according\r\nto the
[Figma\r\nfile](https://www.figma.com/design/IAR7FjBaSCDWypNYL83fzy/Observability-Navigation?node-id=1232-10087&node-type=frame&t=AMlUqaK2UhhiyqGi-0).\r\nHere's
a Video of how nav hierarchy looks like on serverless with the\r\nnew
changes:\r\n\r\n\r\nhttps://github.com/user-attachments/assets/55d04969-379e-4cd1-8e25-d50382cf51e0\r\n\r\n##
What was changed\r\n\r\n- AI & ML menu is removed and split into\r\n -
`AI Assistant`\r\n - `Machine learning`\r\n- `Applications` now opens a
`panelOpener` instead of an `accordion`\r\n- `Service Inventory` was
renamed to `Service inventory` to meet the use\r\nof sentence-case
requirement\r\n - Synthetics was moved to a new section\r\n-
`Infrastructure`\r\n- `Infrastructure Inventory` was renamed to
`Infrastructure inventory`\r\nto match the sentence-case
requirement\r\n- `Machine learning`: this menu was not present at all on
serverless \r\n\r\n## Notes for the Reviewer\r\n\r\n- `Stack Management`
on security and search don't use any `panelOpener`,\r\nthey use a
landing page instead. In order to be consistent with the
rest\r\nsolutions, I kept Stack Management as is.\r\n- `Machine
Learning` menu item was not present at all on serverless. I\r\nneed a
confirmation, that it is fine to bring it in as it is from\r\nstateful
cc @vinaychandrasekhar\r\n\r\n---------\r\n\r\nCo-authored-by: Elastic
Machine
<[email protected]>","sha":"0e736e31176fafa0059773d351782cb0707db426"}}]}]
BACKPORT-->

Co-authored-by: Panagiota Mitsopoulou <[email protected]>
  • Loading branch information
kibanamachine and mgiota authored Nov 8, 2024
1 parent b8d6a5c commit d46d04a
Show file tree
Hide file tree
Showing 7 changed files with 224 additions and 140 deletions.
323 changes: 217 additions & 106 deletions x-pack/plugins/serverless_observability/public/navigation_tree.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,147 +70,258 @@ export const navigationTree: NavigationTreeDefinition = {
link: 'slo',
},
{
id: 'aiops',
title: 'AIOps',
link: 'ml:anomalyDetection',
renderAs: 'accordion',
spaceBefore: null,
link: 'observabilityAIAssistant',
title: i18n.translate('xpack.serverlessObservability.nav.aiAssistant', {
defaultMessage: 'AI Assistant',
}),
},
{ link: 'inventory', spaceBefore: 'm' },
{
id: 'apm',
title: i18n.translate('xpack.serverlessObservability.nav.applications', {
defaultMessage: 'Applications',
}),
renderAs: 'panelOpener',
children: [
{
title: i18n.translate('xpack.serverlessObservability.nav.ml.jobs', {
defaultMessage: 'Anomaly detection',
}),
link: 'ml:anomalyDetection',
id: 'ml:anomalyDetection',
renderAs: 'item',
children: [
{
link: 'ml:singleMetricViewer',
},
{
link: 'ml:anomalyExplorer',
link: 'apm:services',
title: i18n.translate('xpack.serverlessObservability.nav.apm.services', {
defaultMessage: 'Service inventory',
}),
},
{ link: 'apm:traces' },
{ link: 'apm:dependencies' },
{ link: 'apm:settings' },
{
link: 'ml:settings',
id: 'synthetics',
title: i18n.translate('xpack.serverlessObservability.nav.synthetics', {
defaultMessage: 'Synthetics',
}),
children: [
{
title: i18n.translate(
'xpack.serverlessObservability.nav.synthetics.overviewItem',
{
defaultMessage: 'Overview',
}
),
id: 'synthetics-overview',
link: 'synthetics:overview',
breadcrumbStatus: 'hidden',
},
{
link: 'synthetics:certificates',
title: i18n.translate(
'xpack.serverlessObservability.nav.synthetics.certificatesItem',
{
defaultMessage: 'TLS certificates',
}
),
id: 'synthetics-certificates',
breadcrumbStatus: 'hidden',
},
],
},
],
},
{
title: i18n.translate('xpack.serverlessObservability.ml.logRateAnalysis', {
defaultMessage: 'Log rate analysis',
}),
link: 'ml:logRateAnalysis',
getIsActive: ({ pathNameSerialized, prepend }) => {
return pathNameSerialized.includes(prepend('/app/ml/aiops/log_rate_analysis'));
},
},
{
title: i18n.translate('xpack.serverlessObservability.ml.changePointDetection', {
defaultMessage: 'Change point detection',
}),
link: 'ml:changePointDetections',
getIsActive: ({ pathNameSerialized, prepend }) => {
return pathNameSerialized.includes(prepend('/app/ml/aiops/change_point_detection'));
},
},
{
title: i18n.translate('xpack.serverlessObservability.nav.ml.job.notifications', {
defaultMessage: 'Job notifications',
}),
link: 'ml:notifications',
},
],
},
{ link: 'inventory', spaceBefore: 'm' },
{
id: 'apm',
title: i18n.translate('xpack.serverlessObservability.nav.applications', {
defaultMessage: 'Applications',
id: 'metrics',
title: i18n.translate('xpack.serverlessObservability.nav.infrastructure', {
defaultMessage: 'Infrastructure',
}),
link: 'apm:services',
renderAs: 'accordion',
renderAs: 'panelOpener',
children: [
{
link: 'apm:services',
getIsActive: ({ pathNameSerialized }) => {
const regex = /app\/apm\/.*service.*/;
return regex.test(pathNameSerialized);
},
},
{
link: 'apm:traces',
getIsActive: ({ pathNameSerialized, prepend }) => {
return pathNameSerialized.startsWith(prepend('/app/apm/traces'));
},
},
{
link: 'apm:dependencies',
getIsActive: ({ pathNameSerialized, prepend }) => {
return pathNameSerialized.startsWith(prepend('/app/apm/dependencies'));
},
},
{
link: 'apm:settings',
sideNavStatus: 'hidden', // only to be considered in the breadcrumbs
children: [
{
link: 'metrics:inventory',
title: i18n.translate(
'xpack.serverlessObservability.nav.infrastructureInventory',
{
defaultMessage: 'Infrastructure inventory',
}
),
},
{ link: 'metrics:hosts' },
{ link: 'metrics:settings' },
{ link: 'metrics:assetDetails' },
],
},
],
},
{
id: 'metrics',
title: i18n.translate('xpack.serverlessObservability.nav.infrastructure', {
defaultMessage: 'Infrastructure',
id: 'machine_learning-landing',
renderAs: 'panelOpener',
title: i18n.translate('xpack.serverlessObservability.nav.machineLearning', {
defaultMessage: 'Machine learning',
}),
link: 'metrics:inventory',
renderAs: 'accordion',
children: [
{
link: 'metrics:inventory',
getIsActive: ({ pathNameSerialized, prepend }) => {
return pathNameSerialized.startsWith(prepend('/app/metrics/inventory'));
},
children: [
{
link: 'ml:overview',
},
{
link: 'ml:notifications',
},
{
link: 'ml:memoryUsage',
title: i18n.translate(
'xpack.serverlessObservability.nav.machineLearning.memoryUsage',
{
defaultMessage: 'Memory usage',
}
),
},
],
},
{
link: 'metrics:hosts',
getIsActive: ({ pathNameSerialized, prepend }) => {
return pathNameSerialized.startsWith(prepend('/app/metrics/hosts'));
},
id: 'category-anomaly_detection',
title: i18n.translate('xpack.serverlessObservability.nav.ml.anomaly_detection', {
defaultMessage: 'Anomaly detection',
}),
breadcrumbStatus: 'hidden',
children: [
{
link: 'ml:anomalyDetection',
title: i18n.translate(
'xpack.serverlessObservability.nav.ml.anomaly_detection.jobs',
{
defaultMessage: 'Jobs',
}
),
},
{
link: 'ml:anomalyExplorer',
},
{
link: 'ml:singleMetricViewer',
},
{
link: 'ml:settings',
},
{
link: 'ml:suppliedConfigurations',
},
],
},
{
link: 'metrics:settings',
sideNavStatus: 'hidden', // only to be considered in the breadcrumbs
id: 'category-data_frame analytics',
title: i18n.translate('xpack.serverlessObservability.nav.ml.data_frame_analytics', {
defaultMessage: 'Data frame analytics',
}),
breadcrumbStatus: 'hidden',
children: [
{
link: 'ml:dataFrameAnalytics',
title: i18n.translate(
'xpack.serverlessObservability.nav.ml.data_frame_analytics.jobs',
{
defaultMessage: 'Jobs',
}
),
},
{
link: 'ml:resultExplorer',
},
{
link: 'ml:analyticsMap',
},
],
},
{
link: 'metrics:assetDetails',
sideNavStatus: 'hidden', // only to be considered in the breadcrumbs
id: 'category-model_management',
title: i18n.translate('xpack.serverlessObservability.nav.ml.model_management', {
defaultMessage: 'Model management',
}),
breadcrumbStatus: 'hidden',
children: [
{
link: 'ml:nodesOverview',
title: i18n.translate(
'xpack.serverlessObservability.nav.ml.model_management.trainedModels',
{
defaultMessage: 'Trained models',
}
),
},
],
},
],
},
{
id: 'synthetics',
title: i18n.translate('xpack.serverlessObservability.nav.synthetics', {
defaultMessage: 'Synthetics',
}),
renderAs: 'accordion',
breadcrumbStatus: 'hidden',
children: [
{
title: i18n.translate('xpack.serverlessObservability.nav.synthetics.overviewItem', {
defaultMessage: 'Overview',
id: 'category-data_visualizer',
title: i18n.translate('xpack.serverlessObservability.nav.ml.data_visualizer', {
defaultMessage: 'Data visualizer',
}),
id: 'synthetics-overview',
link: 'synthetics:overview',
breadcrumbStatus: 'hidden',
children: [
{
link: 'ml:fileUpload',
title: i18n.translate(
'xpack.serverlessObservability.nav.ml.data_visualizer.file_data_visualizer',
{
defaultMessage: 'File data visualizer',
}
),
},
{
link: 'ml:indexDataVisualizer',
title: i18n.translate(
'xpack.serverlessObservability.nav.ml.data_visualizer.data_view_data_visualizer',
{
defaultMessage: 'Data view data visualizer',
}
),
},
{
link: 'ml:dataDrift',
title: i18n.translate(
'xpack.serverlessObservability.nav.ml.data_visualizer.data_drift',
{
defaultMessage: 'Data drift',
}
),
},
],
},
{
link: 'synthetics:certificates',
title: i18n.translate(
'xpack.serverlessObservability.nav.synthetics.certificatesItem',
{
defaultMessage: 'TLS Certificates',
}
),
id: 'synthetics-certificates',
id: 'category-aiops_labs',
title: i18n.translate('xpack.serverlessObservability.nav.ml.aiops_labs', {
defaultMessage: 'Aiops labs',
}),
breadcrumbStatus: 'hidden',
children: [
{
link: 'ml:logRateAnalysis',
title: i18n.translate(
'xpack.serverlessObservability.nav.ml.aiops_labs.log_rate_analysis',
{
defaultMessage: 'Log rate analysis',
}
),
},
{
link: 'ml:logPatternAnalysis',
title: i18n.translate(
'xpack.serverlessObservability.nav.ml.aiops_labs.log_pattern_analysis',
{
defaultMessage: 'Log pattern analysis',
}
),
},
{
link: 'ml:changePointDetections',
title: i18n.translate(
'xpack.serverlessObservability.nav.ml.aiops_labs.change_point_detection',
{
defaultMessage: 'Change point detection',
}
),
},
],
},
],
},
Expand Down
4 changes: 0 additions & 4 deletions x-pack/plugins/translations/translations/fr-FR.json
Original file line number Diff line number Diff line change
Expand Up @@ -43141,16 +43141,12 @@
"xpack.serverless.nav.manageOrgMembersTitle": "Gérer les membres de l'organisation",
"xpack.serverlessObservability.aiAssistantManagementDescription": "Gérez la base de connaissances et contrôlez le comportement de l'assistant, y compris le langage de réponse.",
"xpack.serverlessObservability.aiAssistantManagementTitle": "Paramètres de l'Assistant d'IA pour Observability",
"xpack.serverlessObservability.ml.changePointDetection": "Modifier la détection du point",
"xpack.serverlessObservability.ml.logRateAnalysis": "Analyse du taux de log",
"xpack.serverlessObservability.nav.applications": "Applications",
"xpack.serverlessObservability.nav.dashboards": "Tableaux de bord",
"xpack.serverlessObservability.nav.devTools": "Outils de développeur",
"xpack.serverlessObservability.nav.discover": "Discover",
"xpack.serverlessObservability.nav.getStarted": "Ajouter des données",
"xpack.serverlessObservability.nav.infrastructure": "Infrastructure",
"xpack.serverlessObservability.nav.ml.job.notifications": "Notifications de tâches",
"xpack.serverlessObservability.nav.ml.jobs": "Détection des anomalies",
"xpack.serverlessObservability.nav.mngt": "Gestion",
"xpack.serverlessObservability.nav.projectSettings": "Paramètres de projet",
"xpack.serverlessObservability.nav.slo": "SLO",
Expand Down
4 changes: 0 additions & 4 deletions x-pack/plugins/translations/translations/ja-JP.json
Original file line number Diff line number Diff line change
Expand Up @@ -43106,16 +43106,12 @@
"xpack.serverless.nav.manageOrgMembersTitle": "組織メンバーを管理",
"xpack.serverlessObservability.aiAssistantManagementDescription": "対応言語をはじめ、ナレッジベースを管理し、アシスタント動作を制御します。",
"xpack.serverlessObservability.aiAssistantManagementTitle": "AI Assistant for Observability設定",
"xpack.serverlessObservability.ml.changePointDetection": "変化点検出",
"xpack.serverlessObservability.ml.logRateAnalysis": "ログレート分析",
"xpack.serverlessObservability.nav.applications": "アプリケーション",
"xpack.serverlessObservability.nav.dashboards": "ダッシュボード",
"xpack.serverlessObservability.nav.devTools": "開発者ツール",
"xpack.serverlessObservability.nav.discover": "Discover",
"xpack.serverlessObservability.nav.getStarted": "データの追加",
"xpack.serverlessObservability.nav.infrastructure": "インフラストラクチャー",
"xpack.serverlessObservability.nav.ml.job.notifications": "ジョブ通知",
"xpack.serverlessObservability.nav.ml.jobs": "異常検知",
"xpack.serverlessObservability.nav.mngt": "管理",
"xpack.serverlessObservability.nav.projectSettings": "プロジェクト設定",
"xpack.serverlessObservability.nav.slo": "SLO",
Expand Down
Loading

0 comments on commit d46d04a

Please sign in to comment.