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 51e8d1a0b6bef..fd46a8a0f82c1 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
@@ -21,6 +21,7 @@ readonly links: {
readonly installation: string;
readonly configuration: string;
readonly elasticsearchOutput: string;
+ readonly elasticsearchModule: string;
readonly startup: string;
readonly exportedFields: string;
};
@@ -29,6 +30,10 @@ readonly links: {
};
readonly metricbeat: {
readonly base: string;
+ readonly configure: string;
+ readonly httpEndpoint: string;
+ readonly install: string;
+ readonly start: string;
};
readonly enterpriseSearch: {
readonly base: string;
diff --git a/src/core/public/doc_links/doc_links_service.ts b/src/core/public/doc_links/doc_links_service.ts
index ea2f467657fc3..26bca7de80464 100644
--- a/src/core/public/doc_links/doc_links_service.ts
+++ b/src/core/public/doc_links/doc_links_service.ts
@@ -39,6 +39,7 @@ export class DocLinksService {
base: `${ELASTIC_WEBSITE_URL}guide/en/beats/filebeat/${DOC_LINK_VERSION}`,
installation: `${ELASTIC_WEBSITE_URL}guide/en/beats/filebeat/${DOC_LINK_VERSION}/filebeat-installation-configuration.html`,
configuration: `${ELASTIC_WEBSITE_URL}guide/en/beats/filebeat/${DOC_LINK_VERSION}/configuring-howto-filebeat.html`,
+ elasticsearchModule: `${ELASTIC_WEBSITE_URL}guide/en/beats/filebeat/${DOC_LINK_VERSION}/filebeat-module-elasticsearch.html`,
elasticsearchOutput: `${ELASTIC_WEBSITE_URL}guide/en/beats/filebeat/${DOC_LINK_VERSION}/elasticsearch-output.html`,
startup: `${ELASTIC_WEBSITE_URL}guide/en/beats/filebeat/${DOC_LINK_VERSION}/filebeat-starting.html`,
exportedFields: `${ELASTIC_WEBSITE_URL}guide/en/beats/filebeat/${DOC_LINK_VERSION}/exported-fields.html`,
@@ -53,6 +54,10 @@ export class DocLinksService {
},
metricbeat: {
base: `${ELASTIC_WEBSITE_URL}guide/en/beats/metricbeat/${DOC_LINK_VERSION}`,
+ configure: `${ELASTIC_WEBSITE_URL}guide/en/beats/metricbeat/${DOC_LINK_VERSION}/configuring-howto-metricbeat.html`,
+ httpEndpoint: `${ELASTIC_WEBSITE_URL}guide/en/beats/metricbeat/${DOC_LINK_VERSION}/http-endpoint.html`,
+ install: `${ELASTIC_WEBSITE_URL}guide/en/beats/metricbeat/${DOC_LINK_VERSION}/metricbeat-installation-configuration.html`,
+ start: `${ELASTIC_WEBSITE_URL}guide/en/beats/metricbeat/${DOC_LINK_VERSION}/metricbeat-starting.html`,
},
heartbeat: {
base: `${ELASTIC_WEBSITE_URL}guide/en/beats/heartbeat/${DOC_LINK_VERSION}`,
@@ -195,8 +200,11 @@ export class DocLinksService {
alertsKibanaDiskThreshold: `${ELASTIC_WEBSITE_URL}guide/en/kibana/${DOC_LINK_VERSION}/kibana-alerts.html#kibana-alerts-disk-usage-threshold`,
alertsKibanaJvmThreshold: `${ELASTIC_WEBSITE_URL}guide/en/kibana/${DOC_LINK_VERSION}/kibana-alerts.html#kibana-alerts-jvm-memory-threshold`,
alertsKibanaMissingData: `${ELASTIC_WEBSITE_URL}guide/en/kibana/${DOC_LINK_VERSION}/kibana-alerts.html#kibana-alerts-missing-monitoring-data`,
+ metricbeatBlog: `${ELASTIC_WEBSITE_URL}blog/external-collection-for-elastic-stack-monitoring-is-now-available-via-metricbeat`,
monitorElasticsearch: `${ELASTICSEARCH_DOCS}configuring-metricbeat.html`,
monitorKibana: `${ELASTIC_WEBSITE_URL}guide/en/kibana/${DOC_LINK_VERSION}/monitoring-metricbeat.html`,
+ monitorLogstash: `${ELASTIC_WEBSITE_URL}guide/en/logstash/${DOC_LINK_VERSION}/monitoring-with-metricbeat.html`,
+ troubleshootKibana: `${ELASTIC_WEBSITE_URL}guide/en/kibana/${DOC_LINK_VERSION}/monitor-troubleshooting.html`,
},
security: {
apiKeyServiceSettings: `${ELASTICSEARCH_DOCS}security-settings.html#api-key-service-settings`,
@@ -259,6 +267,7 @@ export interface DocLinksStart {
readonly installation: string;
readonly configuration: string;
readonly elasticsearchOutput: string;
+ readonly elasticsearchModule: string;
readonly startup: string;
readonly exportedFields: string;
};
@@ -267,6 +276,10 @@ export interface DocLinksStart {
};
readonly metricbeat: {
readonly base: string;
+ readonly configure: string;
+ readonly httpEndpoint: string;
+ readonly install: string;
+ readonly start: string;
};
readonly enterpriseSearch: {
readonly base: string;
diff --git a/src/core/public/public.api.md b/src/core/public/public.api.md
index 37ebbcaa752af..75ed9aa5f150f 100644
--- a/src/core/public/public.api.md
+++ b/src/core/public/public.api.md
@@ -474,6 +474,7 @@ export interface DocLinksStart {
readonly installation: string;
readonly configuration: string;
readonly elasticsearchOutput: string;
+ readonly elasticsearchModule: string;
readonly startup: string;
readonly exportedFields: string;
};
@@ -482,6 +483,10 @@ export interface DocLinksStart {
};
readonly metricbeat: {
readonly base: string;
+ readonly configure: string;
+ readonly httpEndpoint: string;
+ readonly install: string;
+ readonly start: string;
};
readonly enterpriseSearch: {
readonly base: string;
diff --git a/x-pack/plugins/monitoring/public/alerts/lib/alerts_toast.tsx b/x-pack/plugins/monitoring/public/alerts/lib/alerts_toast.tsx
index 8d889a7a4dc2a..026f172147192 100644
--- a/x-pack/plugins/monitoring/public/alerts/lib/alerts_toast.tsx
+++ b/x-pack/plugins/monitoring/public/alerts/lib/alerts_toast.tsx
@@ -19,7 +19,7 @@ export interface EnableAlertResponse {
}
const showTlsAndEncryptionError = () => {
- const { ELASTIC_WEBSITE_URL, DOC_LINK_VERSION } = Legacy.shims.docLinks;
+ const settingsUrl = Legacy.shims.docLinks.links.alerting.generalSettings;
Legacy.shims.toastNotifications.addWarning({
title: toMountPoint(
@@ -36,11 +36,7 @@ const showTlsAndEncryptionError = () => {
})}
-
+
{i18n.translate('xpack.monitoring.healthCheck.encryptionErrorAction', {
defaultMessage: 'Learn how.',
})}
@@ -51,7 +47,7 @@ const showTlsAndEncryptionError = () => {
};
const showUnableToDisableWatcherClusterAlertsError = () => {
- const { ELASTIC_WEBSITE_URL, DOC_LINK_VERSION } = Legacy.shims.docLinks;
+ const settingsUrl = Legacy.shims.docLinks.links.alerting.generalSettings;
Legacy.shims.toastNotifications.addWarning({
title: toMountPoint(
@@ -68,11 +64,7 @@ const showUnableToDisableWatcherClusterAlertsError = () => {
})}
-
+
{i18n.translate('xpack.monitoring.healthCheck.unableToDisableWatches.action', {
defaultMessage: 'Learn more.',
})}
diff --git a/x-pack/plugins/monitoring/public/components/logs/__snapshots__/reason.test.js.snap b/x-pack/plugins/monitoring/public/components/logs/__snapshots__/reason.test.js.snap
index c925ecd1c98ff..40541aeaad4c1 100644
--- a/x-pack/plugins/monitoring/public/components/logs/__snapshots__/reason.test.js.snap
+++ b/x-pack/plugins/monitoring/public/components/logs/__snapshots__/reason.test.js.snap
@@ -13,7 +13,7 @@ exports[`Logs should render a default message 1`] = `
values={
Object {
"link":
Click here for more information
@@ -67,7 +67,7 @@ exports[`Logs should render with a no cluster found reason 1`] = `
values={
Object {
"link":
setup
@@ -92,7 +92,7 @@ exports[`Logs should render with a no index found reason 1`] = `
values={
Object {
"link":
setup
@@ -117,7 +117,7 @@ exports[`Logs should render with a no index pattern found reason 1`] = `
values={
Object {
"link":
Filebeat
@@ -142,7 +142,7 @@ exports[`Logs should render with a no node found reason 1`] = `
values={
Object {
"link":
setup
@@ -167,7 +167,7 @@ exports[`Logs should render with a no structured logs reason 1`] = `
values={
Object {
"link":
points to JSON logs
@@ -195,7 +195,7 @@ exports[`Logs should render with a no type found reason 1`] = `
values={
Object {
"link":
these directions
diff --git a/x-pack/plugins/monitoring/public/components/logs/reason.js b/x-pack/plugins/monitoring/public/components/logs/reason.js
index 538c8934cdaef..512b44c8165b1 100644
--- a/x-pack/plugins/monitoring/public/components/logs/reason.js
+++ b/x-pack/plugins/monitoring/public/components/logs/reason.js
@@ -13,7 +13,9 @@ import { Legacy } from '../../legacy_shims';
import { Monospace } from '../metricbeat_migration/instruction_steps/components/monospace/monospace';
export const Reason = ({ reason }) => {
- const { ELASTIC_WEBSITE_URL, DOC_LINK_VERSION } = Legacy.shims.docLinks;
+ const filebeatUrl = Legacy.shims.docLinks.links.filebeat.installation;
+ const elasticsearchUrl = Legacy.shims.docLinks.links.filebeat.elasticsearchModule;
+ const troubleshootUrl = Legacy.shims.docLinks.links.monitoring.troubleshootKibana;
let title = i18n.translate('xpack.monitoring.logs.reason.defaultTitle', {
defaultMessage: 'No log data found',
});
@@ -23,10 +25,7 @@ export const Reason = ({ reason }) => {
defaultMessage="We did not find any log data and we are unable to diagnose why. {link}"
values={{
link: (
-
+
{
defaultMessage="Set up {link}, then configure your Elasticsearch output to your monitoring cluster."
values={{
link: (
-
+
{i18n.translate('xpack.monitoring.logs.reason.noIndexPatternLink', {
defaultMessage: 'Filebeat',
})}
@@ -82,10 +78,7 @@ export const Reason = ({ reason }) => {
defaultMessage="Follow {link} to set up Elasticsearch."
values={{
link: (
-
+
{i18n.translate('xpack.monitoring.logs.reason.noTypeLink', {
defaultMessage: 'these directions',
})}
@@ -105,10 +98,7 @@ export const Reason = ({ reason }) => {
values={{
varPaths: var.paths,
link: (
-
+
{i18n.translate('xpack.monitoring.logs.reason.notUsingStructuredLogsLink', {
defaultMessage: 'points to JSON logs',
})}
@@ -127,10 +117,7 @@ export const Reason = ({ reason }) => {
defaultMessage="Check that your {link} is correct."
values={{
link: (
-
+
{i18n.translate('xpack.monitoring.logs.reason.noClusterLink', {
defaultMessage: 'setup',
})}
@@ -149,10 +136,7 @@ export const Reason = ({ reason }) => {
defaultMessage="Check that your {link} is correct."
values={{
link: (
-
+
{i18n.translate('xpack.monitoring.logs.reason.noNodeLink', {
defaultMessage: 'setup',
})}
@@ -171,10 +155,7 @@ export const Reason = ({ reason }) => {
defaultMessage="We found logs, but none for this index. If this problem continues, check that your {link} is correct."
values={{
link: (
-
+
{i18n.translate('xpack.monitoring.logs.reason.noIndexLink', {
defaultMessage: 'setup',
})}
@@ -193,10 +174,7 @@ export const Reason = ({ reason }) => {
defaultMessage="There is an issue reading from your filebeat indices. {link}."
values={{
link: (
-
+
{i18n.translate('xpack.monitoring.logs.reason.correctIndexNameLink', {
defaultMessage: 'Click here for more information',
})}
diff --git a/x-pack/plugins/monitoring/public/components/logs/reason.test.js b/x-pack/plugins/monitoring/public/components/logs/reason.test.js
index 53aad5511e0ae..0d75af1d1048f 100644
--- a/x-pack/plugins/monitoring/public/components/logs/reason.test.js
+++ b/x-pack/plugins/monitoring/public/components/logs/reason.test.js
@@ -15,6 +15,15 @@ jest.mock('../../legacy_shims', () => ({
docLinks: {
ELASTIC_WEBSITE_URL: 'https://www.elastic.co/',
DOC_LINK_VERSION: 'current',
+ links: {
+ filebeat: {
+ elasticsearchModule: 'jest-metadata-mock-url',
+ installation: 'jest-metadata-mock-url',
+ },
+ monitoring: {
+ troubleshootKibana: 'jest-metadata-mock-url',
+ },
+ },
},
},
},
diff --git a/x-pack/plugins/monitoring/public/components/metricbeat_migration/flyout/__snapshots__/flyout.test.js.snap b/x-pack/plugins/monitoring/public/components/metricbeat_migration/flyout/__snapshots__/flyout.test.js.snap
index 2f29cd9122a61..1173f36d620d6 100644
--- a/x-pack/plugins/monitoring/public/components/metricbeat_migration/flyout/__snapshots__/flyout.test.js.snap
+++ b/x-pack/plugins/monitoring/public/components/metricbeat_migration/flyout/__snapshots__/flyout.test.js.snap
@@ -156,7 +156,7 @@ exports[`Flyout apm part two should show instructions to migrate to metricbeat 1
"children":
({
shims: {
kfetch: jest.fn(),
docLinks: {
- ELASTIC_WEBSITE_URL: 'https://www.elastic.co/',
- DOC_LINK_VERSION: 'current',
+ links: {
+ monitoring: {
+ monitorKibana: 'jest-metadata-mock-url',
+ monitorElasticsearch: 'jest-metadata-mock-url',
+ },
+ metricbeat: {
+ install: 'jest-metadata-mock-url',
+ configure: 'jest-metadata-mock-url',
+ },
+ },
},
},
},
diff --git a/x-pack/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/apm/enable_metricbeat_instructions.js b/x-pack/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/apm/enable_metricbeat_instructions.js
index 1006468d0c736..a0b5468cb9c77 100644
--- a/x-pack/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/apm/enable_metricbeat_instructions.js
+++ b/x-pack/plugins/monitoring/public/components/metricbeat_migration/instruction_steps/apm/enable_metricbeat_instructions.js
@@ -14,10 +14,10 @@ import { Legacy } from '../../../../legacy_shims';
import { getMigrationStatusStep, getSecurityStep } from '../common_instructions';
export function getApmInstructionsForEnablingMetricbeat(product, _meta, { esMonitoringUrl }) {
- const { ELASTIC_WEBSITE_URL, DOC_LINK_VERSION } = Legacy.shims.docLinks;
- const securitySetup = getSecurityStep(
- `${ELASTIC_WEBSITE_URL}guide/en/beats/metricbeat/${DOC_LINK_VERSION}/configuring-howto-metricbeat.html`
- );
+ const metricbeatConfigUrl = Legacy.shims.docLinks.links.metricbeat.configure;
+ const metricbeatInstallUrl = Legacy.shims.docLinks.links.metricbeat.install;
+ const metricbeatStartUrl = Legacy.shims.docLinks.links.metricbeat.start;
+ const securitySetup = getSecurityStep(metricbeatConfigUrl);
const installMetricbeatStep = {
title: i18n.translate(
@@ -29,10 +29,7 @@ export function getApmInstructionsForEnablingMetricbeat(product, _meta, { esMoni
children: (
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
});
const showIfLegacyOnlyIndices = () => {
- const { ELASTIC_WEBSITE_URL } = Legacy.shims.docLinks;
+ const blogUrl = Legacy.shims.docLinks.links.monitoring.metricbeatBlog;
const toast = Legacy.shims.toastNotifications.addWarning({
title: toMountPoint(
{
-
+
{learnMoreLabel()}
@@ -69,7 +65,7 @@ const showIfLegacyOnlyIndices = () => {
};
const showIfLegacyAndMetricbeatIndices = () => {
- const { ELASTIC_WEBSITE_URL } = Legacy.shims.docLinks;
+ const blogUrl = Legacy.shims.docLinks.links.monitoring.metricbeatBlog;
const toast = Legacy.shims.toastNotifications.addWarning({
title: toMountPoint(
{
-
+
{learnMoreLabel()}