diff --git a/docs/reference/advanced-settings.md b/docs/reference/advanced-settings.md index 16064fa50d636..122d3a4bc8557 100644 --- a/docs/reference/advanced-settings.md +++ b/docs/reference/advanced-settings.md @@ -351,9 +351,6 @@ $$$observability-enable-inspect-es-queries$$$`observability:enableInspectEsQueri $$$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 d3f11b2bb71a7..1f2d4b2bbd947 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 @@ -111,7 +111,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 6873de31b5283..fa657814901a4 100644 --- a/src/platform/packages/shared/serverless/settings/observability_project/index.ts +++ b/src/platform/packages/shared/serverless/settings/observability_project/index.ts @@ -21,7 +21,6 @@ export const OBSERVABILITY_PROJECT_SETTINGS = [ settings.OBSERVABILITY_APM_AWS_LAMBDA_REQUEST_COST_PER_MILLION_ID, settings.OBSERVABILITY_APM_ENABLE_CONTINUOUS_ROLLUPS_ID, settings.OBSERVABILITY_APM_PROGRESSIVE_LOADING_ID, - settings.OBSERVABILITY_APM_TRACE_EXPLORER_TAB_ID, settings.OBSERVABILITY_ENABLE_INFRASTRUCTURE_ASSET_CUSTOM_DASHBOARDS_ID, settings.OBSERVABILITY_APM_ENABLE_TABLE_SEARCH_BAR, settings.OBSERVABILITY_APM_ENABLE_SERVICE_INVENTORY_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 040fa94770418..1271ef1953cb6 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 @@ -579,10 +579,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 703ef3cf08447..328eedb699f23 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 @@ -154,7 +154,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 1ea2e1afbce49..39f9cc1375030 100644 --- a/src/platform/plugins/shared/telemetry/schema/oss_platform.json +++ b/src/platform/plugins/shared/telemetry/schema/oss_platform.json @@ -11427,12 +11427,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 e301ff5bc88dd..04e377134d9ea 100644 --- a/x-pack/platform/plugins/private/translations/translations/fr-FR.json +++ b/x-pack/platform/plugins/private/translations/translations/fr-FR.json @@ -11204,7 +11204,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", @@ -11859,7 +11858,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", @@ -12256,8 +12254,6 @@ "xpack.apm.tooltip.maxGroup.message": "La cardinalité des données APM collectées est trop élevée. Veuillez consulter {apmServerDocs} pour atténuer les risques liés à la situation.", "xpack.apm.traceExplorer.appName": "APM", "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", @@ -31888,8 +31884,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 à", @@ -32348,7 +32342,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 8d7009d2292b6..f24ddd5641771 100644 --- a/x-pack/platform/plugins/private/translations/translations/ja-JP.json +++ b/x-pack/platform/plugins/private/translations/translations/ja-JP.json @@ -11189,7 +11189,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": "名前", @@ -11844,7 +11843,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": "メトリックを読み込んでいます", @@ -12242,8 +12240,6 @@ "xpack.apm.tooltip.maxGroup.message": "収集されているAPMデータのカーディナリティが高すぎます。この状況を軽減するには、{apmServerDocs}を確認してください。", "xpack.apm.traceExplorer.appName": "APM", "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", @@ -31866,8 +31862,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": "適用", @@ -32328,7 +32322,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 24a6ccaeb8f7e..c579b15c5cad4 100644 --- a/x-pack/platform/plugins/private/translations/translations/zh-CN.json +++ b/x-pack/platform/plugins/private/translations/translations/zh-CN.json @@ -11212,7 +11212,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": "名称", @@ -11867,7 +11866,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": "正在加载指标", @@ -12266,8 +12264,6 @@ "xpack.apm.tooltip.maxGroup.message": "正收集的 APM 数据的基数过高。请复查 {apmServerDocs} 以缓解该情况。", "xpack.apm.traceExplorer.appName": "APM", "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", @@ -31920,8 +31916,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": "应用于", @@ -32383,7 +32377,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 b2cbe35b82881..0c5a5bad974a8 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 57bf652fb873c..0803ab33f5aae 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 { useEuiTheme } from '@elastic/eui'; -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 { euiTheme } = useEuiTheme(); - const isTraceExplorerEnabled = useTraceExplorerEnabledSetting(); const [ref, cy] = useCytoscape({ - ...getCytoscapeOptions(euiTheme, isTraceExplorerEnabled), + ...getCytoscapeOptions(euiTheme), elements, }); useCytoscapeEventHandlers({ cy, serviceName, euiTheme }); 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 f54cf04d460ac..3f22f1eb1e775 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 @@ -97,10 +97,7 @@ function isService(el: cytoscape.NodeSingular) { return el.data(SERVICE_NAME) !== undefined; } -const getStyle = ( - euiTheme: EuiThemeComputed, - isTraceExplorerEnabled: boolean -): cytoscape.StylesheetJson => { +const getStyle = (euiTheme: EuiThemeComputed): cytoscape.StylesheetJson => { const lineColor = euiTheme.colors.mediumShade; return [ { @@ -196,20 +193,6 @@ const getStyle = ( 'target-arrow-color': euiTheme.colors.darkShade, }, }, - ...(isTraceExplorerEnabled - ? [ - { - selector: 'edge.hover', - style: { - width: 4, - 'z-index': zIndexEdgeHover, - 'line-color': euiTheme.colors.darkShade, - 'source-arrow-color': euiTheme.colors.darkShade, - 'target-arrow-color': euiTheme.colors.darkShade, - }, - }, - ] - : []), { selector: 'node.hover', style: { @@ -254,12 +237,9 @@ ${euiTheme.colors.lightShade}`, marginTop: 0, }); -export const getCytoscapeOptions = ( - euiTheme: EuiThemeComputed, - isTraceExplorerEnabled: boolean -): cytoscape.CytoscapeOptions => ({ +export const getCytoscapeOptions = (euiTheme: EuiThemeComputed): cytoscape.CytoscapeOptions => ({ boxSelectionEnabled: false, maxZoom: 3, minZoom: 0.2, - style: getStyle(euiTheme, isTraceExplorerEnabled), + style: getStyle(euiTheme), }); 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 b3520e3d0822b..8bde65410251a 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 React, { useCallback, useContext, useEffect, useRef, useState } from 'rea import { i18n } from '@kbn/i18n'; import { SERVICE_NAME, SPAN_TYPE } from '../../../../../common/es_fields/apm'; import type { Environment } from '../../../../../common/environment_rt'; -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 a3cf1f8be181b..6d680911899bc 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 9411c368cfe58..2a9ec6dc7bfdc 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 c17488b0b1a0f..61919a58708a3 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', { @@ -580,10 +557,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.' } - )}`; -}