diff --git a/docs/management/advanced-options.asciidoc b/docs/management/advanced-options.asciidoc index 088eb31da4ef9..6264679a4a68b 100644 --- a/docs/management/advanced-options.asciidoc +++ b/docs/management/advanced-options.asciidoc @@ -449,9 +449,6 @@ When enabled, allows you to inspect {es} queries in API responses. [[observability-apm-enable-service-groups]]`observability:enableServiceGroups`:: preview:[] When enabled, allows users to create Service Groups from the APM Service Inventory page. -[[observability-apm-trace-explorer-tab]]`observability:apmTraceExplorerTab`:: -preview:[] Enable the APM Trace Explorer feature, that allows you to search and inspect traces with KQL or EQL. - [[observability-infrastructure-profiling-integration]]`observability:enableInfrastructureProfilingIntegration`:: preview:[] Enables the Profiling view in Host details within Infrastructure. diff --git a/src/platform/packages/shared/kbn-management/settings/setting_ids/index.ts b/src/platform/packages/shared/kbn-management/settings/setting_ids/index.ts index fcdf109981949..02a05fbcde51f 100644 --- a/src/platform/packages/shared/kbn-management/settings/setting_ids/index.ts +++ b/src/platform/packages/shared/kbn-management/settings/setting_ids/index.ts @@ -112,7 +112,6 @@ export const OBSERVABILITY_APM_LABS_BUTTON_ID = 'observability:apmLabsButton'; export const OBSERVABILITY_APM_PROGRESSIVE_LOADING_ID = 'observability:apmProgressiveLoading'; export const OBSERVABILITY_APM_SERVICE_GROUP_MAX_NUMBER_OF_SERVCIE_ID = 'observability:apmServiceGroupMaxNumberOfServices'; -export const OBSERVABILITY_APM_TRACE_EXPLORER_TAB_ID = 'observability:apmTraceExplorerTab'; export const OBSERVABILITY_ENABLE_COMPARISON_BY_DEFAULT_ID = 'observability:enableComparisonByDefault'; export const OBSERVABILITY_ENABLE_INFRASTRUCTURE_ASSET_CUSTOM_DASHBOARDS_ID = diff --git a/src/platform/packages/shared/serverless/settings/observability_project/index.ts b/src/platform/packages/shared/serverless/settings/observability_project/index.ts index b8bdce16da4a9..94b52e13ad155 100644 --- a/src/platform/packages/shared/serverless/settings/observability_project/index.ts +++ b/src/platform/packages/shared/serverless/settings/observability_project/index.ts @@ -20,7 +20,6 @@ export const OBSERVABILITY_PROJECT_SETTINGS = [ settings.OBSERVABILITY_APM_AWS_LAMBDA_PRICE_FACTOR_ID, settings.OBSERVABILITY_APM_AWS_LAMBDA_REQUEST_COST_PER_MILLION_ID, settings.OBSERVABILITY_APM_PROGRESSIVE_LOADING_ID, - settings.OBSERVABILITY_APM_TRACE_EXPLORER_TAB_ID, settings.OBSERVABILITY_ENABLE_INFRASTRUCTURE_ASSET_CUSTOM_DASHBOARDS_ID, settings.OBSERVABILITY_LOGS_EXPLORER_ALLOWED_DATA_VIEWS_ID, settings.OBSERVABILITY_APM_ENABLE_TABLE_SEARCH_BAR, diff --git a/src/platform/plugins/private/kibana_usage_collection/server/collectors/management/schema.ts b/src/platform/plugins/private/kibana_usage_collection/server/collectors/management/schema.ts index 36c323be38f34..ed336a97a3fc1 100644 --- a/src/platform/plugins/private/kibana_usage_collection/server/collectors/management/schema.ts +++ b/src/platform/plugins/private/kibana_usage_collection/server/collectors/management/schema.ts @@ -590,10 +590,6 @@ export const stackManagementSchema: MakeSchemaFrom = { type: 'long', _meta: { description: 'Non-default value of setting.' }, }, - 'observability:apmTraceExplorerTab': { - type: 'boolean', - _meta: { description: 'Non-default value of setting.' }, - }, 'observability:apmEnableProfilingIntegration': { type: 'boolean', _meta: { description: 'Non-default value of setting.' }, diff --git a/src/platform/plugins/private/kibana_usage_collection/server/collectors/management/types.ts b/src/platform/plugins/private/kibana_usage_collection/server/collectors/management/types.ts index 0448797c12aaf..6ee1b3efd2bf3 100644 --- a/src/platform/plugins/private/kibana_usage_collection/server/collectors/management/types.ts +++ b/src/platform/plugins/private/kibana_usage_collection/server/collectors/management/types.ts @@ -156,7 +156,6 @@ export interface UsageStats { 'observability:apmLabsButton': boolean; 'observability:apmProgressiveLoading': string; 'observability:apmServiceGroupMaxNumberOfServices': number; - 'observability:apmTraceExplorerTab': boolean; 'observability:apmEnableProfilingIntegration': boolean; 'observability:entityCentricExperience': boolean; 'observability:profilingShowErrorFrames': boolean; diff --git a/src/platform/plugins/shared/telemetry/schema/oss_platform.json b/src/platform/plugins/shared/telemetry/schema/oss_platform.json index f9596b700b4ca..66124bd8267fe 100644 --- a/src/platform/plugins/shared/telemetry/schema/oss_platform.json +++ b/src/platform/plugins/shared/telemetry/schema/oss_platform.json @@ -11436,12 +11436,6 @@ "description": "Non-default value of setting." } }, - "observability:apmTraceExplorerTab": { - "type": "boolean", - "_meta": { - "description": "Non-default value of setting." - } - }, "observability:apmEnableProfilingIntegration": { "type": "boolean", "_meta": { diff --git a/x-pack/platform/plugins/private/translations/translations/fr-FR.json b/x-pack/platform/plugins/private/translations/translations/fr-FR.json index cbd4960db8ec3..db763cbc64d33 100644 --- a/x-pack/platform/plugins/private/translations/translations/fr-FR.json +++ b/x-pack/platform/plugins/private/translations/translations/fr-FR.json @@ -11329,7 +11329,6 @@ "xpack.apm.errorSampleDetails.serviceEnvironment": "Environnement", "xpack.apm.errorSampleDetails.serviceVersion": "Version du service", "xpack.apm.errorSampleDetails.viewOccurrencesInDiscoverButtonLabel": "Visualiser {occurrencesCount} {occurrencesCount, plural, one {l'occurrence} other {les occurrences}} dans Discover", - "xpack.apm.errorSampleDetails.viewOccurrencesInTraceExplorer": "Explorer les traces ayant cette erreur", "xpack.apm.errorsOverview.treemap.title": "{currentTreemap} le(s) plus affecté(s)", "xpack.apm.errorsTable.columnLastSeen": "Vu en dernier", "xpack.apm.errorsTable.columnName": "Nom", @@ -11988,7 +11987,6 @@ "xpack.apm.serviceMap.timeoutPromptTitle": "Expiration de la carte de services", "xpack.apm.serviceMap.typePopoverStat": "Type", "xpack.apm.serviceMap.viewFullMap": "Afficher la carte de services entière", - "xpack.apm.serviceMap.viewInTraceExplorer": "Explorer les traces", "xpack.apm.serviceMap.zoomIn": "Zoom avant", "xpack.apm.serviceMap.zoomOut": "Zoom arrière", "xpack.apm.serviceMetrics.loading": "Chargement des indicateurs", @@ -12387,8 +12385,6 @@ "xpack.apm.traceExplorer.criticalPathTab": "Chemin critique agrégé", "xpack.apm.traceExplorer.waterfallTab": "Cascade", "xpack.apm.traceLink.fetchingTraceLabel": "Récupération des traces...", - "xpack.apm.traceOverview.topTracesTab": "Premières traces", - "xpack.apm.traceOverview.traceExplorerTab": "Explorer", "xpack.apm.traceSearchBox.refreshButton": "Recherche", "xpack.apm.traceSearchBox.traceSearchTypeEql": "EQL", "xpack.apm.traceSearchBox.traceSearchTypeKql": "KQL", @@ -34636,8 +34632,6 @@ "xpack.observability.apmProgressiveLoadingQualityLow": "Taux d'échantillonnage bas (plus rapide, moins précis)", "xpack.observability.apmProgressiveLoadingQualityMedium": "Taux d'échantillonnage moyen", "xpack.observability.apmProgressiveLoadingQualityOff": "Désactivé", - "xpack.observability.apmTraceExplorerTab": "Explorateur de traces APM", - "xpack.observability.apmTraceExplorerTabDescription": "{technicalPreviewLabel} Activer la fonctionnalité Explorateur de traces APM, qui vous permet de rechercher et d'inspecter les traces avec KQL ou EQL. {link}", "xpack.observability.app.starterPrompts.explainRules.prompt": "Pouvez-vous expliquer les types de règles disponibles ?", "xpack.observability.app.starterPrompts.explainRules.title": "Expliquer", "xpack.observability.applyTo": "Appliquer à", @@ -35114,7 +35108,6 @@ "xpack.observability.uiSettings.betaLabel": "bêta", "xpack.observability.uiSettings.technicalPreviewLabel": "version d'évaluation technique", "xpack.observability.uiSettings.throttlingDocsLinkText": "lisez la notification ici.", - "xpack.observability.uiSettings.traceExplorerDocsLinkText": "En savoir plus.", "xpack.observability.update.annotation": "Un problème est survenu lors de la mise à jour de l'annotation {message}", "xpack.observability.ux.coreVitals.average": "une moyenne", "xpack.observability.ux.coreVitals.averageMessage": "et inférieur à {bad}", diff --git a/x-pack/platform/plugins/private/translations/translations/ja-JP.json b/x-pack/platform/plugins/private/translations/translations/ja-JP.json index fd94376d260dd..9577c85de8a86 100644 --- a/x-pack/platform/plugins/private/translations/translations/ja-JP.json +++ b/x-pack/platform/plugins/private/translations/translations/ja-JP.json @@ -11312,7 +11312,6 @@ "xpack.apm.errorSampleDetails.serviceEnvironment": "環境", "xpack.apm.errorSampleDetails.serviceVersion": "サービスバージョン", "xpack.apm.errorSampleDetails.viewOccurrencesInDiscoverButtonLabel": "Discoverで{occurrencesCount} {occurrencesCount, plural, other {件の発生}}を表示", - "xpack.apm.errorSampleDetails.viewOccurrencesInTraceExplorer": "このエラーのトレースを調査", "xpack.apm.errorsOverview.treemap.title": "最も影響を受ける{currentTreemap}", "xpack.apm.errorsTable.columnLastSeen": "前回の認識", "xpack.apm.errorsTable.columnName": "名前", @@ -11971,7 +11970,6 @@ "xpack.apm.serviceMap.timeoutPromptTitle": "サービスマップタイムアウト", "xpack.apm.serviceMap.typePopoverStat": "型", "xpack.apm.serviceMap.viewFullMap": "サービスの全体マップを表示", - "xpack.apm.serviceMap.viewInTraceExplorer": "トレースの調査", "xpack.apm.serviceMap.zoomIn": "ズームイン", "xpack.apm.serviceMap.zoomOut": "ズームアウト", "xpack.apm.serviceMetrics.loading": "メトリックを読み込んでいます", @@ -12371,8 +12369,6 @@ "xpack.apm.traceExplorer.criticalPathTab": "集約されたクリティカルパス", "xpack.apm.traceExplorer.waterfallTab": "ウォーターフォール", "xpack.apm.traceLink.fetchingTraceLabel": "トレースを取得中...", - "xpack.apm.traceOverview.topTracesTab": "上位のトレース", - "xpack.apm.traceOverview.traceExplorerTab": "エクスプローラー", "xpack.apm.traceSearchBox.refreshButton": "検索", "xpack.apm.traceSearchBox.traceSearchTypeEql": "EQL", "xpack.apm.traceSearchBox.traceSearchTypeKql": "KQL", @@ -34608,8 +34604,6 @@ "xpack.observability.apmProgressiveLoadingQualityLow": "低サンプリングレート(最速、最も精度が低い)", "xpack.observability.apmProgressiveLoadingQualityMedium": "中サンプリングレート", "xpack.observability.apmProgressiveLoadingQualityOff": "オフ", - "xpack.observability.apmTraceExplorerTab": "APMトレースエクスプローラー", - "xpack.observability.apmTraceExplorerTabDescription": "{technicalPreviewLabel} APMトレースエクスプローラー機能を有効にし、KQLまたはEQLでトレースを検索、検査できます。{link}", "xpack.observability.app.starterPrompts.explainRules.prompt": "使用可能なルールタイプを説明できますか?", "xpack.observability.app.starterPrompts.explainRules.title": "説明", "xpack.observability.applyTo": "適用", @@ -35088,7 +35082,6 @@ "xpack.observability.uiSettings.betaLabel": "ベータ", "xpack.observability.uiSettings.technicalPreviewLabel": "テクニカルプレビュー", "xpack.observability.uiSettings.throttlingDocsLinkText": "こちらで通知をお読みください。", - "xpack.observability.uiSettings.traceExplorerDocsLinkText": "詳細情報", "xpack.observability.update.annotation": "注釈の更新中に問題が発生しました。{message}", "xpack.observability.ux.coreVitals.average": "平均", "xpack.observability.ux.coreVitals.averageMessage": "{bad}未満", diff --git a/x-pack/platform/plugins/private/translations/translations/zh-CN.json b/x-pack/platform/plugins/private/translations/translations/zh-CN.json index 86a9503ab671d..99540815436b2 100644 --- a/x-pack/platform/plugins/private/translations/translations/zh-CN.json +++ b/x-pack/platform/plugins/private/translations/translations/zh-CN.json @@ -11338,7 +11338,6 @@ "xpack.apm.errorSampleDetails.serviceEnvironment": "环境", "xpack.apm.errorSampleDetails.serviceVersion": "服务版本", "xpack.apm.errorSampleDetails.viewOccurrencesInDiscoverButtonLabel": "在 Discover 中查看 {occurrencesCount} 次{occurrencesCount, plural, other {发生}}", - "xpack.apm.errorSampleDetails.viewOccurrencesInTraceExplorer": "浏览包含此错误的跟踪", "xpack.apm.errorsOverview.treemap.title": "影响最大的 {currentTreemap}", "xpack.apm.errorsTable.columnLastSeen": "最后看到时间", "xpack.apm.errorsTable.columnName": "名称", @@ -11997,7 +11996,6 @@ "xpack.apm.serviceMap.timeoutPromptTitle": "服务地图超时", "xpack.apm.serviceMap.typePopoverStat": "类型", "xpack.apm.serviceMap.viewFullMap": "查看完整的服务地图", - "xpack.apm.serviceMap.viewInTraceExplorer": "浏览跟踪", "xpack.apm.serviceMap.zoomIn": "放大", "xpack.apm.serviceMap.zoomOut": "缩小", "xpack.apm.serviceMetrics.loading": "正在加载指标", @@ -12398,8 +12396,6 @@ "xpack.apm.traceExplorer.criticalPathTab": "已聚合关键路径", "xpack.apm.traceExplorer.waterfallTab": "瀑布", "xpack.apm.traceLink.fetchingTraceLabel": "正在提取追溯信息......", - "xpack.apm.traceOverview.topTracesTab": "排名靠前跟踪", - "xpack.apm.traceOverview.traceExplorerTab": "浏览器", "xpack.apm.traceSearchBox.refreshButton": "搜索", "xpack.apm.traceSearchBox.traceSearchTypeEql": "EQL", "xpack.apm.traceSearchBox.traceSearchTypeKql": "KQL", @@ -34673,8 +34669,6 @@ "xpack.observability.apmProgressiveLoadingQualityLow": "低采样速率(最快,最不准确)", "xpack.observability.apmProgressiveLoadingQualityMedium": "中等采样速率", "xpack.observability.apmProgressiveLoadingQualityOff": "关闭", - "xpack.observability.apmTraceExplorerTab": "APM Trace Explorer", - "xpack.observability.apmTraceExplorerTabDescription": "{technicalPreviewLabel} 启用 APM Trace Explorer 功能,它允许您通过 KQL 或 EQL 搜索和检查跟踪。{link}", "xpack.observability.app.starterPrompts.explainRules.prompt": "是否可以解释可用的规则类型?", "xpack.observability.app.starterPrompts.explainRules.title": "解释", "xpack.observability.applyTo": "应用于", @@ -35154,7 +35148,6 @@ "xpack.observability.uiSettings.betaLabel": "公测版", "xpack.observability.uiSettings.technicalPreviewLabel": "技术预览", "xpack.observability.uiSettings.throttlingDocsLinkText": "在此处阅读通知。", - "xpack.observability.uiSettings.traceExplorerDocsLinkText": "了解详情。", "xpack.observability.update.annotation": "更新标注 {message} 时出现问题", "xpack.observability.ux.coreVitals.average": "平均值", "xpack.observability.ux.coreVitals.averageMessage": "且小于 {bad}", diff --git a/x-pack/solutions/observability/plugins/apm/ftr_e2e/cypress/e2e/trace_explorer/trace_explorer.cy.ts b/x-pack/solutions/observability/plugins/apm/ftr_e2e/cypress/e2e/trace_explorer/trace_explorer.cy.ts index 7130bdfd0d339..5b76a910a1719 100644 --- a/x-pack/solutions/observability/plugins/apm/ftr_e2e/cypress/e2e/trace_explorer/trace_explorer.cy.ts +++ b/x-pack/solutions/observability/plugins/apm/ftr_e2e/cypress/e2e/trace_explorer/trace_explorer.cy.ts @@ -29,10 +29,6 @@ describe('Trace Explorer', () => { to: new Date(end).getTime(), }) ); - - cy.updateAdvancedSettings({ - 'observability:apmTraceExplorerTab': true, - }); }); after(() => { diff --git a/x-pack/solutions/observability/plugins/apm/public/components/app/error_group_details/error_sampler/error_sample_detail.tsx b/x-pack/solutions/observability/plugins/apm/public/components/app/error_group_details/error_sampler/error_sample_detail.tsx index eecb5487b2e67..792578f0cf6b3 100644 --- a/x-pack/solutions/observability/plugins/apm/public/components/app/error_group_details/error_sampler/error_sample_detail.tsx +++ b/x-pack/solutions/observability/plugins/apm/public/components/app/error_group_details/error_sampler/error_sample_detail.tsx @@ -11,7 +11,6 @@ import { EuiFlexGroup, EuiFlexItem, EuiIcon, - EuiLink, EuiPagination, EuiPanel, EuiSkeletonText, @@ -31,8 +30,6 @@ import { useHistory } from 'react-router-dom'; import useAsync from 'react-use/lib/useAsync'; import { ExceptionStacktrace, PlaintextStacktrace, Stacktrace } from '@kbn/event-stacktrace'; import type { AT_TIMESTAMP } from '../../../../../common/es_fields/apm'; -import { ERROR_GROUP_ID } from '../../../../../common/es_fields/apm'; -import { TraceSearchType } from '../../../../../common/trace_explorer'; import type { APMError } from '../../../../../typings/es_schemas/ui/apm_error'; import { useApmPluginContext } from '../../../../context/apm_plugin/use_apm_plugin_context'; import { useLegacyUrlParams } from '../../../../context/url_params_context/use_url_params'; @@ -40,7 +37,6 @@ import { useAnyOfApmParams } from '../../../../hooks/use_apm_params'; import { useApmRouter } from '../../../../hooks/use_apm_router'; import type { FETCH_STATUS } from '../../../../hooks/use_fetcher'; import { isPending, isSuccess } from '../../../../hooks/use_fetcher'; -import { useTraceExplorerEnabledSetting } from '../../../../hooks/use_trace_explorer_enabled_setting'; import type { APIReturnType } from '../../../../services/rest/create_call_apm_api'; import { TransactionDetailLink } from '../../../shared/links/apm/transaction_detail_link'; import { DiscoverErrorLink } from '../../../shared/links/discover_links/discover_error_link'; @@ -50,7 +46,6 @@ import { Summary } from '../../../shared/summary'; import { HttpInfoSummaryItem } from '../../../shared/summary/http_info_summary_item'; import { UserAgentSummaryItem } from '../../../shared/summary/user_agent_summary_item'; import { TimestampTooltip } from '../../../shared/timestamp_tooltip'; -import { TransactionTab } from '../../transaction_details/waterfall_with_summary/transaction_tabs'; import type { ErrorTab } from './error_tabs'; import { ErrorTabKey, getTabs } from './error_tabs'; import { ErrorUiActionsContextMenu } from './error_ui_actions_context_menu'; @@ -97,12 +92,7 @@ export function ErrorSampleDetails({ const router = useApmRouter(); - const isTraceExplorerEnabled = useTraceExplorerEnabledSetting(); - - const { - path: { groupId }, - query, - } = useAnyOfApmParams( + const { query } = useAnyOfApmParams( '/services/{serviceName}/errors/{groupId}', '/mobile-services/{serviceName}/errors-and-crashes/errors/{groupId}', '/mobile-services/{serviceName}/errors-and-crashes/crashes/{groupId}' @@ -181,19 +171,6 @@ export function ErrorSampleDetails({ const serviceVersion = error.service.version; const isUnhandled = error.error.exception?.[0]?.handled === false; - const traceExplorerLink = router.link('/traces/explorer/waterfall', { - query: { - ...query, - showCriticalPath: false, - query: `${ERROR_GROUP_ID}:${groupId}`, - type: TraceSearchType.kql, - traceId: '', - transactionId: '', - waterfallItemId: '', - detailTab: TransactionTab.timeline, - }, - }); - return ( @@ -216,22 +193,6 @@ export function ErrorSampleDetails({ /> )} - {isTraceExplorerEnabled && ( - - - - - - - - {i18n.translate('xpack.apm.errorSampleDetails.viewOccurrencesInTraceExplorer', { - defaultMessage: 'Explore traces with this error', - })} - - - - - )} {externalContextMenuItems.value?.length ? ( ) : undefined} diff --git a/x-pack/solutions/observability/plugins/apm/public/components/app/service_map/cytoscape.tsx b/x-pack/solutions/observability/plugins/apm/public/components/app/service_map/cytoscape.tsx index 4995d1b7d0760..e780f3d6bdb3d 100644 --- a/x-pack/solutions/observability/plugins/apm/public/components/app/service_map/cytoscape.tsx +++ b/x-pack/solutions/observability/plugins/apm/public/components/app/service_map/cytoscape.tsx @@ -11,7 +11,6 @@ import { isEqual } from 'lodash'; import type { CSSProperties, ReactNode } from 'react'; import React, { createContext, memo, useEffect, useRef, useState } from 'react'; import { useTheme } from '../../../hooks/use_theme'; -import { useTraceExplorerEnabledSetting } from '../../../hooks/use_trace_explorer_enabled_setting'; import { getCytoscapeOptions } from './cytoscape_options'; import { useCytoscapeEventHandlers } from './use_cytoscape_event_handlers'; @@ -51,9 +50,8 @@ function useCytoscape(options: cytoscape.CytoscapeOptions) { function CytoscapeComponent({ children, elements, height, serviceName, style }: CytoscapeProps) { const theme = useTheme(); - const isTraceExplorerEnabled = useTraceExplorerEnabledSetting(); const [ref, cy] = useCytoscape({ - ...getCytoscapeOptions(theme, isTraceExplorerEnabled), + ...getCytoscapeOptions(theme), elements, }); useCytoscapeEventHandlers({ cy, serviceName, theme }); diff --git a/x-pack/solutions/observability/plugins/apm/public/components/app/service_map/cytoscape_options.ts b/x-pack/solutions/observability/plugins/apm/public/components/app/service_map/cytoscape_options.ts index ef504e1c1788e..b7e834960d5cb 100644 --- a/x-pack/solutions/observability/plugins/apm/public/components/app/service_map/cytoscape_options.ts +++ b/x-pack/solutions/observability/plugins/apm/public/components/app/service_map/cytoscape_options.ts @@ -96,7 +96,7 @@ function isService(el: cytoscape.NodeSingular) { return el.data(SERVICE_NAME) !== undefined; } -const getStyle = (theme: EuiTheme, isTraceExplorerEnabled: boolean): cytoscape.StylesheetJson => { +const getStyle = (theme: EuiTheme): cytoscape.StylesheetJson => { const lineColor = theme.eui.euiColorMediumShade; return [ { @@ -160,7 +160,6 @@ const getStyle = (theme: EuiTheme, isTraceExplorerEnabled: boolean): cytoscape.S 'target-arrow-shape': isIE11 ? 'none' : 'triangle', // The DefinitelyTyped definitions don't specify this property since it's // fairly new. - // // @ts-expect-error 'target-distance-from-node': isIE11 ? undefined : theme.eui.euiSizeXS, width: 1, @@ -192,20 +191,6 @@ const getStyle = (theme: EuiTheme, isTraceExplorerEnabled: boolean): cytoscape.S 'target-arrow-color': theme.eui.euiColorDarkShade, }, }, - ...(isTraceExplorerEnabled - ? [ - { - selector: 'edge.hover', - style: { - width: 4, - 'z-index': zIndexEdgeHover, - 'line-color': theme.eui.euiColorDarkShade, - 'source-arrow-color': theme.eui.euiColorDarkShade, - 'target-arrow-color': theme.eui.euiColorDarkShade, - }, - }, - ] - : []), { selector: 'node.hover', style: { @@ -247,12 +232,9 @@ ${theme.eui.euiColorLightShade}`, marginTop: 0, }); -export const getCytoscapeOptions = ( - theme: EuiTheme, - isTraceExplorerEnabled: boolean -): cytoscape.CytoscapeOptions => ({ +export const getCytoscapeOptions = (theme: EuiTheme): cytoscape.CytoscapeOptions => ({ boxSelectionEnabled: false, maxZoom: 3, minZoom: 0.2, - style: getStyle(theme, isTraceExplorerEnabled), + style: getStyle(theme), }); diff --git a/x-pack/solutions/observability/plugins/apm/public/components/app/service_map/popover/edge_contents.tsx b/x-pack/solutions/observability/plugins/apm/public/components/app/service_map/popover/edge_contents.tsx deleted file mode 100644 index 5a5cf901e622e..0000000000000 --- a/x-pack/solutions/observability/plugins/apm/public/components/app/service_map/popover/edge_contents.tsx +++ /dev/null @@ -1,87 +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 - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { EuiButton, EuiFlexItem } from '@elastic/eui'; -import { i18n } from '@kbn/i18n'; -import { METRIC_TYPE } from '@kbn/analytics'; -import React from 'react'; -import { useUiTracker } from '@kbn/observability-shared-plugin/public'; -import type { EdgeDataDefinition } from 'cytoscape'; -import type { ContentsProps } from '.'; -import { useAnyOfApmParams } from '../../../../hooks/use_apm_params'; -import { useApmRouter } from '../../../../hooks/use_apm_router'; -import { TraceSearchType } from '../../../../../common/trace_explorer'; -import { TransactionTab } from '../../transaction_details/waterfall_with_summary/transaction_tabs'; -import { - SERVICE_NAME, - SPAN_DESTINATION_SERVICE_RESOURCE, -} from '../../../../../common/es_fields/apm'; - -export function EdgeContents({ elementData }: ContentsProps) { - const edgeData = elementData as EdgeDataDefinition; - - const { query } = useAnyOfApmParams( - '/service-map', - '/services/{serviceName}/service-map', - '/mobile-services/{serviceName}/service-map' - ); - - const apmRouter = useApmRouter(); - - const sourceService = edgeData.sourceData['service.name']; - - const trackEvent = useUiTracker(); - - let traceQuery: string; - - if (SERVICE_NAME in edgeData.targetData) { - traceQuery = - `sequence by trace.id\n` + - ` [ span where service.name == "${sourceService}" and span.destination.service.resource != null ] by span.id\n` + - ` [ transaction where service.name == "${edgeData.targetData[SERVICE_NAME]}" ] by parent.id`; - } else { - traceQuery = - `sequence by trace.id\n` + - ` [ transaction where service.name == "${sourceService}" ]\n` + - ` [ span where service.name == "${sourceService}" and span.destination.service.resource == "${edgeData.targetData[SPAN_DESTINATION_SERVICE_RESOURCE]}" ]`; - } - - const url = apmRouter.link('/traces/explorer/waterfall', { - query: { - ...query, - type: TraceSearchType.eql, - query: traceQuery, - waterfallItemId: '', - traceId: '', - transactionId: '', - detailTab: TransactionTab.timeline, - showCriticalPath: false, - }, - }); - - return ( - - {/* eslint-disable-next-line @elastic/eui/href-or-on-click*/} - { - trackEvent({ - app: 'apm', - metricType: METRIC_TYPE.CLICK, - metric: 'service_map_to_trace_explorer', - }); - }} - > - {i18n.translate('xpack.apm.serviceMap.viewInTraceExplorer', { - defaultMessage: 'Explore traces', - })} - - - ); -} diff --git a/x-pack/solutions/observability/plugins/apm/public/components/app/service_map/popover/index.tsx b/x-pack/solutions/observability/plugins/apm/public/components/app/service_map/popover/index.tsx index 60c43721835d5..9e8f976629ba9 100644 --- a/x-pack/solutions/observability/plugins/apm/public/components/app/service_map/popover/index.tsx +++ b/x-pack/solutions/observability/plugins/apm/public/components/app/service_map/popover/index.tsx @@ -21,18 +21,15 @@ import { i18n } from '@kbn/i18n'; import { SERVICE_NAME, SPAN_TYPE } from '../../../../../common/es_fields/apm'; import type { Environment } from '../../../../../common/environment_rt'; import { useTheme } from '../../../../hooks/use_theme'; -import { useTraceExplorerEnabledSetting } from '../../../../hooks/use_trace_explorer_enabled_setting'; import { CytoscapeContext } from '../cytoscape'; import { getAnimationOptions, popoverWidth } from '../cytoscape_options'; import { DependencyContents } from './dependency_contents'; -import { EdgeContents } from './edge_contents'; import { ExternalsListContents } from './externals_list_contents'; import { ResourceContents } from './resource_contents'; import { ServiceContents } from './service_contents'; function getContentsComponent( - selectedElementData: cytoscape.NodeDataDefinition | cytoscape.EdgeDataDefinition, - isTraceExplorerEnabled: boolean + selectedElementData: cytoscape.NodeDataDefinition | cytoscape.EdgeDataDefinition ) { if ( selectedElementData.groupedConnections && @@ -47,10 +44,6 @@ function getContentsComponent( return ResourceContents; } - if (isTraceExplorerEnabled && selectedElementData.sourceData && selectedElementData.targetData) { - return EdgeContents; - } - if (selectedElementData.label) { return DependencyContents; } @@ -90,8 +83,6 @@ export function Popover({ focusedServiceName, environment, kuery, start, end }: setSelectedElement(undefined); }, [cy, setSelectedElement]); - const isTraceExplorerEnabled = useTraceExplorerEnabledSetting(); - const renderedHeight = selectedElement?.renderedHeight() ?? 0; const renderedWidth = selectedElement?.renderedWidth() ?? 0; const box = selectedElement?.renderedBoundingBox({}); @@ -128,10 +119,6 @@ export function Popover({ focusedServiceName, environment, kuery, start, end }: cy.on('unselect', 'node', deselect); cy.on('viewport', deselect); cy.on('drag', 'node', deselect); - if (isTraceExplorerEnabled) { - cy.on('select', 'edge', selectHandler); - cy.on('unselect', 'edge', deselect); - } } return () => { @@ -144,7 +131,7 @@ export function Popover({ focusedServiceName, environment, kuery, start, end }: cy.removeListener('unselect', 'edge', deselect); } }; - }, [cy, deselect, isTraceExplorerEnabled]); + }, [cy, deselect]); // Handle positioning of popover. This makes it so the popover positions // itself correctly and the arrows are always pointing to where they should. @@ -173,7 +160,7 @@ export function Popover({ focusedServiceName, environment, kuery, start, end }: ? centerSelectedNode : (_event: MouseEvent) => deselect(); - const ContentsComponent = getContentsComponent(selectedElementData, isTraceExplorerEnabled); + const ContentsComponent = getContentsComponent(selectedElementData); const isOpen = !!selectedElement && !!ContentsComponent; diff --git a/x-pack/solutions/observability/plugins/apm/public/components/app/trace_overview/index.tsx b/x-pack/solutions/observability/plugins/apm/public/components/app/trace_overview/index.tsx index 40b079b684498..1b3d2075b0f95 100644 --- a/x-pack/solutions/observability/plugins/apm/public/components/app/trace_overview/index.tsx +++ b/x-pack/solutions/observability/plugins/apm/public/components/app/trace_overview/index.tsx @@ -4,97 +4,16 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import React from 'react'; -import { TraceSearchType } from '../../../../common/trace_explorer'; -import { useApmParams } from '../../../hooks/use_apm_params'; -import { useApmRouter } from '../../../hooks/use_apm_router'; -import { useApmRoutePath } from '../../../hooks/use_apm_route_path'; -import { useTraceExplorerEnabledSetting } from '../../../hooks/use_trace_explorer_enabled_setting'; import { ApmMainTemplate } from '../../routing/templates/apm_main_template'; -import { TechnicalPreviewBadge } from '../../shared/technical_preview_badge'; import { Breadcrumb } from '../breadcrumb'; -import { TransactionTab } from '../transaction_details/waterfall_with_summary/transaction_tabs'; - -type Tab = Required< - Required>['pageHeader'] ->['tabs'][number]; export function TraceOverview({ children }: { children: React.ReactElement }) { - const isTraceExplorerEnabled = useTraceExplorerEnabledSetting(); - - const router = useApmRouter(); - - const { query } = useApmParams('/traces'); - - const routePath = useApmRoutePath(); - - const topTracesLink = router.link('/traces', { - query: { - comparisonEnabled: query.comparisonEnabled, - environment: query.environment, - kuery: query.kuery, - rangeFrom: query.rangeFrom, - rangeTo: query.rangeTo, - offset: query.offset, - refreshInterval: query.refreshInterval, - refreshPaused: query.refreshPaused, - }, - }); - const title = i18n.translate('xpack.apm.views.traceOverview.title', { defaultMessage: 'Traces', }); - const explorerLink = router.link('/traces/explorer/waterfall', { - query: { - comparisonEnabled: query.comparisonEnabled, - environment: query.environment, - kuery: query.kuery, - rangeFrom: query.rangeFrom, - rangeTo: query.rangeTo, - offset: query.offset, - refreshInterval: query.refreshInterval, - refreshPaused: query.refreshPaused, - query: '', - type: TraceSearchType.kql, - waterfallItemId: '', - traceId: '', - transactionId: '', - detailTab: TransactionTab.timeline, - showCriticalPath: false, - }, - }); - - const tabs: Tab[] = isTraceExplorerEnabled - ? [ - { - href: topTracesLink, - label: i18n.translate('xpack.apm.traceOverview.topTracesTab', { - defaultMessage: 'Top traces', - }), - isSelected: routePath === '/traces', - }, - { - href: explorerLink, - label: ( - - - {i18n.translate('xpack.apm.traceOverview.traceExplorerTab', { - defaultMessage: 'Explorer', - })} - - - - - - ), - isSelected: routePath.startsWith('/traces/explorer'), - }, - ] - : []; - return ( {children} diff --git a/x-pack/solutions/observability/plugins/apm/public/hooks/use_trace_explorer_enabled_setting.ts b/x-pack/solutions/observability/plugins/apm/public/hooks/use_trace_explorer_enabled_setting.ts deleted file mode 100644 index 39c59e37f4d5b..0000000000000 --- a/x-pack/solutions/observability/plugins/apm/public/hooks/use_trace_explorer_enabled_setting.ts +++ /dev/null @@ -1,15 +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 - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { apmTraceExplorerTab } from '@kbn/observability-plugin/common'; -import { useApmPluginContext } from '../context/apm_plugin/use_apm_plugin_context'; - -export function useTraceExplorerEnabledSetting() { - const { core } = useApmPluginContext(); - - return core.uiSettings.get(apmTraceExplorerTab, true); -} diff --git a/x-pack/solutions/observability/plugins/observability/common/index.ts b/x-pack/solutions/observability/plugins/observability/common/index.ts index 5c11dfea3b506..2246f8424aaa7 100644 --- a/x-pack/solutions/observability/plugins/observability/common/index.ts +++ b/x-pack/solutions/observability/plugins/observability/common/index.ts @@ -27,7 +27,6 @@ export { defaultApmServiceEnvironment, apmProgressiveLoading, apmServiceGroupMaxNumberOfServices, - apmTraceExplorerTab, apmLabsButton, enableInfrastructureProfilingIntegration, enableInfrastructureAssetCustomDashboards, diff --git a/x-pack/solutions/observability/plugins/observability/common/ui_settings_keys.ts b/x-pack/solutions/observability/plugins/observability/common/ui_settings_keys.ts index 7738a4a24ca2f..b8cc4c133aec5 100644 --- a/x-pack/solutions/observability/plugins/observability/common/ui_settings_keys.ts +++ b/x-pack/solutions/observability/plugins/observability/common/ui_settings_keys.ts @@ -12,7 +12,6 @@ export const defaultApmServiceEnvironment = 'observability:apmDefaultServiceEnvi export const apmProgressiveLoading = 'observability:apmProgressiveLoading'; export const apmServiceGroupMaxNumberOfServices = 'observability:apmServiceGroupMaxNumberOfServices'; -export const apmTraceExplorerTab = 'observability:apmTraceExplorerTab'; export const apmLabsButton = 'observability:apmLabsButton'; export const enableInfrastructureProfilingIntegration = 'observability:enableInfrastructureProfilingIntegration'; diff --git a/x-pack/solutions/observability/plugins/observability/server/ui_settings.ts b/x-pack/solutions/observability/plugins/observability/server/ui_settings.ts index 337dff30d3072..1ccc372bd85be 100644 --- a/x-pack/solutions/observability/plugins/observability/server/ui_settings.ts +++ b/x-pack/solutions/observability/plugins/observability/server/ui_settings.ts @@ -16,7 +16,6 @@ import { defaultApmServiceEnvironment, apmProgressiveLoading, apmServiceGroupMaxNumberOfServices, - apmTraceExplorerTab, apmLabsButton, apmEnableTableSearchBar, entityCentricExperience, @@ -174,28 +173,6 @@ export const uiSettings: Record = { schema: schema.number({ min: 1 }), solution: 'oblt', }, - [apmTraceExplorerTab]: { - category: [observabilityFeatureId], - name: i18n.translate('xpack.observability.apmTraceExplorerTab', { - defaultMessage: 'APM Trace Explorer', - }), - description: i18n.translate('xpack.observability.apmTraceExplorerTabDescription', { - defaultMessage: - '{technicalPreviewLabel} Enable the APM Trace Explorer feature, that allows you to search and inspect traces with KQL or EQL. {link}', - values: { - technicalPreviewLabel: `[${technicalPreviewLabel}]`, - link: traceExplorerDocsLink({ - href: 'https://www.elastic.co/guide/en/kibana/master/traces.html#trace-explorer', - }), - }, - }), - schema: schema.boolean(), - value: true, - requiresPageReload: true, - type: 'boolean', - showInLabs: true, - solution: 'oblt', - }, [apmLabsButton]: { category: [observabilityFeatureId], name: i18n.translate('xpack.observability.apmLabs', { @@ -565,10 +542,3 @@ function throttlingDocsLink({ href }: { href: string }) { { defaultMessage: 'read notice here.' } )}`; } - -function traceExplorerDocsLink({ href }: { href: string }) { - return `${i18n.translate( - 'xpack.observability.uiSettings.traceExplorerDocsLinkText', - { defaultMessage: 'Learn more.' } - )}`; -}