diff --git a/src/core_plugins/kibana/server/tutorials/golang_metrics/index.js b/src/core_plugins/kibana/server/tutorials/golang_metrics/index.js new file mode 100644 index 0000000000000..e81b246c5074e --- /dev/null +++ b/src/core_plugins/kibana/server/tutorials/golang_metrics/index.js @@ -0,0 +1,50 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { TUTORIAL_CATEGORY } from '../../../common/tutorials/tutorial_category'; +import { onPremInstructions, cloudInstructions, onPremCloudInstructions } from '../../../common/tutorials/metricbeat_instructions'; + +export function golangMetricsSpecProvider() { + const moduleName = 'golang'; + return { + id: moduleName + 'Metrics', + name: 'Golang metrics', + isBeta: true, + category: TUTORIAL_CATEGORY.METRICS, + shortDescription: 'Fetch internal metrics from a Golang app.', + longDescription: 'The `' + moduleName + '` Metricbeat module fetches internal metrics from a Golang app.' + + ' [Learn more]({config.docs.beats.metricbeat}/metricbeat-module-' + moduleName + '.html).', + artifacts: { + dashboards: [ + { + id: 'f2dc7320-f519-11e6-a3c9-9d1f7c42b045', + linkLabel: 'Golang metrics dashboard', + isOverview: true + } + ], + exportedFields: { + documentationUrl: '{config.docs.beats.metricbeat}/exported-fields-' + moduleName + '.html' + } + }, + completionTimeMinutes: 10, + onPrem: onPremInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName), + onPremElasticCloud: onPremCloudInstructions(moduleName) + }; +} diff --git a/src/core_plugins/kibana/server/tutorials/logstash_metrics/index.js b/src/core_plugins/kibana/server/tutorials/logstash_metrics/index.js new file mode 100644 index 0000000000000..90196d24ae9d0 --- /dev/null +++ b/src/core_plugins/kibana/server/tutorials/logstash_metrics/index.js @@ -0,0 +1,49 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { TUTORIAL_CATEGORY } from '../../../common/tutorials/tutorial_category'; +import { onPremInstructions, cloudInstructions, onPremCloudInstructions } from '../../../common/tutorials/metricbeat_instructions'; + +export function logstashMetricsSpecProvider() { + const moduleName = 'logstash'; + return { + id: moduleName + 'Metrics', + name: 'Logstash metrics', + isBeta: true, + category: TUTORIAL_CATEGORY.METRICS, + shortDescription: 'Fetch interal metrics from a Logstash server.', + longDescription: 'The `' + moduleName + '` Metricbeat module fetches internal metrics from a Logstash server.' + + ' [Learn more]({config.docs.beats.metricbeat}/metricbeat-module-' + moduleName + '.html).', + euiIconType: 'logoLogstash', + artifacts: { + application: { + label: 'Discover', + path: '/app/kibana#/discover' + }, + dashboards: [], + exportedFields: { + documentationUrl: '{config.docs.beats.metricbeat}/exported-fields-' + moduleName + '.html' + } + }, + completionTimeMinutes: 10, + onPrem: onPremInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName), + onPremElasticCloud: onPremCloudInstructions(moduleName) + }; +} diff --git a/src/core_plugins/kibana/server/tutorials/prometheus_metrics/index.js b/src/core_plugins/kibana/server/tutorials/prometheus_metrics/index.js new file mode 100644 index 0000000000000..2da1fa47053b1 --- /dev/null +++ b/src/core_plugins/kibana/server/tutorials/prometheus_metrics/index.js @@ -0,0 +1,48 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { TUTORIAL_CATEGORY } from '../../../common/tutorials/tutorial_category'; +import { onPremInstructions, cloudInstructions, onPremCloudInstructions } from '../../../common/tutorials/metricbeat_instructions'; + +export function prometheusMetricsSpecProvider() { + const moduleName = 'prometheus'; + return { + id: moduleName + 'Metrics', + name: 'Prometheus metrics', + isBeta: true, + category: TUTORIAL_CATEGORY.METRICS, + shortDescription: 'Fetch metrics from a Prometheus exporter.', + longDescription: 'The `' + moduleName + '` Metricbeat module fetches metrics from Prometheus endpoint.' + + ' [Learn more]({config.docs.beats.metricbeat}/metricbeat-module-' + moduleName + '.html).', + artifacts: { + application: { + label: 'Discover', + path: '/app/kibana#/discover' + }, + dashboards: [], + exportedFields: { + documentationUrl: '{config.docs.beats.metricbeat}/exported-fields-' + moduleName + '.html' + } + }, + completionTimeMinutes: 10, + onPrem: onPremInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName), + onPremElasticCloud: onPremCloudInstructions(moduleName) + }; +} diff --git a/src/core_plugins/kibana/server/tutorials/register.js b/src/core_plugins/kibana/server/tutorials/register.js index 137258590712d..3330d9810830e 100644 --- a/src/core_plugins/kibana/server/tutorials/register.js +++ b/src/core_plugins/kibana/server/tutorials/register.js @@ -50,6 +50,10 @@ import { kibanaMetricsSpecProvider } from './kibana_metrics'; import { memcachedMetricsSpecProvider } from './memcached_metrics'; import { muninMetricsSpecProvider } from './munin_metrics'; import { windowsMetricsSpecProvider } from './windows_metrics'; +import { golangMetricsSpecProvider } from './golang_metrics'; +import { logstashMetricsSpecProvider } from './logstash_metrics'; +import { prometheusMetricsSpecProvider } from './prometheus_metrics'; +import { zookeeperMetricsSpecProvider } from './zookeeper_metrics'; export function registerTutorials(server) { server.registerTutorial(systemLogsSpecProvider); @@ -85,4 +89,8 @@ export function registerTutorials(server) { server.registerTutorial(memcachedMetricsSpecProvider); server.registerTutorial(muninMetricsSpecProvider); server.registerTutorial(windowsMetricsSpecProvider); + server.registerTutorial(golangMetricsSpecProvider); + server.registerTutorial(logstashMetricsSpecProvider); + server.registerTutorial(prometheusMetricsSpecProvider); + server.registerTutorial(zookeeperMetricsSpecProvider); } diff --git a/src/core_plugins/kibana/server/tutorials/zookeeper_metrics/index.js b/src/core_plugins/kibana/server/tutorials/zookeeper_metrics/index.js new file mode 100644 index 0000000000000..c24f1b8acfd2e --- /dev/null +++ b/src/core_plugins/kibana/server/tutorials/zookeeper_metrics/index.js @@ -0,0 +1,48 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { TUTORIAL_CATEGORY } from '../../../common/tutorials/tutorial_category'; +import { onPremInstructions, cloudInstructions, onPremCloudInstructions } from '../../../common/tutorials/metricbeat_instructions'; + +export function zookeeperMetricsSpecProvider() { + const moduleName = 'zookeeper'; + return { + id: moduleName + 'Metrics', + name: 'Zookeeper metrics', + isBeta: true, + category: TUTORIAL_CATEGORY.METRICS, + shortDescription: 'Fetch interal metrics from a Zookeeper server.', + longDescription: 'The `' + moduleName + '` Metricbeat module fetches internal metrics from a Zookeeper server.' + + ' [Learn more]({config.docs.beats.metricbeat}/metricbeat-module-' + moduleName + '.html).', + artifacts: { + application: { + label: 'Discover', + path: '/app/kibana#/discover' + }, + dashboards: [], + exportedFields: { + documentationUrl: '{config.docs.beats.metricbeat}/exported-fields-' + moduleName + '.html' + } + }, + completionTimeMinutes: 10, + onPrem: onPremInstructions(moduleName), + elasticCloud: cloudInstructions(moduleName), + onPremElasticCloud: onPremCloudInstructions(moduleName) + }; +}