diff --git a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md index 26d0c38f72fd..bc6075176cd2 100644 --- a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md +++ b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md @@ -9,6 +9,10 @@ ```typescript readonly links: { readonly settings: string; + readonly apm: { + readonly kibanaSettings: string; + readonly supportedServiceMaps: string; + }; readonly canvas: { readonly guide: string; }; diff --git a/src/core/public/doc_links/doc_links_service.ts b/src/core/public/doc_links/doc_links_service.ts index 9ff95c0e04d1..f3ef7c550e57 100644 --- a/src/core/public/doc_links/doc_links_service.ts +++ b/src/core/public/doc_links/doc_links_service.ts @@ -30,6 +30,10 @@ export class DocLinksService { ELASTIC_WEBSITE_URL, links: { settings: `${ELASTIC_WEBSITE_URL}guide/en/kibana/${DOC_LINK_VERSION}/settings.html`, + apm: { + kibanaSettings: `${KIBANA_DOCS}apm-settings-in-kibana.html`, + supportedServiceMaps: `${KIBANA_DOCS}service-maps.html#service-maps-supported`, + }, canvas: { guide: `${KIBANA_DOCS}canvas.html`, }, @@ -451,6 +455,10 @@ export interface DocLinksStart { readonly ELASTIC_WEBSITE_URL: string; readonly links: { readonly settings: string; + readonly apm: { + readonly kibanaSettings: string; + readonly supportedServiceMaps: string; + }; readonly canvas: { readonly guide: string; }; diff --git a/src/core/public/public.api.md b/src/core/public/public.api.md index 3a432ae50ea7..f18e1dc26bd8 100644 --- a/src/core/public/public.api.md +++ b/src/core/public/public.api.md @@ -473,6 +473,10 @@ export interface DocLinksStart { // (undocumented) readonly links: { readonly settings: string; + readonly apm: { + readonly kibanaSettings: string; + readonly supportedServiceMaps: string; + }; readonly canvas: { readonly guide: string; }; diff --git a/x-pack/plugins/apm/public/components/app/service_map/EmptyBanner.tsx b/x-pack/plugins/apm/public/components/app/service_map/EmptyBanner.tsx index 90caa9c87c48..0708ee364b0f 100644 --- a/x-pack/plugins/apm/public/components/app/service_map/EmptyBanner.tsx +++ b/x-pack/plugins/apm/public/components/app/service_map/EmptyBanner.tsx @@ -6,12 +6,12 @@ */ import React, { useContext, useEffect, useState } from 'react'; -import { EuiCallOut } from '@elastic/eui'; +import { EuiCallOut, EuiLink } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { euiStyled } from '../../../../../../../src/plugins/kibana_react/common'; -import { ElasticDocsLink } from '../../shared/Links/ElasticDocsLink'; import { CytoscapeContext } from './Cytoscape'; import { useTheme } from '../../../hooks/use_theme'; +import { useApmPluginContext } from '../../../context/apm_plugin/use_apm_plugin_context'; const EmptyBannerContainer = euiStyled.div` margin: ${({ theme }) => theme.eui.gutterTypes.gutterSmall}; @@ -28,6 +28,7 @@ export function EmptyBanner() { const theme = useTheme(); const cy = useContext(CytoscapeContext); const [nodeCount, setNodeCount] = useState(0); + const { docLinks } = useApmPluginContext().core; useEffect(() => { const handler: cytoscape.EventHandler = (event) => @@ -67,14 +68,11 @@ export function EmptyBanner() { defaultMessage: "We will map out connected services and external requests if we can detect them. Please make sure you're running the latest version of the APM agent.", })}{' '} - + {i18n.translate('xpack.apm.serviceMap.emptyBanner.docsLink', { defaultMessage: 'Learn more in the docs', })} - + ); diff --git a/x-pack/plugins/apm/public/components/app/service_map/timeout_prompt.tsx b/x-pack/plugins/apm/public/components/app/service_map/timeout_prompt.tsx index 43128c601339..75602474de3e 100644 --- a/x-pack/plugins/apm/public/components/app/service_map/timeout_prompt.tsx +++ b/x-pack/plugins/apm/public/components/app/service_map/timeout_prompt.tsx @@ -5,10 +5,10 @@ * 2.0. */ -import { EuiEmptyPrompt } from '@elastic/eui'; +import { EuiEmptyPrompt, EuiLink } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import React from 'react'; -import { ElasticDocsLink } from '../../shared/Links/ElasticDocsLink'; +import { useApmPluginContext } from '../../../context/apm_plugin/use_apm_plugin_context'; export function TimeoutPrompt({ isGlobalServiceMap, @@ -44,11 +44,12 @@ export function TimeoutPrompt({ } function ApmSettingsDocLink() { + const { docLinks } = useApmPluginContext().core; return ( - + {i18n.translate('xpack.apm.serviceMap.timeoutPrompt.docsLink', { defaultMessage: 'Learn more about APM settings in the docs', })} - + ); } diff --git a/x-pack/plugins/apm/public/context/apm_plugin/mock_apm_plugin_context.tsx b/x-pack/plugins/apm/public/context/apm_plugin/mock_apm_plugin_context.tsx index 7f06dee4827b..0a94dd14b3ca 100644 --- a/x-pack/plugins/apm/public/context/apm_plugin/mock_apm_plugin_context.tsx +++ b/x-pack/plugins/apm/public/context/apm_plugin/mock_apm_plugin_context.tsx @@ -61,6 +61,9 @@ const mockCore = { docLinks: { DOC_LINK_VERSION: '0', ELASTIC_WEBSITE_URL: 'https://www.elastic.co/', + links: { + apm: {}, + }, }, http: { basePath: {