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:
parent
a51663b96d
commit
e7f2e5c2cb
66
README.md
66
README.md
@ -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 ..
|
||||
|
37
ansible/install/dashboards-generic.yml
Normal file
37
ansible/install/dashboards-generic.yml
Normal 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
|
12
ansible/install/dashboards-openstack.yml
Normal file
12
ansible/install/dashboards-openstack.yml
Normal 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
|
@ -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
|
@ -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,
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
26
ansible/install/roles/dashboard-generic/tasks/main.yml
Normal file
26
ansible/install/roles/dashboard-generic/tasks/main.yml
Normal 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
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
788
ansible/install/roles/dashboard-generic/vars/main.yml
Normal file
788
ansible/install/roles/dashboard-generic/vars/main.yml
Normal 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
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"dashboard": {
|
||||
"id": null,
|
||||
"title": "Openstack Cloud System Performance Comparsion",
|
||||
"title": "Cloud System Performance Comparsion",
|
||||
"tags": [],
|
||||
"style": "dark",
|
||||
"timezone": "browser",
|
43
ansible/install/roles/dashboard-openstack/tasks/main.yml
Normal file
43
ansible/install/roles/dashboard-openstack/tasks/main.yml
Normal 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"
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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"
|
Loading…
Reference in New Issue
Block a user