Add cfme general performance dashboard, break apart openstack vs generic dashboards.

+ Added Grafana Port to install vars
+ Parameterized Per Process component of General Dashboard to allow much faster deployment of Dashboarding Per process components on machine types.
+ Graph Graphite/Carbon Metrics in Graphite Dashboard
+ Added a few more workers for CFME to collect on in collectd

Change-Id: I6cf0488332cc0aa9816f11e34fc7f0429ee17eb7
This commit is contained in:
Alex Krzos 2016-03-11 11:02:03 -05:00
parent a51663b96d
commit e7f2e5c2cb
23 changed files with 13288 additions and 213 deletions

View File

@ -1,25 +1,27 @@
Table of Contents
=================
* [Browbeat](#browbeat)
* [Before running browbeat](#before-running-browbeat)
* [How to run Browbeat?](#how-to-run-browbeat)
* [What is necessary?](#what-is-necessary)
* [Detailed Install, Check and Run](#detailed-install-check-and-run)
* [Install Browbeat from your local machine](#install-browbeat-from-your-local-machine)
* [From your local machine:](#from-your-local-machine)
* [(Optional) Install shaker:](#optional-install-shaker)
* [(Optional) Install connmon:](#optional-install-connmon)
* [Run performance checks](#run-performance-checks)
* [Run performance stress tests through browbeat on the undercloud:](#run-performance-stress-tests-through-browbeat-on-the-undercloud)
* [Install Browbeat directly on undercloud:](#install-browbeat-directly-on-undercloud)
* [From your undercloud:](#from-your-undercloud)
* [(Optional) Install shaker:](#optional-install-shaker-1)
* [(Optional) Install connmon:](#optional-install-connmon-1)
* [Run performance checks](#run-performance-checks-1)
* [Run performance stress tests through browbeat:](#run-performance-stress-tests-through-browbeat)
* [Running PerfKitBenchmarker](#running-perfkitbenchmarker)
* [Contributing](#contributing)
- [Browbeat](#)
- [Before running browbeat](#)
- [How to run Browbeat?](#)
- [What is necessary?](#)
- [Detailed Install, Check and Run](#)
- [Install Browbeat from your local machine](#)
- [From your local machine](#)
- [(Optional) Install collectd](#)
- [(Optional) Install collectd->graphite dashboards](#)
- [(Optional) Install connmon](#)
- [Run Overcloud checks](#)
- [Run performance stress tests through browbeat on the undercloud](#)
- [Install Browbeat directly on undercloud](#)
- [From your undercloud](#)
- [(Optional) Install collectd](#)
- [(Optional) Install collectd->graphite dashboards](#)
- [(Optional) Install connmon](#)
- [Run Overcloud checks](#)
- [Run performance stress tests through browbeat](#)
- [Running PerfKitBenchmarker](#)
- [Contributing](#)
# Browbeat
This started as a project to help determine the number of database connections a given OpenStack deployment uses via stress tests. It has since grown into a set of Ansible playbooks to help check deployments for known issues, install tools and change parameters of the overcloud.
@ -49,7 +51,7 @@ Installing Browbeat and running the Overcloud checks can be performed either fro
## Install Browbeat from your local machine
### From your local machine:
### From your local machine
```
$ ssh-copy-id stack@<undercloud-ip>
$ git clone https://github.com/jtaleric/browbeat.git
@ -62,12 +64,17 @@ $ ansible-playbook -i hosts install/browbeat_network.yml
$ ansible-playbook -i hosts install/shaker_build.yml
```
### (Optional) Install collectd:
### (Optional) Install collectd
```
$ ansible-playbook -i hosts install/collectd.yml
```
### (Optional) Install connmon:
### (Optional) Install collectd->graphite dashboards
```
$ ansible-playbook -i hosts install/dashboards-openstack.yml
```
### (Optional) Install connmon
```
$ ansible-playbook -i hosts install/connmon.yml
```
@ -89,9 +96,9 @@ $ ssh undercloud-root
(browbeat-venv)[stack@ospd browbeat]$ ./browbeat.py -w
```
## Install Browbeat directly on undercloud:
## Install Browbeat directly on undercloud
### From your undercloud:
### From your undercloud
```
$ ssh undercloud-root
[root@ospd ~]# su - stack
@ -107,12 +114,17 @@ $ ssh undercloud-root
[stack@ospd ansible]$ ansible-playbook -i hosts install/shaker_build.yml
```
### (Optional) Install collectd:
### (Optional) Install collectd
```
[stack@ospd ansible]$ ansible-playbook -i hosts install/collectd.yml
```
### (Optional) Install connmon:
### (Optional) Install collectd->graphite dashboards
```
[stack@ospd ansible]$ ansible-playbook -i hosts install/dashboards-openstack.yml
```
### (Optional) Install connmon
```
[stack@ospd ansible]$ ansible-playbook -i hosts install/connmon.yml
```
@ -123,7 +135,7 @@ $ ssh undercloud-root
```
Your Overcloud check output is located in check/bug_report.log
### Run performance stress tests through browbeat:
### Run performance stress tests through browbeat
```
[stack@ospd ansible]$ . ../../browbeat-venv/bin/activate
(browbeat-venv)[stack@ospd ansible]$ cd ..

View File

@ -0,0 +1,37 @@
---
#
# Builds and uploads dashboards to your grafana server for several host types
#
- hosts: localhost
gather_facts: false
vars:
ansible_connection: local
overwrite_existing: true
dashboards:
- template_name: baremetal
process_list_name: Baremetal
- template_name: guest
process_list_name: Guest
- template_name: cfme
process_list_name: CFME
# - template_name: cfme
# process_list_name: CFME-Amazon
# - template_name: cfme
# process_list_name: CFME-Azure
- template_name: cfme
process_list_name: CFME-Containers
- template_name: cfme
process_list_name: CFME-Microsoft
- template_name: cfme
process_list_name: CFME-Openstack
- template_name: cfme
process_list_name: CFME-RedHat
- template_name: cfme
process_list_name: CFME-VMware
- template_name: graphite
process_list_name: Graphite
- template_name: satellite6
process_list_name: Satellite6
roles:
- dashboard-generic

View File

@ -0,0 +1,12 @@
---
#
# Builds dashboards based on your ansible hosts for Openstack
#
- hosts: localhost
gather_facts: false
vars:
ansible_connection: local
overwrite_existing: true
roles:
- dashboard-openstack

View File

@ -1,12 +0,0 @@
---
#
# Generates Dashboards based on your Ansible hosts and uploads it to your grafana server
#
- hosts: undercloud
gather_facts: false
remote_user: "{{ local_remote_user }}"
vars:
overwrite_existing: true
roles:
- dashboard

View File

@ -21,9 +21,24 @@ def hosts_to_dictionary(arg):
return dictionary
def to_grafana_refid(number):
"""Convert a number to a string starting at character a and incrementing. This only accounts
for a to zz, anything greater than zz is probably too much to graph anyway."""
character1 = ''
idx = -1
while number > 25:
idx = idx + 1
number -= 26
else:
if idx != -1:
character1 = chr(idx + 65)
return character1 + chr(number + 65)
class FilterModule(object):
def filters(self):
return {
'dict_remove': dict_remove,
'hosts_to_dictionary': hosts_to_dictionary,
'to_grafana_refid': to_grafana_refid,
}

View File

@ -23,9 +23,6 @@ shaker_venv: /home/stack/shaker-venv
# The default PerfKit venv:
perfkit_venv: /home/stack/perfkit-venv
# Shaker centos image builder template
shaker_centos: "{{shaker_venv}}/lib/python2.7/site-packages/shaker/resources/image_builder_templates/centos.yaml"
# Guest images for the Overcloud
images:
centos7:
@ -33,57 +30,69 @@ images:
cirros:
url: http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
# Host where connmond will be running
connmon_host: 192.0.2.1
# DNS Server to add
dns_server: 8.8.8.8
# Collectd interval (seconds)
collectd_interval: 10
# epel Repository for collectd packages
epel_repo: https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# Run collectd on specific nodes:
# Host where connmond will be running
connmon_host: 192.0.2.1
########################################
# Collectd Configuration
########################################
# Interval in seconds
collectd_interval: 10
# Run collectd on specific openstack nodes:
collectd_undercloud: true
collectd_controller: true
collectd_ceph: true
collectd_compute: false
# epel Repository for collectd packages
epel_repo: https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
########################################
# Graphite Configuration
########################################
# Graphite Server ip address (Collectd -> Graphite server)
graphite_host: 1.1.1.1
# Graphite prefix / Cloud name used both with graphite and grafana dashboards
graphite_prefix: openstack
# Grafana API Key (Used to upload Grafana dashboards)
grafana_api_key: (Your Grafana API Key)
# Grafana Server IP Address (Can be hosted on the Graphite server)
grafana_host: 1.1.1.1
# Graphite username and password for login on the dashboard
graphite_username: root
graphite_password: calvin
# Dashboards - Batch number of hosts per row for all-{cpu, memory, disk, network} dashboards
########################################
# Grafana Dashboarding Configuration
########################################
# Grafana Server IP Address/Port (Can be hosted on the Graphite server)
grafana_host: 1.1.1.1
grafana_port: 3000
grafana_api_key: (Your Grafana API Key)
# Batch number of hosts per row for all-{cpu, memory, disk, network} openstack dashboards
dashboards_batch: 20
# For use with all-{cpu, memory, disk, network} openstack dashboards, uses the graphite prefix to create dashboards for specific openstack cloud
dashboard_cloud_name: "{{graphite_prefix}}"
########################################
# Shaker Configuration
########################################
# Port for Shaker (5555 should suffice)
shaker_port: 5555
# Should choose m1.small or larger
shaker_flavor: m1.small
# Shaker centos image builder template
shaker_centos: "{{shaker_venv}}/lib/python2.7/site-packages/shaker/resources/image_builder_templates/centos.yaml"
# Automates creating a public network that perfkit and shaker utilize
########################################
# Browbeat Network Configuration
########################################
# Public network that perfkit and shaker utilize
browbeat_pub_net_name: browbeat_public
browbeat_pub_subnet: 1.1.1.1/22
browbeat_pub_pool_start: 1.1.1.1
browbeat_pub_pool_end: 1.1.1.1
browbeat_pub_pool_gw: 1.1.1.1
# Browbeat private subnet
# Private subnet
browbeat_pri_net_name: browbeat_private
browbeat_pri_subnet: 172.16.10.0/24
browbeat_pri_pool_start: 172.16.10.2

View File

@ -48,6 +48,7 @@ LoadPlugin uptime
</Plugin>
<Plugin processes>
# Appliance processes
ProcessMatch "evm_server.rb" ".*evm_server\.rb$"
ProcessMatch "evm_watchdog.rb" "/bin/evm_watchdog.rb"
Process "evm:dbsync:replicate"
@ -63,9 +64,11 @@ LoadPlugin uptime
ProcessMatch "MiqWebServiceWorker" "MiqWebServiceWorker.*"
ProcessMatch "MiqReplicationWorker" "MiqReplicationWorker.*"
ProcessMatch "MiqEmsMetricsProcessorWorker" "MiqEmsMetricsProcessorWorker.*"
Processmatch "MiqSmartProxyWorker" "MiqSmartProxyWorker.*"
Processmatch "MiqVimBrokerWorker" "MiqVimBrokerWorker.*"
Processmatch "MiqEmsRefreshCoreWorker" "MiqEmsRefreshCoreWorker.*"
ProcessMatch "MiqSmartProxyWorker" "MiqSmartProxyWorker.*"
ProcessMatch "MiqVimBrokerWorker" "MiqVimBrokerWorker.*"
ProcessMatch "MiqEmsRefreshCoreWorker" "MiqEmsRefreshCoreWorker.*"
ProcessMatch "MiqVmdbStorageBridgeWorker" "MiqVmdbStorageBridgeWorker.*"
# Provider Refresh Workers:
ProcessMatch "Vmware::InfraManager::RefreshWorker" "Vmware::InfraManager::RefreshWorker.*"
@ -75,19 +78,29 @@ LoadPlugin uptime
ProcessMatch "MiqEmsRefreshWorkerVmware" "MiqEmsRefreshWorkerVmware.*"
ProcessMatch "MiqEmsRefreshWorkerRedhat" "MiqEmsRefreshWorkerRedhat.*"
ProcessMatch "MiqEmsRefreshWorkerMicrosoft" "MiqEmsRefreshWorkerMicrosoft.*"
ProcessMatch "AnsibleTower::ConfigurationManager::RefreshWorker" "AnsibleTower::ConfigurationManager::RefreshWorker.*"
ProcessMatch "Foreman::ConfigurationManager::RefreshWorker" "Foreman::ConfigurationManager::RefreshWorker.*"
ProcessMatch "Foreman::ProvisioningManager::RefreshWorker" "Foreman::ProvisioningManager::RefreshWorker.*"
ProcessMatch "MiqEmsRefreshWorkerForemanConfiguration" "MiqEmsRefreshWorkerForemanConfiguration.*"
ProcessMatch "MiqEmsRefreshWorkerForemanProvisioning" "MiqEmsRefreshWorkerForemanProvisioning.*"
ProcessMatch "Amazon::CloudManager::RefreshWorker" "Amazon::CloudManager::RefreshWorker.*"
ProcessMatch "Azure::CloudManager::RefreshWorker" "Azure::CloudManager::RefreshWorker.*"
ProcessMatch "Google::CloudManager::RefreshWorker" "Google::CloudManager::RefreshWorker.*"
ProcessMatch "Openstack::CloudManager::RefreshWorker" "Openstack::CloudManager::RefreshWorker.*"
ProcessMatch "MiqEmsRefreshWorkerAmazon" "MiqEmsRefreshWorkerAmazon.*"
ProcessMatch "MiqEmsRefreshWorkerOpenstack" "MiqEmsRefreshWorkerOpenstack.*"
ProcessMatch "Atomic::ContainerManager::RefreshWorker" "Atomic::ContainerManager::RefreshWorker.*"
ProcessMatch "AtomicEnterprise::ContainerManager::RefreshWorker" "AtomicEnterprise::ContainerManager::RefreshWorker.*"
ProcessMatch "Hawkular::MiddlewareManager::RefreshWorker" "Hawkular::MiddlewareManager::RefreshWorker.*"
ProcessMatch "Kubernetes::ContainerManager::RefreshWorker" "Kubernetes::ContainerManager::RefreshWorker.*"
ProcessMatch "Openshift::ContainerManager::RefreshWorker" "Openshift::ContainerManager::RefreshWorker.*"
ProcessMatch "OpenshiftEnterprise::ContainerManager::RefreshWorker" "OpenshiftEnterprise::ContainerManager::RefreshWorker.*"
ProcessMatch "MiqNetappRefreshWorker" "MiqNetappRefreshWorker.*"
ProcessMatch "MiqSmisRefreshWorker" "MiqSmisRefreshWorker.*"
# Provider EventCatcher Workers:
ProcessMatch "Vmware::InfraManager::EventCatcher" "Vmware::InfraManager::EventCatcher.*"
@ -95,30 +108,41 @@ LoadPlugin uptime
ProcessMatch "Openstack::InfraManager::EventCatcher" "Openstack::InfraManager::EventCatcher.*"
ProcessMatch "MiqEventCatcherVmware" "MiqEventCatcherVmware.*"
ProcessMatch "MiqEventCatcherRedhat" "MiqEventCatcherRedhat.*"
ProcessMatch "Amazon::CloudManager::EventCatcher" "Amazon::CloudManager::EventCatcher.*"
ProcessMatch "Azure::CloudManager::EventCatcher" "Azure::CloudManager::EventCatcher.*"
ProcessMatch "Openstack::CloudManager::EventCatcher" "Openstack::CloudManager::EventCatcher.*"
ProcessMatch "MiqEventCatcherAmazon" "MiqEventCatcherAmazon.*"
ProcessMatch "MiqEventCatcherOpenstack" "MiqEventCatcherOpenstack.*"
ProcessMatch "Atomic::ContainerManager::EventCatcher" "Atomic::ContainerManager::EventCatcher.*"
ProcessMatch "AtomicEnterprise::ContainerManager::EventCatcher" "AtomicEnterprise::ContainerManager::EventCatcher.*"
ProcessMatch "Kubernetes::ContainerManager::EventCatcher" "Kubernetes::ContainerManager::EventCatcher.*"
ProcessMatch "Openshift::ContainerManager::EventCatcher" "Openshift::ContainerManager::EventCatcher.*"
ProcessMatch "OpenshiftEnterprise::ContainerManager::EventCatcher" "OpenshiftEnterprise::ContainerManager::EventCatcher.*"
# Provider MetricsCollector Workers:
ProcessMatch "Vmware::InfraManager::MetricsCollectorWorker" "Vmware::InfraManager::MetricsCollectorWorker.*"
ProcessMatch "Redhat::InfraManager::MetricsCollectorWorker" "Redhat::InfraManager::MetricsCollectorWorker.*"
ProcessMatch "Openstack::InfraManager::MetricsCollectorWorker" "Openstack::InfraManager::MetricsCollectorWorker.*"
ProcessMatch "MiqEmsMetricsCollectorWorkerVmware" "MiqEmsMetricsCollectorWorkerVmware.*"
ProcessMatch "MiqEmsMetricsCollectorWorkerRedhat" "MiqEmsMetricsCollectorWorkerRedhat.*"
ProcessMatch "Amazon::CloudManager::MetricsCollectorWorker" "Amazon::CloudManager::MetricsCollectorWorker.*"
ProcessMatch "Openstack::CloudManager::MetricsCollectorWorker" "Openstack::CloudManager::MetricsCollectorWorker.*"
ProcessMatch "MiqEmsMetricsCollectorWorkerAmazon" "MiqEmsMetricsCollectorWorkerAmazon.*"
ProcessMatch "MiqEmsMetricsCollectorWorkerOpenstack" "MiqEmsMetricsCollectorWorkerOpenstack.*"
ProcessMatch "Atomic::ContainerManager::MetricsCollectorWorker" "Atomic::ContainerManager::MetricsCollectorWorker.*"
ProcessMatch "AtomicEnterprise::ContainerManager::MetricsCollectorWorker" "AtomicEnterprise::ContainerManager::MetricsCollectorWorker.*"
ProcessMatch "Kubernetes::ContainerManager::MetricsCollectorWorker" "Kubernetes::ContainerManager::MetricsCollectorWorker.*"
ProcessMatch "Openshift::ContainerManager::MetricsCollectorWorker" "Openshift::ContainerManager::MetricsCollectorWorker.*"
ProcessMatch "OpenshiftEnterprise::ContainerManager::MetricsCollectorWorker" "OpenshiftEnterprise::ContainerManager::MetricsCollectorWorker.*"
ProcessMatch "MiqStorageMetricsCollectorWorker" "MiqStorageMetricsCollectorWorker.*"
ProcessMatch "collectd" "/usr/sbin/collectd.+-C.+/etc/collectd.conf"
Process "httpd"
Process "memcached"

View File

@ -0,0 +1,26 @@
---
#
# Upload Generic Machine Dashboards to Grafana
#
- name: Remove existing dashboards
command: "curl -X DELETE -H 'Authorization: Bearer {{grafana_api_key}}' -H 'Content-Type: application/json' http://{{grafana_host}}:{{grafana_port}}/api/dashboards/db/{{item.process_list_name|lower}}-general-system-performance"
when: overwrite_existing
with_items: dashboards
- name: Ensure {{role_path}}/files directory exists
file: path={{role_path}}/files state=directory
- name: Generate dashboards
template:
src: "{{item.template_name}}_general_system_performance.json.j2"
dest: "{{role_path}}/files/{{item.process_list_name}}_general_system_performance.json"
with_items: dashboards
- name: Upload dashboards to grafana
command: "curl -X POST -H 'Authorization: Bearer {{grafana_api_key}}' -H 'Content-Type: application/json' -d @{{role_path}}/files/{{item.process_list_name}}_general_system_performance.json http://{{grafana_host}}:{{grafana_port}}/api/dashboards/db"
with_items: dashboards
- name: Remove leftover json file(s)
file: path={{role_path}}/files/{{item.process_list_name}}_general_system_performance.json state=absent
with_items: dashboards

View File

@ -0,0 +1,788 @@
---
#
# Vars to generate Per-Process component of Generic Dashboards
#
per_process_metrics:
- name: "Process/Thread Counts"
y1units: "short"
metrics:
- name: "Processes"
query: ".ps_count.processes"
- name: "Threads"
query: ".ps_count.threads"
- name: "Process CPU"
y1units: "percent"
metrics:
- name: "System"
query: ".ps_cputime.syst"
- name: "User"
query: ".ps_cputime.user"
- name: "Process Memory"
y1units: "bits"
metrics:
- name: "RSS"
query: ".ps_rss"
- name: "Virtual"
query: ".ps_vm"
- name: "Process Page Faults"
y1units: "short"
metrics:
- name: "Majflt"
query: ".ps_pagefaults.majflt"
- name: "Minflt"
query: ".ps_pagefaults.minflt"
- name: "Process IOPs(Estimated via SYSCALLS)"
y1units: "iops"
metrics:
- name: "Read"
query: ".ps_disk_ops.read"
- name: "Write"
query: ".ps_disk_ops.write"
- name: "Process IO Throughput(Estimated via SYSCALLS)"
y1units: "bytes"
metrics:
- name: "Read"
query: ".ps_disk_octets.read"
- name: "Write"
query: ".ps_disk_octets.write"
per_process_panels:
Baremetal:
- name: "httpd"
processes:
- httpd
- name: "Collectd"
processes:
- collectd
Guest:
- name: "httpd"
processes:
- httpd
- name: "Collectd"
processes:
- collectd
# This list aims to be comprehensive to all CFME Workers/Processes
CFME:
- name: "Summerized"
processes:
- ruby
- postgres
- httpd
- name: "Memcached"
processes:
- memcached
- name: "Collectd"
processes:
- collectd
- name: "Appliance"
processes:
- evm_server.rb
- evm_watchdog.rb
- appliance_console.rb
- name: "MiqGenericWorker"
processes:
- MiqGenericWorker
- name: "MiqPriorityWorker"
processes:
- MiqPriorityWorker
- name: "MiqScheduleWorker"
processes:
- MiqScheduleWorker
- name: "MiqUiWorker"
processes:
- MiqUiWorker
- name: "MiqWebServiceWorker"
processes:
- MiqWebServiceWorker
- name: "MiqReportingWorker"
processes:
- MiqReportingWorker
- name: "MiqEventHandler"
processes:
- MiqEventHandler
- name: "MiqSmartProxyWorker"
processes:
- MiqSmartProxyWorker
- name: "MiqReplicationWorker"
processes:
- MiqReplicationWorker
- "evm:dbsync:replicate"
- name: "MiqEmsMetricsProcessorWorker"
processes:
- MiqEmsMetricsProcessorWorker
# VMware Additional Workers:
- name: "MiqVimBrokerWorker"
processes:
- MiqVimBrokerWorker
- name: "MiqEmsRefreshCoreWorker"
processes:
- MiqEmsRefreshCoreWorker
- name: "MiqVmdbStorageBridgeWorker"
processes:
- MiqVmdbStorageBridgeWorker
# Refresh Workers:
- name: "Vmware::InfraManager::RefreshWorker"
processes:
- "Vmware::InfraManager::RefreshWorker"
- "MiqEmsRefreshWorkerVmware"
- name: "Redhat::InfraManager::RefreshWorker"
processes:
- "Redhat::InfraManager::RefreshWorker"
- "MiqEmsRefreshWorkerRedhat"
- name: "Microsoft::InfraManager::RefreshWorker"
processes:
- "Microsoft::InfraManager::RefreshWorker"
- "MiqEmsRefreshWorkerMicrosoft"
- name: "Openstack::InfraManager::RefreshWorker"
processes:
- "Openstack::InfraManager::RefreshWorker"
- name: "AnsibleTower::ConfigurationManager::RefreshWorker"
processes:
- "AnsibleTower::ConfigurationManager::RefreshWorker"
- name: "Foreman RefreshWorkers"
processes:
- "Foreman::ConfigurationManager::RefreshWorker"
- "MiqEmsRefreshWorkerForemanConfiguration"
- "Foreman::ProvisioningManager::RefreshWorker"
- "MiqEmsRefreshWorkerForemanProvisioning"
- name: "Amazon::CloudManager::RefreshWorker"
processes:
- "Amazon::CloudManager::RefreshWorker"
- "MiqEmsRefreshWorkerAmazon"
- name: "Azure::CloudManager::RefreshWorker"
processes:
- "Azure::CloudManager::RefreshWorker"
- name: "Google::CloudManager::RefreshWorker"
processes:
- "Google::CloudManager::RefreshWorker"
- name: "Openstack::CloudManager::RefreshWorker"
processes:
- "Openstack::CloudManager::RefreshWorker"
- "MiqEmsRefreshWorkerOpenstack"
- name: "Atomic::ContainerManager::RefreshWorker"
processes:
- "Atomic::ContainerManager::RefreshWorker"
- name: "AtomicEnterprise::ContainerManager::RefreshWorker"
processes:
- "AtomicEnterprise::ContainerManager::RefreshWorker"
- name: "Hawkular::MiddlewareManager::RefreshWorker"
processes:
- "Hawkular::MiddlewareManager::RefreshWorker"
- name: "Kubernetes::ContainerManager::RefreshWorker"
processes:
- "Kubernetes::ContainerManager::RefreshWorker"
- name: "Openshift::ContainerManager::RefreshWorker"
processes:
- "Openshift::ContainerManager::RefreshWorker"
- name: "OpenshiftEnterprise::ContainerManager::RefreshWorker"
processes:
- "OpenshiftEnterprise::ContainerManager::RefreshWorker"
- name: "MiqNetappRefreshWorker"
processes:
- "MiqNetappRefreshWorker"
- name: "MiqSmisRefreshWorker"
processes:
- "MiqSmisRefreshWorker"
# Event Catchers:
- name: "Vmware::InfraManager::EventCatcher"
processes:
- "Vmware::InfraManager::EventCatcher"
- "MiqEventCatcherVmware"
- name: "Redhat::InfraManager::EventCatcher"
processes:
- "Redhat::InfraManager::EventCatcher"
- "MiqEventCatcherRedhat"
- name: "Openstack::InfraManager::EventCatcher"
processes:
- "Openstack::InfraManager::EventCatcher"
- name: "Amazon::CloudManager::EventCatcher"
processes:
- "Amazon::CloudManager::EventCatcher"
- "MiqEventCatcherAmazon"
- name: "Azure::CloudManager::EventCatcher"
processes:
- "Azure::CloudManager::EventCatcher"
- name: "Openstack::CloudManager::EventCatcher"
processes:
- "Openstack::CloudManager::EventCatcher"
- "MiqEventCatcherOpenstack"
- name: "Atomic::ContainerManager::EventCatcher"
processes:
- "Atomic::ContainerManager::EventCatcher"
- name: "AtomicEnterprise::ContainerManager::EventCatcher"
processes:
- "AtomicEnterprise::ContainerManager::EventCatcher"
- name: "Kubernetes::ContainerManager::EventCatcher"
processes:
- "Kubernetes::ContainerManager::EventCatcher"
- name: "Openshift::ContainerManager::EventCatcher"
processes:
- "Openshift::ContainerManager::EventCatcher"
- name: "OpenshiftEnterprise::ContainerManager::EventCatcher"
processes:
- "OpenshiftEnterprise::ContainerManager::EventCatcher"
# Metrics Collector Workers
- name: "Vmware::InfraManager::MetricsCollectorWorker"
processes:
- "Vmware::InfraManager::MetricsCollectorWorker"
- "MiqMetricsCollectorWorkerVmware"
- name: "Redhat::InfraManager::MetricsCollectorWorker"
processes:
- "Redhat::InfraManager::MetricsCollectorWorker"
- "MiqMetricsCollectorWorkerRedhat"
- name: "Openstack::InfraManager::MetricsCollectorWorker"
processes:
- "Openstack::InfraManager::MetricsCollectorWorker"
- name: "Amazon::CloudManager::MetricsCollectorWorker"
processes:
- "Amazon::CloudManager::MetricsCollectorWorker"
- "MiqMetricsCollectorWorkerAmazon"
- name: "Openstack::CloudManager::MetricsCollectorWorker"
processes:
- "Openstack::CloudManager::MetricsCollectorWorker"
- "MiqMetricsCollectorWorkerOpenstack"
- name: "Atomic::ContainerManager::MetricsCollectorWorker"
processes:
- "Atomic::ContainerManager::MetricsCollectorWorker"
- name: "AtomicEnterprise::ContainerManager::MetricsCollectorWorker"
processes:
- "AtomicEnterprise::ContainerManager::MetricsCollectorWorker"
- name: "Kubernetes::ContainerManager::MetricsCollectorWorker"
processes:
- "Kubernetes::ContainerManager::MetricsCollectorWorker"
- name: "Openshift::ContainerManager::MetricsCollectorWorker"
processes:
- "Openshift::ContainerManager::MetricsCollectorWorker"
- name: "OpenshiftEnterprise::ContainerManager::MetricsCollectorWorker"
processes:
- "OpenshiftEnterprise::ContainerManager::MetricsCollectorWorker"
- name: "MiqStorageMetricsCollectorWorker"
processes:
- "MiqStorageMetricsCollectorWorker"
CFME-Amazon:
- name: "Summerized"
processes:
- ruby
- postgres
- httpd
- name: "Memcached"
processes:
- memcached
- name: "collectd"
processes:
- collectd
- name: "Appliance"
processes:
- evm_server.rb
- evm_watchdog.rb
- appliance_console.rb
- name: "MiqGenericWorker"
processes:
- MiqGenericWorker
- name: "MiqPriorityWorker"
processes:
- MiqPriorityWorker
- name: "MiqScheduleWorker"
processes:
- MiqScheduleWorker
- name: "MiqUiWorker"
processes:
- MiqUiWorker
- name: "MiqWebServiceWorker"
processes:
- MiqWebServiceWorker
- name: "MiqReportingWorker"
processes:
- MiqReportingWorker
- name: "MiqEventHandler"
processes:
- MiqEventHandler
- name: "MiqSmartProxyWorker"
processes:
- MiqSmartProxyWorker
- name: "MiqReplicationWorker"
processes:
- MiqReplicationWorker
- "evm:dbsync:replicate"
- name: "MiqEmsMetricsProcessorWorker"
processes:
- MiqEmsMetricsProcessorWorker
- name: "Amazon::CloudManager::RefreshWorker"
processes:
- "Amazon::CloudManager::RefreshWorker"
- "MiqEmsRefreshWorkerAmazon"
- name: "Amazon::CloudManager::EventCatcher"
processes:
- "Amazon::CloudManager::EventCatcher"
- "MiqEventCatcherAmazon"
- name: "Amazon::CloudManager::MetricsCollectorWorker"
processes:
- "Amazon::CloudManager::MetricsCollectorWorker"
- "MiqMetricsCollectorWorkerAmazon"
CFME-Azure:
- name: "Summerized"
processes:
- ruby
- postgres
- httpd
- name: "Memcached"
processes:
- memcached
- name: "collectd"
processes:
- collectd
- name: "Appliance"
processes:
- evm_server.rb
- evm_watchdog.rb
- appliance_console.rb
- name: "MiqGenericWorker"
processes:
- MiqGenericWorker
- name: "MiqPriorityWorker"
processes:
- MiqPriorityWorker
- name: "MiqScheduleWorker"
processes:
- MiqScheduleWorker
- name: "MiqUiWorker"
processes:
- MiqUiWorker
- name: "MiqWebServiceWorker"
processes:
- MiqWebServiceWorker
- name: "MiqReportingWorker"
processes:
- MiqReportingWorker
- name: "MiqEventHandler"
processes:
- MiqEventHandler
- name: "MiqSmartProxyWorker"
processes:
- MiqSmartProxyWorker
- name: "MiqReplicationWorker"
processes:
- MiqReplicationWorker
- "evm:dbsync:replicate"
- name: "MiqEmsMetricsProcessorWorker"
processes:
- MiqEmsMetricsProcessorWorker
- name: "Azure::CloudManager::RefreshWorker"
processes:
- "Azure::CloudManager::RefreshWorker"
- name: "Azure::CloudManager::EventCatcher"
processes:
- "Azure::CloudManager::EventCatcher"
CFME-Containers:
- name: "Summerized"
processes:
- ruby
- postgres
- httpd
- name: "Memcached"
processes:
- memcached
- name: "collectd"
processes:
- collectd
- name: "Appliance"
processes:
- evm_server.rb
- evm_watchdog.rb
- appliance_console.rb
- name: "MiqGenericWorker"
processes:
- MiqGenericWorker
- name: "MiqPriorityWorker"
processes:
- MiqPriorityWorker
- name: "MiqScheduleWorker"
processes:
- MiqScheduleWorker
- name: "MiqUiWorker"
processes:
- MiqUiWorker
- name: "MiqWebServiceWorker"
processes:
- MiqWebServiceWorker
- name: "MiqReportingWorker"
processes:
- MiqReportingWorker
- name: "MiqEventHandler"
processes:
- MiqEventHandler
- name: "MiqSmartProxyWorker"
processes:
- MiqSmartProxyWorker
- name: "MiqReplicationWorker"
processes:
- MiqReplicationWorker
- "evm:dbsync:replicate"
- name: "MiqEmsMetricsProcessorWorker"
processes:
- MiqEmsMetricsProcessorWorker
# Refresh Workers:
- name: "Atomic::ContainerManager::RefreshWorker"
processes:
- "Atomic::ContainerManager::RefreshWorker"
- name: "AtomicEnterprise::ContainerManager::RefreshWorker"
processes:
- "AtomicEnterprise::ContainerManager::RefreshWorker"
- name: "Hawkular::MiddlewareManager::RefreshWorker"
processes:
- "Hawkular::MiddlewareManager::RefreshWorker"
- name: "Kubernetes::ContainerManager::RefreshWorker"
processes:
- "Kubernetes::ContainerManager::RefreshWorker"
- name: "Openshift::ContainerManager::RefreshWorker"
processes:
- "Openshift::ContainerManager::RefreshWorker"
- name: "OpenshiftEnterprise::ContainerManager::RefreshWorker"
processes:
- "OpenshiftEnterprise::ContainerManager::RefreshWorker"
# Event Catchers:
- name: "Atomic::ContainerManager::EventCatcher"
processes:
- "Atomic::ContainerManager::EventCatcher"
- name: "AtomicEnterprise::ContainerManager::EventCatcher"
processes:
- "AtomicEnterprise::ContainerManager::EventCatcher"
- name: "Kubernetes::ContainerManager::EventCatcher"
processes:
- "Kubernetes::ContainerManager::EventCatcher"
- name: "Openshift::ContainerManager::EventCatcher"
processes:
- "Openshift::ContainerManager::EventCatcher"
- name: "OpenshiftEnterprise::ContainerManager::EventCatcher"
processes:
- "OpenshiftEnterprise::ContainerManager::EventCatcher"
# Metrics Collector Workers
- name: "Atomic::ContainerManager::MetricsCollectorWorker"
processes:
- "Atomic::ContainerManager::MetricsCollectorWorker"
- name: "AtomicEnterprise::ContainerManager::MetricsCollectorWorker"
processes:
- "AtomicEnterprise::ContainerManager::MetricsCollectorWorker"
- name: "Kubernetes::ContainerManager::MetricsCollectorWorker"
processes:
- "Kubernetes::ContainerManager::MetricsCollectorWorker"
- name: "Openshift::ContainerManager::MetricsCollectorWorker"
processes:
- "Openshift::ContainerManager::MetricsCollectorWorker"
- name: "OpenshiftEnterprise::ContainerManager::MetricsCollectorWorker"
processes:
- "OpenshiftEnterprise::ContainerManager::MetricsCollectorWorker"
CFME-Microsoft:
- name: "Summerized"
processes:
- ruby
- postgres
- httpd
- name: "Memcached"
processes:
- memcached
- name: "collectd"
processes:
- collectd
- name: "Appliance"
processes:
- evm_server.rb
- evm_watchdog.rb
- appliance_console.rb
- name: "MiqGenericWorker"
processes:
- MiqGenericWorker
- name: "MiqPriorityWorker"
processes:
- MiqPriorityWorker
- name: "MiqScheduleWorker"
processes:
- MiqScheduleWorker
- name: "MiqUiWorker"
processes:
- MiqUiWorker
- name: "MiqWebServiceWorker"
processes:
- MiqWebServiceWorker
- name: "MiqReportingWorker"
processes:
- MiqReportingWorker
- name: "MiqEventHandler"
processes:
- MiqEventHandler
- name: "MiqSmartProxyWorker"
processes:
- MiqSmartProxyWorker
- name: "MiqReplicationWorker"
processes:
- MiqReplicationWorker
- "evm:dbsync:replicate"
- name: "MiqEmsMetricsProcessorWorker"
processes:
- MiqEmsMetricsProcessorWorker
- name: "Microsoft::InfraManager::RefreshWorker"
processes:
- "Microsoft::InfraManager::RefreshWorker"
- "MiqEmsRefreshWorkerMicrosoft"
CFME-Openstack:
- name: "Summerized"
processes:
- ruby
- postgres
- httpd
- name: "Memcached"
processes:
- memcached
- name: "collectd"
processes:
- collectd
- name: "Appliance"
processes:
- evm_server.rb
- evm_watchdog.rb
- appliance_console.rb
- name: "MiqGenericWorker"
processes:
- MiqGenericWorker
- name: "MiqPriorityWorker"
processes:
- MiqPriorityWorker
- name: "MiqScheduleWorker"
processes:
- MiqScheduleWorker
- name: "MiqUiWorker"
processes:
- MiqUiWorker
- name: "MiqWebServiceWorker"
processes:
- MiqWebServiceWorker
- name: "MiqReportingWorker"
processes:
- MiqReportingWorker
- name: "MiqEventHandler"
processes:
- MiqEventHandler
- name: "MiqSmartProxyWorker"
processes:
- MiqSmartProxyWorker
- name: "MiqReplicationWorker"
processes:
- MiqReplicationWorker
- "evm:dbsync:replicate"
- name: "MiqEmsMetricsProcessorWorker"
processes:
- MiqEmsMetricsProcessorWorker
- name: "Openstack::InfraManager::RefreshWorker"
processes:
- "Openstack::InfraManager::RefreshWorker"
- name: "Openstack::CloudManager::RefreshWorker"
processes:
- "Openstack::CloudManager::RefreshWorker"
- "MiqEmsRefreshWorkerOpenstack"
- name: "Openstack::InfraManager::EventCatcher"
processes:
- "Openstack::InfraManager::EventCatcher"
- name: "Openstack::CloudManager::EventCatcher"
processes:
- "Openstack::CloudManager::EventCatcher"
- "MiqEventCatcherOpenstack"
- name: "Openstack::InfraManager::MetricsCollectorWorker"
processes:
- "Openstack::InfraManager::MetricsCollectorWorker"
- name: "Openstack::CloudManager::MetricsCollectorWorker"
processes:
- "Openstack::CloudManager::MetricsCollectorWorker"
- "MiqMetricsCollectorWorkerOpenstack"
CFME-RedHat:
- name: "Summerized"
processes:
- ruby
- postgres
- httpd
- name: "Memcached"
processes:
- memcached
- name: "collectd"
processes:
- collectd
- name: "Appliance"
processes:
- evm_server.rb
- evm_watchdog.rb
- appliance_console.rb
- name: "MiqGenericWorker"
processes:
- MiqGenericWorker
- name: "MiqPriorityWorker"
processes:
- MiqPriorityWorker
- name: "MiqScheduleWorker"
processes:
- MiqScheduleWorker
- name: "MiqUiWorker"
processes:
- MiqUiWorker
- name: "MiqWebServiceWorker"
processes:
- MiqWebServiceWorker
- name: "MiqReportingWorker"
processes:
- MiqReportingWorker
- name: "MiqEventHandler"
processes:
- MiqEventHandler
- name: "MiqSmartProxyWorker"
processes:
- MiqSmartProxyWorker
- name: "MiqReplicationWorker"
processes:
- MiqReplicationWorker
- "evm:dbsync:replicate"
- name: "MiqEmsMetricsProcessorWorker"
processes:
- MiqEmsMetricsProcessorWorker
- name: "Redhat::InfraManager::RefreshWorker"
processes:
- "Redhat::InfraManager::RefreshWorker"
- "MiqEmsRefreshWorkerRedhat"
- name: "Redhat::InfraManager::EventCatcher"
processes:
- "Redhat::InfraManager::EventCatcher"
- "MiqEventCatcherRedhat"
- name: "Redhat::InfraManager::MetricsCollectorWorker"
processes:
- "Redhat::InfraManager::MetricsCollectorWorker"
- "MiqMetricsCollectorWorkerRedhat"
CFME-VMware:
- name: "Summerized"
processes:
- ruby
- postgres
- httpd
- name: "Memcached"
processes:
- memcached
- name: "collectd"
processes:
- collectd
- name: "Appliance"
processes:
- evm_server.rb
- evm_watchdog.rb
- appliance_console.rb
- name: "MiqGenericWorker"
processes:
- MiqGenericWorker
- name: "MiqPriorityWorker"
processes:
- MiqPriorityWorker
- name: "MiqScheduleWorker"
processes:
- MiqScheduleWorker
- name: "MiqUiWorker"
processes:
- MiqUiWorker
- name: "MiqWebServiceWorker"
processes:
- MiqWebServiceWorker
- name: "MiqReportingWorker"
processes:
- MiqReportingWorker
- name: "MiqEventHandler"
processes:
- MiqEventHandler
- name: "MiqSmartProxyWorker"
processes:
- MiqSmartProxyWorker
- name: "MiqReplicationWorker"
processes:
- MiqReplicationWorker
- "evm:dbsync:replicate"
- name: "MiqEmsMetricsProcessorWorker"
processes:
- MiqEmsMetricsProcessorWorker
- name: "MiqVimBrokerWorker"
processes:
- MiqVimBrokerWorker
- name: "MiqEmsRefreshCoreWorker"
processes:
- MiqEmsRefreshCoreWorker
- name: "Vmware::InfraManager::RefreshWorker"
processes:
- "Vmware::InfraManager::RefreshWorker"
- "MiqEmsRefreshWorkerVmware"
- name: "Vmware::InfraManager::EventCatcher"
processes:
- "Vmware::InfraManager::EventCatcher"
- "MiqEventCatcherVmware"
- name: "Vmware::InfraManager::MetricsCollectorWorker"
processes:
- "Vmware::InfraManager::MetricsCollectorWorker"
- "MiqMetricsCollectorWorkerVmware"
Graphite:
- name: "Summerized"
processes:
- carbon-cache
- grafana-server
- httpd
- name: "Carbon"
processes:
- carbon-cache
- name: "Grafana"
processes:
- grafana-server
- name: "httpd"
processes:
- httpd
- name: "Collectd"
processes:
- collectd
Satellite6:
- name: "Summerized"
processes:
- httpd
- ruby
- name: "DynFlow"
processes:
- dynflow_executor
- dynflow_executor_monitor
- name: "ElasticSearch"
processes:
- Elasticsearch
- name: "Foreman-SmartProxy"
processes:
- Foreman-SmartProxy
- name: "Mongodb"
processes:
- Mongodb
- name: "Passenger"
processes:
- Passenger-Forman
- Passenger-Puppet
- PassengerHelperAgent
- PassengerLoggingAgent
- PassengerWatchdog
- name: "Postgres"
processes:
- postgres
- name: "Pulp"
processes:
- Pulp-Scheduler
- Pulp-Resource-Manager
- Pulp-Resource-Worker
- name: "Puppet-Agent"
processes:
- Puppet-Agent
- name: "Qpidd Dispatch Router"
processes:
- qdrouterd
- name: "Qpidd"
processes:
- qpidd
- name: "Tomcat"
processes:
- Tomcat
- name: "Collectd"
processes:
- collectd

View File

@ -1,7 +1,7 @@
{
"dashboard": {
"id": null,
"title": "Openstack Cloud System Performance Comparsion",
"title": "Cloud System Performance Comparsion",
"tags": [],
"style": "dark",
"timezone": "browser",

View File

@ -0,0 +1,43 @@
---
#
# Generate Openstack collectd to graphite dashboards
#
- name: Generate All Openstack Nodes CPU/Memory/Disk/Network Dashboards
template:
src: "{{item}}.json.j2"
dest: "{{role_path}}/files/{{item}}.json"
with_items:
- all_cpu_graphs
- all_memory_graphs
- all_disk_graphs
- all_network_graphs
- name: Remove Existing Dashboards
command: "curl -X DELETE -H 'Authorization: Bearer {{grafana_api_key}}' -H 'Content-Type: application/json' http://{{grafana_host}}:{{grafana_port}}/api/dashboards/db/{{item}}"
when: overwrite_existing
with_items:
- "{{dashboard_cloud_name}}-all-nodes-cpu"
- "{{dashboard_cloud_name}}-all-nodes-memory"
- "{{dashboard_cloud_name}}-all-nodes-disk"
- "{{dashboard_cloud_name}}-all-nodes-network"
- openstack-general-system-performance
- cloud-system-performance-comparsion
- name: Upload Dashboards to Grafana
command: "curl -X POST -H 'Authorization: Bearer {{grafana_api_key}}' -H 'Content-Type: application/json' -d @{{item}} http://{{grafana_host}}:{{grafana_port}}/api/dashboards/db"
with_items:
- "{{role_path}}/files/all_cpu_graphs.json"
- "{{role_path}}/files/all_memory_graphs.json"
- "{{role_path}}/files/all_disk_graphs.json"
- "{{role_path}}/files/all_network_graphs.json"
- "{{role_path}}/files/openstack_general_system_performance.json"
- "{{role_path}}/files/cloud_system_performance_comparsion.json"
- name: Remove leftover json file(s)
file: path={{item}} state=absent
with_items:
- "{{role_path}}/files/all_cpu_graphs.json"
- "{{role_path}}/files/all_memory_graphs.json"
- "{{role_path}}/files/all_disk_graphs.json"
- "{{role_path}}/files/all_network_graphs.json"

View File

@ -1,11 +1,11 @@
{% set vars = {'panel_idx': 0, 'inital': 0} %}
{% set vars = {'panel_idx': 0, 'initial': 0} %}
{% set dashboard_groups = ['undercloud', 'controller', 'ceph', 'compute'] %}
{
"dashboard": {
"id": null,
"title": "{{item.prefix}} - All Nodes CPU",
"title": "{{dashboard_cloud_name}} - All Nodes CPU",
"tags": [
"{{item.prefix}}"
"{{dashboard_cloud_name}}"
],
"style": "dark",
"timezone": "browser",
@ -16,8 +16,8 @@
{% for group in dashboard_groups %}
{% if group in groups %}
{% for batched_hosts in groups[group]|hosts_to_dictionary|dictsort|batch(dashboards_batch) %}
{% if vars.inital == 0 %}
{% if vars.update({'inital': (vars.inital + 1)}) %} {% endif %}
{% if vars.initial == 0 %}
{% if vars.update({'initial': (vars.initial + 1)}) %} {% endif %}
{% else %}
},
{% endif %}
@ -75,35 +75,35 @@
"targets": [
{
"refId": "A",
"target": "alias(averageSeries({{item.prefix}}.{{host}}.cpu-*.cpu-system), 'System')"
"target": "alias(averageSeries({{dashboard_cloud_name}}.{{host}}.cpu-*.cpu-system), 'System')"
},
{
"refId": "B",
"target": "alias(averageSeries({{item.prefix}}.{{host}}.cpu-*.cpu-user), 'User')"
"target": "alias(averageSeries({{dashboard_cloud_name}}.{{host}}.cpu-*.cpu-user), 'User')"
},
{
"refId": "C",
"target": "alias(averageSeries({{item.prefix}}.{{host}}.cpu-*.cpu-nice), 'Nice')"
"target": "alias(averageSeries({{dashboard_cloud_name}}.{{host}}.cpu-*.cpu-nice), 'Nice')"
},
{
"refId": "D",
"target": "alias(averageSeries({{item.prefix}}.{{host}}.cpu-*.cpu-steal), 'Steal')"
"target": "alias(averageSeries({{dashboard_cloud_name}}.{{host}}.cpu-*.cpu-steal), 'Steal')"
},
{
"refId": "E",
"target": "alias(averageSeries({{item.prefix}}.{{host}}.cpu-*.cpu-softirq), 'SoftIRQ')"
"target": "alias(averageSeries({{dashboard_cloud_name}}.{{host}}.cpu-*.cpu-softirq), 'SoftIRQ')"
},
{
"refId": "F",
"target": "alias(averageSeries({{item.prefix}}.{{host}}.cpu-*.cpu-interrupt), 'Interrupt')"
"target": "alias(averageSeries({{dashboard_cloud_name}}.{{host}}.cpu-*.cpu-interrupt), 'Interrupt')"
},
{
"refId": "G",
"target": "alias(averageSeries({{item.prefix}}.{{host}}.cpu-*.cpu-wait), 'Wait')"
"target": "alias(averageSeries({{dashboard_cloud_name}}.{{host}}.cpu-*.cpu-wait), 'Wait')"
},
{
"refId": "H",
"target": "alias(averageSeries({{item.prefix}}.{{host}}.cpu-*.cpu-idle), 'Idle')"
"target": "alias(averageSeries({{dashboard_cloud_name}}.{{host}}.cpu-*.cpu-idle), 'Idle')"
}
],
"timeFrom": null,
@ -181,11 +181,11 @@
{
"icon": "external link",
"tags": [
"{{item.prefix}}"
"{{dashboard_cloud_name}}"
],
"type": "dashboards",
"asDropdown": true,
"title": "{{item.prefix}} Dashboards"
"title": "{{dashboard_cloud_name}} Dashboards"
}
],
"overwrite": true

View File

@ -1,11 +1,11 @@
{% set vars = {'panel_idx': 0, 'inital': 0, 'initial2': 0} %}
{% set vars = {'panel_idx': 0, 'initial': 0, 'initial2': 0} %}
{% set dashboard_groups = ['undercloud', 'controller', 'ceph', 'compute'] %}
{
"dashboard": {
"id": null,
"title": "{{item.prefix}} - All Nodes Disk",
"title": "{{dashboard_cloud_name}} - All Nodes Disk",
"tags": [
"{{item.prefix}}"
"{{dashboard_cloud_name}}"
],
"style": "dark",
"timezone": "browser",
@ -16,8 +16,8 @@
{% for group in dashboard_groups %}
{% if group in groups %}
{% for batched_hosts in groups[group]|hosts_to_dictionary|dictsort|batch(dashboards_batch) %}
{% if vars.inital == 0 %}
{% if vars.update({'inital': (vars.inital + 1)}) %} {% endif %}
{% if vars.initial == 0 %}
{% if vars.update({'initial': (vars.initial + 1)}) %} {% endif %}
{% else %}
},
{% endif %}
@ -80,11 +80,11 @@
"targets": [
{
"refId": "A",
"target": "alias({{item.prefix}}.{{host}}.${{group}}_disk.disk_ops.read, 'Read')"
"target": "alias({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_ops.read, 'Read')"
},
{
"refId": "B",
"target": "alias({{item.prefix}}.{{host}}.${{group}}_disk.disk_ops.write, 'Write')"
"target": "alias({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_ops.write, 'Write')"
}
],
"timeFrom": null,
@ -187,11 +187,11 @@
"targets": [
{
"refId": "A",
"target": "alias({{item.prefix}}.{{host}}.${{group}}_disk.disk_octets.read, 'Read')"
"target": "alias({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_octets.read, 'Read')"
},
{
"refId": "B",
"target": "alias({{item.prefix}}.{{host}}.${{group}}_disk.disk_octets.write, 'Write')"
"target": "alias({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_octets.write, 'Write')"
}
],
"timeFrom": null,
@ -271,7 +271,7 @@
"multiFormat": "glob",
"name": "undercloud_disk",
"options": [],
"query": "{{item.prefix}}.*undercloud*.disk-*",
"query": "{{dashboard_cloud_name}}.*undercloud*.disk-*",
"refresh": true,
"type": "query"
},
@ -287,7 +287,7 @@
"multiFormat": "glob",
"name": "controller_disk",
"options": [],
"query": "{{item.prefix}}.*controller*.disk-*",
"query": "{{dashboard_cloud_name}}.*controller*.disk-*",
"refresh": true,
"type": "query"
},
@ -304,7 +304,7 @@
"multiFormat": "glob",
"name": "ceph_disk",
"options": [],
"query": "{{item.prefix}}.*ceph*.disk-*",
"query": "{{dashboard_cloud_name}}.*ceph*.disk-*",
"refresh": true,
"type": "query"
},
@ -320,7 +320,7 @@
"multiFormat": "glob",
"name": "compute_disk",
"options": [],
"query": "{{item.prefix}}.*compute*.disk-*",
"query": "{{dashboard_cloud_name}}.*compute*.disk-*",
"refresh": true,
"type": "query"
}
@ -335,11 +335,11 @@
{
"icon": "external link",
"tags": [
"{{item.prefix}}"
"{{dashboard_cloud_name}}"
],
"type": "dashboards",
"asDropdown": true,
"title": "{{item.prefix}} Dashboards"
"title": "{{dashboard_cloud_name}} Dashboards"
}
],
"overwrite": true

View File

@ -1,11 +1,11 @@
{% set vars = {'panel_idx': 0, 'inital': 0} %}
{% set vars = {'panel_idx': 0, 'initial': 0} %}
{% set dashboard_groups = ['undercloud', 'controller', 'ceph', 'compute'] %}
{
"dashboard": {
"id": null,
"title": "{{item.prefix}} - All Nodes Memory",
"title": "{{dashboard_cloud_name}} - All Nodes Memory",
"tags": [
"{{item.prefix}}"
"{{dashboard_cloud_name}}"
],
"style": "dark",
"timezone": "browser",
@ -16,8 +16,8 @@
{% for group in dashboard_groups %}
{% if group in groups %}
{% for batched_hosts in groups[group]|hosts_to_dictionary|dictsort|batch(dashboards_batch) %}
{% if vars.inital == 0 %}
{% if vars.update({'inital': (vars.inital + 1)}) %} {% endif %}
{% if vars.initial == 0 %}
{% if vars.update({'initial': (vars.initial + 1)}) %} {% endif %}
{% else %}
},
{% endif %}
@ -75,27 +75,27 @@
"targets": [
{
"refId": "A",
"target": "alias({{item.prefix}}.{{host}}.memory.memory-slab_unrecl, 'Slab Unrecl')"
"target": "alias({{dashboard_cloud_name}}.{{host}}.memory.memory-slab_unrecl, 'Slab Unrecl')"
},
{
"refId": "B",
"target": "alias({{item.prefix}}.{{host}}.memory.memory-used, 'Used')"
"target": "alias({{dashboard_cloud_name}}.{{host}}.memory.memory-used, 'Used')"
},
{
"refId": "C",
"target": "alias({{item.prefix}}.{{host}}.memory.memory-buffered, 'Buffered')"
"target": "alias({{dashboard_cloud_name}}.{{host}}.memory.memory-buffered, 'Buffered')"
},
{
"refId": "D",
"target": "alias({{item.prefix}}.{{host}}.memory.memory-slab_recl, 'Slab Recl')"
"target": "alias({{dashboard_cloud_name}}.{{host}}.memory.memory-slab_recl, 'Slab Recl')"
},
{
"refId": "E",
"target": "alias({{item.prefix}}.{{host}}.memory.memory-cached, 'Cached')"
"target": "alias({{dashboard_cloud_name}}.{{host}}.memory.memory-cached, 'Cached')"
},
{
"refId": "F",
"target": "alias({{item.prefix}}.{{host}}.memory.memory-free, 'Free')"
"target": "alias({{dashboard_cloud_name}}.{{host}}.memory.memory-free, 'Free')"
}
],
"timeFrom": null,
@ -173,11 +173,11 @@
{
"icon": "external link",
"tags": [
"{{item.prefix}}"
"{{dashboard_cloud_name}}"
],
"type": "dashboards",
"asDropdown": true,
"title": "{{item.prefix}} Dashboards"
"title": "{{dashboard_cloud_name}} Dashboards"
}
],
"overwrite": true

View File

@ -1,11 +1,11 @@
{% set vars = {'panel_idx': 0, 'inital': 0, 'initial2': 0} %}
{% set vars = {'panel_idx': 0, 'initial': 0, 'initial2': 0} %}
{% set dashboard_groups = ['undercloud', 'controller', 'ceph', 'compute'] %}
{
"dashboard": {
"id": null,
"title": "{{item.prefix}} - All Nodes Network",
"title": "{{dashboard_cloud_name}} - All Nodes Network",
"tags": [
"{{item.prefix}}"
"{{dashboard_cloud_name}}"
],
"style": "dark",
"timezone": "browser",
@ -16,8 +16,8 @@
{% for group in dashboard_groups %}
{% if group in groups %}
{% for batched_hosts in groups[group]|hosts_to_dictionary|dictsort|batch(dashboards_batch) %}
{% if vars.inital == 0 %}
{% if vars.update({'inital': (vars.inital + 1)}) %} {% endif %}
{% if vars.initial == 0 %}
{% if vars.update({'initial': (vars.initial + 1)}) %} {% endif %}
{% else %}
},
{% endif %}
@ -80,11 +80,11 @@
"targets": [
{
"refId": "A",
"target": "alias({{item.prefix}}.{{host}}.${{group}}_interface.if_packets.tx, 'TX')"
"target": "alias({{dashboard_cloud_name}}.{{host}}.${{group}}_interface.if_packets.tx, 'TX')"
},
{
"refId": "B",
"target": "alias({{item.prefix}}.{{host}}.${{group}}_interface.if_packets.rx, 'RX')"
"target": "alias({{dashboard_cloud_name}}.{{host}}.${{group}}_interface.if_packets.rx, 'RX')"
}
],
"timeFrom": null,
@ -187,11 +187,11 @@
"targets": [
{
"refId": "A",
"target": "alias({{item.prefix}}.{{host}}.${{group}}_interface.if_octets.tx, 'TX')"
"target": "alias({{dashboard_cloud_name}}.{{host}}.${{group}}_interface.if_octets.tx, 'TX')"
},
{
"refId": "B",
"target": "alias({{item.prefix}}.{{host}}.${{group}}_interface.if_octets.rx, 'RX')"
"target": "alias({{dashboard_cloud_name}}.{{host}}.${{group}}_interface.if_octets.rx, 'RX')"
}
],
"timeFrom": null,
@ -271,7 +271,7 @@
"multiFormat": "glob",
"name": "undercloud_interface",
"options": [],
"query": "{{item.prefix}}.*undercloud*.interface-*",
"query": "{{dashboard_cloud_name}}.*undercloud*.interface-*",
"refresh": true,
"type": "query"
},
@ -287,7 +287,7 @@
"multiFormat": "glob",
"name": "controller_interface",
"options": [],
"query": "{{item.prefix}}.*controller*.interface-*",
"query": "{{dashboard_cloud_name}}.*controller*.interface-*",
"refresh": true,
"type": "query"
},
@ -304,7 +304,7 @@
"multiFormat": "glob",
"name": "ceph_interface",
"options": [],
"query": "{{item.prefix}}.*ceph*.interface-*",
"query": "{{dashboard_cloud_name}}.*ceph*.interface-*",
"refresh": true,
"type": "query"
},
@ -320,7 +320,7 @@
"multiFormat": "glob",
"name": "compute_interface",
"options": [],
"query": "{{item.prefix}}.*compute*.interface-*",
"query": "{{dashboard_cloud_name}}.*compute*.interface-*",
"refresh": true,
"type": "query"
}
@ -335,11 +335,11 @@
{
"icon": "external link",
"tags": [
"{{item.prefix}}"
"{{dashboard_cloud_name}}"
],
"type": "dashboards",
"asDropdown": true,
"title": "{{item.prefix}} Dashboards"
"title": "{{dashboard_cloud_name}} Dashboards"
}
],
"overwrite": true

View File

@ -1,87 +0,0 @@
---
#
# Generate Dashboards for all Hosts and upload them into Grafana
#
- name: Generate All Nodes CPU Dashboard
template:
src: all_cpu_graphs.json.j2
dest: "{{ home_dir }}/all_cpu_graphs.json"
owner: "{{ local_remote_user }}"
group: "{{ local_remote_user }}"
mode: 0644
with_items:
- prefix: "{{ graphite_prefix }}"
- name: Generate All Nodes Memory Dashboard
template:
src: all_memory_graphs.json.j2
dest: "{{ home_dir }}/all_memory_graphs.json"
owner: "{{ local_remote_user }}"
group: "{{ local_remote_user }}"
mode: 0644
with_items:
- prefix: "{{ graphite_prefix }}"
- name: Generate All Nodes Disk Dashboard
template:
src: all_disk_graphs.json.j2
dest: "{{ home_dir }}/all_disk_graphs.json"
owner: "{{ local_remote_user }}"
group: "{{ local_remote_user }}"
mode: 0644
with_items:
- prefix: "{{ graphite_prefix }}"
- name: Generate All Nodes Network Dashboard
template:
src: all_network_graphs.json.j2
dest: "{{ home_dir }}/all_network_graphs.json"
owner: "{{ local_remote_user }}"
group: "{{ local_remote_user }}"
mode: 0644
with_items:
- prefix: "{{ graphite_prefix }}"
- name: Copy Static Openstack Dashboards
copy:
src: "{{ item }}"
dest: "{{ home_dir }}/{{ item }}"
owner: "{{ local_remote_user }}"
group: "{{ local_remote_user }}"
mode: 0744
with_items:
- openstack_general_system_performance.json
- openstack_cloud_system_performance_comparsion.json
- name: Remove Existing Dashboards
command: "curl -X DELETE -H 'Authorization: Bearer {{ grafana_api_key }}' -H 'Content-Type: application/json' http://{{ grafana_host }}:3000/api/dashboards/db/{{ item }}"
when: overwrite_existing
with_items:
- "{{ graphite_prefix }}-all-nodes-cpu"
- "{{ graphite_prefix }}-all-nodes-memory"
- "{{ graphite_prefix }}-all-nodes-disk"
- "{{ graphite_prefix }}-all-nodes-network"
- openstack-general-system-performance
- openstack-cloud-system-performance-comparsion
- name: Upload Dashboards to Grafana
command: "curl -X POST -H 'Authorization: Bearer {{ grafana_api_key }}' -H 'Content-Type: application/json' -d @{{ item }} http://{{ grafana_host }}:3000/api/dashboards/db"
with_items:
- all_cpu_graphs.json
- all_memory_graphs.json
- all_disk_graphs.json
- all_network_graphs.json
- openstack_general_system_performance.json
- openstack_cloud_system_performance_comparsion.json
- name: Remove leftover json file(s)
file: path={{ item }} state=absent
with_items:
- "{{ home_dir }}/all_cpu_graphs.json"
- "{{ home_dir }}/all_memory_graphs.json"
- "{{ home_dir }}/all_disk_graphs.json"
- "{{ home_dir }}/all_network_graphs.json"
- "{{ home_dir }}/openstack_general_system_performance.json"
- "{{ home_dir }}/openstack_cloud_system_performance_comparsion.json"