fuel-plugin-influxdb-grafana/deployment_scripts/puppet/modules/lma_monitoring_analytics/manifests/grafana_dashboards.pp

115 lines
3.8 KiB
Puppet

# Copyright 2016 Mirantis, Inc.
#
# Licensed 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.
#
# == Class: lma_monitoring_analytics::grafana_dashboards
class lma_monitoring_analytics::grafana_dashboards (
$admin_username,
$admin_password,
$protocol = $lma_monitoring_analytics::params::protocol,
$host = $lma_monitoring_analytics::params::grafana_domain,
$port = $lma_monitoring_analytics::params::grafana_port,
$import_influxdb = false,
$import_elasticsearch = false,
) inherits lma_monitoring_analytics::params {
$dashboard_defaults = {
ensure => present,
grafana_url => "${protocol}://${host}:${port}",
grafana_user => $admin_username,
grafana_password => $admin_password,
}
$dashboards = {
'Main' => {
content => template('lma_monitoring_analytics/grafana_dashboards/Main.json'),
},
'System' => {
content => template('lma_monitoring_analytics/grafana_dashboards/System.json'),
},
'LMA self-monitoring' => {
content => template('lma_monitoring_analytics/grafana_dashboards/LMA.json'),
},
'Apache' => {
content => template('lma_monitoring_analytics/grafana_dashboards/Apache.json'),
},
'Cinder' => {
content => template('lma_monitoring_analytics/grafana_dashboards/Cinder.json'),
},
'Glance' => {
content => template('lma_monitoring_analytics/grafana_dashboards/Glance.json'),
},
'HAProxy' => {
content => template('lma_monitoring_analytics/grafana_dashboards/HAProxy.json'),
},
'Heat' => {
content => template('lma_monitoring_analytics/grafana_dashboards/Heat.json'),
},
'Hypervisor' => {
content => template('lma_monitoring_analytics/grafana_dashboards/Hypervisor.json'),
},
'Keystone' => {
content => template('lma_monitoring_analytics/grafana_dashboards/Keystone.json'),
},
'Memcached' => {
content => template('lma_monitoring_analytics/grafana_dashboards/Memcached.json'),
},
'MySQL' => {
content => template('lma_monitoring_analytics/grafana_dashboards/MySQL.json'),
},
'Memcached' => {
content => template('lma_monitoring_analytics/grafana_dashboards/Memcached.json'),
},
'Neutron' => {
content => template('lma_monitoring_analytics/grafana_dashboards/Neutron.json'),
},
'Nova' => {
content => template('lma_monitoring_analytics/grafana_dashboards/Nova.json'),
},
'RabbitMQ' => {
content => template('lma_monitoring_analytics/grafana_dashboards/RabbitMQ.json'),
},
'Ceph' => {
content => template('lma_monitoring_analytics/grafana_dashboards/Ceph.json'),
},
'Ceph OSD' => {
content => template('lma_monitoring_analytics/grafana_dashboards/Ceph_OSD.json'),
},
}
if $import_influxdb {
$influxdb_dashboard = {
'InfluxDB' => {
content => template('lma_monitoring_analytics/grafana_dashboards/InfluxDB.json'),
}
}
} else {
$influxdb_dashboard = {}
}
if $import_elasticsearch {
$es_dashboard = {
'Elasticsearch' => {
content => template('lma_monitoring_analytics/grafana_dashboards/Elasticsearch.json'),
}
}
} else {
$es_dashboard = {}
}
create_resources(
grafana_dashboard, merge($dashboards, $es_dashboard, $influxdb_dashboard), $dashboard_defaults
)
}