From 494f06bfe1c1a44d9aca570dce0a0f5c10d5792a Mon Sep 17 00:00:00 2001 From: ruflin Date: Fri, 20 Jul 2018 09:35:13 +0200 Subject: [PATCH 1/2] Add more tutorials to add data UI * Golang * Logstash * Prometheus * Zookeeper --- .../server/tutorials/golang_metrics/index.js | 48 ++++++++++++++++++ .../tutorials/logstash_metrics/index.js | 49 +++++++++++++++++++ .../tutorials/prometheus_metrics/index.js | 48 ++++++++++++++++++ .../kibana/server/tutorials/register.js | 8 +++ .../tutorials/zookeeper_metrics/index.js | 48 ++++++++++++++++++ 5 files changed, 201 insertions(+) create mode 100644 src/core_plugins/kibana/server/tutorials/golang_metrics/index.js create mode 100644 src/core_plugins/kibana/server/tutorials/logstash_metrics/index.js create mode 100644 src/core_plugins/kibana/server/tutorials/prometheus_metrics/index.js create mode 100644 src/core_plugins/kibana/server/tutorials/zookeeper_metrics/index.js 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..bd848b8e38aa8 --- /dev/null +++ b/src/core_plugins/kibana/server/tutorials/golang_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 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: { + 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/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) + }; +} From f7415b4989807181fae918b452f04bf1b6af1f4a Mon Sep 17 00:00:00 2001 From: ruflin Date: Fri, 20 Jul 2018 13:27:25 +0200 Subject: [PATCH 2/2] add link to golang dashboard --- .../kibana/server/tutorials/golang_metrics/index.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/core_plugins/kibana/server/tutorials/golang_metrics/index.js b/src/core_plugins/kibana/server/tutorials/golang_metrics/index.js index bd848b8e38aa8..e81b246c5074e 100644 --- a/src/core_plugins/kibana/server/tutorials/golang_metrics/index.js +++ b/src/core_plugins/kibana/server/tutorials/golang_metrics/index.js @@ -31,11 +31,13 @@ export function golangMetricsSpecProvider() { longDescription: 'The `' + moduleName + '` Metricbeat module fetches internal metrics from a Golang app.' + ' [Learn more]({config.docs.beats.metricbeat}/metricbeat-module-' + moduleName + '.html).', artifacts: { - application: { - label: 'Discover', - path: '/app/kibana#/discover' - }, - dashboards: [], + dashboards: [ + { + id: 'f2dc7320-f519-11e6-a3c9-9d1f7c42b045', + linkLabel: 'Golang metrics dashboard', + isOverview: true + } + ], exportedFields: { documentationUrl: '{config.docs.beats.metricbeat}/exported-fields-' + moduleName + '.html' }