diff --git a/ansible/README.cfme-allinone.md b/ansible/README.cfme-allinone.md new file mode 100644 index 000000000..4bbaed6d9 --- /dev/null +++ b/ansible/README.cfme-allinone.md @@ -0,0 +1,45 @@ +# Setting up a CFME or ManageIQ VM for All-In-One Performance Monitoring + +1. Deploy ManageIQ/CFME appliance +2. Add additional disk to host Graphite's whisper database, mount disk at /var/lib/carbon +3. Clone browbeat +``` +[root@manageiq ~]# git clone https://github.com/jtaleric/browbeat.git +[root@manageiq ~]# cd browbeat/ansible +``` +4. Create ansible inventory file +``` +[graphite] +localhost ansible_connection=local + +[grafana] +localhost ansible_connection=local + +[cfme-all-in-one] +localhost ansible_connection=local +``` +5. Install ansible +``` +[root@manageiq ansible]# easy_install pip +[root@manageiq ansible]# yum install -y python-devel gcc-c++ +[root@manageiq ansible]# pip install ansible +``` +6. Setup installation variables at install/group_vars/all by modifying following variables +``` +graphite_host: localhost +graphite_port: 9000 +graphite_prefix: manageiq +grafana_host: localhost +grafana_port: 9001 +``` +7. Run playbooks for collectd/graphite/grafana install +``` +[root@manageiq ansible]# ansible-playbook -i hosts install/graphite.yml +[root@manageiq ansible]# ansible-playbook -i hosts install/grafana.yml +[root@manageiq ansible]# ansible-playbook -i hosts install/collectd-generic.yml --tags="cfme-all-in-one" +``` +8. Upload dashboards via ansible +``` +[root@manageiq ansible]# ansible-playbook -i hosts install/dashboards-generic.yml +``` +9. Enjoy your now performance monitored CFME/ManageIQ appliance, view grafana dashboards at http://:9001/ diff --git a/ansible/install/collectd-generic.yml b/ansible/install/collectd-generic.yml index 0fb5533b4..3e688fad1 100644 --- a/ansible/install/collectd-generic.yml +++ b/ansible/install/collectd-generic.yml @@ -6,6 +6,7 @@ # # ansible-playbook -i hosts install/collectd-generic.yml --tags="baremetal" # ansible-playbook -i hosts install/collectd-generic.yml --tags="guest" +# ansible-playbook -i hosts install/collectd-generic.yml --tags="cfme-all-in-one" # ansible-playbook -i hosts install/collectd-generic.yml --tags="cfme-vmdb" # ansible-playbook -i hosts install/collectd-generic.yml --tags="cfme" # ansible-playbook -i hosts install/collectd-generic.yml --tags="graphite" @@ -30,6 +31,15 @@ - collectd-generic tags: guest +# Cloud Forms Database appliances with Graphite/Grafana +- hosts: cfme-all-in-one + remote_user: root + vars: + config_type: cfme-all-in-one + roles: + - collectd-generic + tags: cfme-all-in-one + # Cloud Forms Database appliances - hosts: cfme-vmdb remote_user: root diff --git a/ansible/install/dashboards-generic.yml b/ansible/install/dashboards-generic.yml index 7315c514a..76f34afbd 100644 --- a/ansible/install/dashboards-generic.yml +++ b/ansible/install/dashboards-generic.yml @@ -15,6 +15,8 @@ process_list_name: Guest - template_name: cfme process_list_name: CFME + - template_name: cfmeallinone + process_list_name: CFME-All-In-One # - template_name: cfme # process_list_name: CFME-Amazon # - template_name: cfme diff --git a/ansible/install/group_vars/all b/ansible/install/group_vars/all index 0caac5754..07399bac7 100644 --- a/ansible/install/group_vars/all +++ b/ansible/install/group_vars/all @@ -55,6 +55,7 @@ collectd_compute: false ######################################## # Graphite Server ip address (Collectd -> Graphite server) graphite_host: 1.1.1.1 +graphite_port: 80 # Graphite prefix / Cloud name used both with graphite and grafana dashboards graphite_prefix: openstack # Graphite username and password for login on the dashboard @@ -67,7 +68,8 @@ graphite_password: calvin # 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) +grafana_username: admin +grafana_password: admin # 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 diff --git a/ansible/install/roles/collectd-generic/templates/cfme-all-in-one.collectd.conf.j2 b/ansible/install/roles/collectd-generic/templates/cfme-all-in-one.collectd.conf.j2 new file mode 100644 index 000000000..7ccef281f --- /dev/null +++ b/ansible/install/roles/collectd-generic/templates/cfme-all-in-one.collectd.conf.j2 @@ -0,0 +1,415 @@ +# Installed by Browbeat Ansible Installer +# Config type: {{config_type}} + +# Interval default is 10s +Interval {{collectd_interval}} + +# Hostname for this machine, if not defined, use gethostname(2) system call +Hostname "{{inventory_hostname}}" + +# Allow collectd to log +LoadPlugin syslog + +# Loaded Plugins: +LoadPlugin write_graphite +LoadPlugin apache +LoadPlugin cpu +LoadPlugin df +LoadPlugin disk +LoadPlugin interface +LoadPlugin irq +LoadPlugin load +LoadPlugin memory +LoadPlugin processes +LoadPlugin postgresql +LoadPlugin swap +LoadPlugin tail +LoadPlugin unixsock +LoadPlugin uptime + +# Open unix domain socket for collectdctl + + SocketFile "/var/run/collectd-unixsock" + SocketGroup "collectd" + SocketPerms "0770" + DeleteSocket true + + +# Graphite Host Configuration + + + Host "{{graphite_host}}" + Port "2003" + Prefix "{{graphite_prefix}}." + Protocol "tcp" + LogSendErrors true + StoreRates true + AlwaysAppendDS false + EscapeCharacter "_" + + + + + + URL "http://127.0.0.1/mod_status?auto" + + + + + ValuesPercentage true + + + + Disk "/^[hsv]d[a-z]+[0-9]?$/" + IgnoreSelected false + + + + + Statement "select state,count(*) from miq_queue group by state" + + Type gauge + InstancePrefix "state" + InstancesFrom "state" + ValuesFrom "count" + + + + Statement "select zone,count(*) from miq_queue group by zone" + + Type gauge + InstancePrefix "zone" + InstancesFrom "zone" + ValuesFrom "count" + + + + Statement "select role,count(*) from miq_queue group by role" + + Type gauge + InstancePrefix "role" + InstancesFrom "role" + ValuesFrom "count" + + + + Statement "select priority,count(*) from miq_queue group by priority" + + Type gauge + InstancePrefix "priority" + InstancesFrom "priority" + ValuesFrom "count" + + + + Statement "select queue_name,count(*) from miq_queue group by queue_name" + + Type gauge + InstancePrefix "queue" + InstancesFrom "queue_name" + ValuesFrom "count" + + + + Statement "select class_name,count(*) from miq_queue group by class_name" + + Type gauge + InstancePrefix "class" + InstancesFrom "class_name" + ValuesFrom "count" + + + + Statement "select method_name,count(*) from miq_queue group by method_name" + + Type gauge + InstancePrefix "method" + InstancesFrom "method_name" + ValuesFrom "count" + + + + Statement "select REPLACE(CONCAT(queue_name, '-',class_name,'-',method_name), 'ManageIQ::Providers::', '') as queue,count(*) from miq_queue group by queue_name,class_name,method_name" + + Type gauge + InstancePrefix "all" + InstancesFrom "queue" + ValuesFrom "count" + + + + Statement "SELECT sum(n_tup_ins) AS inserts, sum(n_tup_upd) AS updates, sum(n_tup_del) AS deletes FROM pg_stat_user_tables" + + Type derive + InstancePrefix "rows_inserted" + ValuesFrom "inserts" + + + Type derive + InstancePrefix "rows_updated" + ValuesFrom "updates" + + + Type derive + InstancePrefix "rows_deleted" + ValuesFrom "deletes" + + + + Host "localhost" + Port "5432" + User "root" + Password "smartvm" + # Predefined: + Query backends + Query transactions + Query queries + Query query_plans + Query table_states + Query disk_io + Query disk_usage + # Defined in Query blocks: + Query miq_queue_by_state + Query miq_queue_by_zone + Query miq_queue_by_role + Query miq_queue_by_priority + Query miq_queue_by_name + Query miq_queue_by_class + Query miq_queue_by_method + Query miq_queue_qcm + Query row_stats + + + + + # Appliance processes + ProcessMatch "evm_server.rb" ".*evm_server\.rb$" + ProcessMatch "evm_watchdog.rb" "/bin/evm_watchdog.rb" + Process "evm:dbsync:replicate" + Process "appliance_console.rb" + + # Workers + ProcessMatch "MiqEventHandler" ".*MiqEventHandler.*" + ProcessMatch "MiqGenericWorker" "MiqGenericWorker.*" + ProcessMatch "MiqPriorityWorker" "MiqPriorityWorker.*" + ProcessMatch "MiqReportingWorker" "MiqReportingWorker.*" + ProcessMatch "MiqScheduleWorker" "MiqScheduleWorker.*" + ProcessMatch "MiqUiWorker" "MiqUiWorker.*" + ProcessMatch "MiqWebServiceWorker" "MiqWebServiceWorker.*" + ProcessMatch "MiqReplicationWorker" "MiqReplicationWorker.*" + ProcessMatch "MiqEmsMetricsProcessorWorker" "MiqEmsMetricsProcessorWorker.*" + ProcessMatch "MiqSmartProxyWorker" "MiqSmartProxyWorker.*" + ProcessMatch "MiqVimBrokerWorker" "MiqVimBrokerWorker.*" + ProcessMatch "MiqEmsRefreshCoreWorker" "MiqEmsRefreshCoreWorker.*" + ProcessMatch "MiqVmdbStorageBridgeWorker" "MiqVmdbStorageBridgeWorker.*" + + + # Provider Refresh Workers: + ProcessMatch "Vmware::InfraManager::RefreshWorker" "Vmware::InfraManager::RefreshWorker.*" + ProcessMatch "Redhat::InfraManager::RefreshWorker" "Redhat::InfraManager::RefreshWorker.*" + ProcessMatch "Microsoft::InfraManager::RefreshWorker" "Microsoft::InfraManager::RefreshWorker.*" + ProcessMatch "Openstack::InfraManager::RefreshWorker" "Openstack::InfraManager::RefreshWorker.*" + 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.*" + ProcessMatch "Redhat::InfraManager::EventCatcher" "Redhat::InfraManager::EventCatcher.*" + 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 "carbon-cache" "python.+carbon-cache" + Process "grafana-server" + ProcessMatch "collectd" "/usr/sbin/collectd.+-C.+/etc/collectd.conf" + Process "httpd" + Process "memcached" + ProcessMatch "postgres" "postgres.*" + # Catch all-other ruby processes: + Process "ruby" + + + + ReportBytes true + ValuesPercentage true + + + + + Instance "api" + + Regex " ERROR " + DSType "CounterInc" + Type "counter" + Instance "total" + + + + Instance "appliance_console" + + Regex " ERROR " + DSType "CounterInc" + Type "counter" + Instance "total" + + + + Instance "audit" + + Regex " ERROR " + DSType "CounterInc" + Type "counter" + Instance "total" + + + + Instance "automation" + + Regex " ERROR " + DSType "CounterInc" + Type "counter" + Instance "total" + + + + Instance "aws" + + Regex " ERROR " + DSType "CounterInc" + Type "counter" + Instance "total" + + + + Instance "evm" + + Regex " ERROR " + DSType "CounterInc" + Type "counter" + Instance "total" + + + + Instance "fog" + + Regex " ERROR " + DSType "CounterInc" + Type "counter" + Instance "total" + + + + Instance "kubernetes" + + Regex " ERROR " + DSType "CounterInc" + Type "counter" + Instance "total" + + + + Instance "policy" + + Regex " ERROR " + DSType "CounterInc" + Type "counter" + Instance "total" + + + + Instance "production" + + Regex " ERROR " + DSType "CounterInc" + Type "counter" + Instance "total" + + + + Instance "rhevm" + + Regex " ERROR " + DSType "CounterInc" + Type "counter" + Instance "total" + + + + Instance "scvmm" + + Regex " ERROR " + DSType "CounterInc" + Type "counter" + Instance "total" + + + + Instance "vim" + + Regex " ERROR " + DSType "CounterInc" + Type "counter" + Instance "total" + + + + +# Include other collectd configuration files +Include "/etc/collectd.d" diff --git a/ansible/install/roles/collectd-generic/vars/main.yml b/ansible/install/roles/collectd-generic/vars/main.yml index 91b57840a..68cca2313 100644 --- a/ansible/install/roles/collectd-generic/vars/main.yml +++ b/ansible/install/roles/collectd-generic/vars/main.yml @@ -12,6 +12,10 @@ collectd_packages: cfme: - collectd - collectd-apache + cfme-all-in-one: + - collectd + - collectd-postgresql + - collectd-apache cfme-vmdb: - collectd - collectd-postgresql diff --git a/ansible/install/roles/dashboard-generic/tasks/main.yml b/ansible/install/roles/dashboard-generic/tasks/main.yml index fb9052894..86377a135 100644 --- a/ansible/install/roles/dashboard-generic/tasks/main.yml +++ b/ansible/install/roles/dashboard-generic/tasks/main.yml @@ -4,7 +4,7 @@ # - 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" + command: "curl -X DELETE -H 'Content-Type: application/json' http://{{grafana_username}}:{{grafana_password}}@{{grafana_host}}:{{grafana_port}}/api/dashboards/db/{{item.process_list_name|lower}}-general-system-performance" when: overwrite_existing with_items: dashboards @@ -18,7 +18,7 @@ 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" + command: "curl -X POST -H 'Content-Type: application/json' -d @{{role_path}}/files/{{item.process_list_name}}_general_system_performance.json http://{{grafana_username}}:{{grafana_password}}@{{grafana_host}}:{{grafana_port}}/api/dashboards/db" with_items: dashboards - name: Remove leftover json file(s) diff --git a/ansible/install/roles/dashboard-generic/templates/cfmeallinone_general_system_performance.json.j2 b/ansible/install/roles/dashboard-generic/templates/cfmeallinone_general_system_performance.json.j2 new file mode 100644 index 000000000..e18e3d384 --- /dev/null +++ b/ansible/install/roles/dashboard-generic/templates/cfmeallinone_general_system_performance.json.j2 @@ -0,0 +1,3878 @@ +{% set vars = {'panel_idx': 0, 'temp_count': 0} %} +{ + "dashboard": { + "annotations": { + "list": [] + }, + "editable": true, + "hideControls": false, + "id": null, + "links": [], + "overwrite": true, + "rows": [ + { + "collapse": true, + "editable": true, + "height": "200px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": 0, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": true, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "alias(averageSeries($Cloud.$Node.cpu-*.cpu-system), 'System')" + }, + { + "refId": "B", + "target": "alias(averageSeries($Cloud.$Node.cpu-*.cpu-user), 'User')" + }, + { + "refId": "C", + "target": "alias(averageSeries($Cloud.$Node.cpu-*.cpu-nice), 'Nice')" + }, + { + "refId": "D", + "target": "alias(averageSeries($Cloud.$Node.cpu-*.cpu-steal), 'Steal')" + }, + { + "refId": "E", + "target": "alias(averageSeries($Cloud.$Node.cpu-*.cpu-softirq), 'SoftIRQ')" + }, + { + "refId": "F", + "target": "alias(averageSeries($Cloud.$Node.cpu-*.cpu-interrupt), 'Interrupt')" + }, + { + "refId": "G", + "target": "alias(averageSeries($Cloud.$Node.cpu-*.cpu-wait), 'Wait')" + }, + { + "refId": "H", + "target": "alias(averageSeries($Cloud.$Node.cpu-*.cpu-idle), 'Idle')" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - All CPUs", + "tooltip": { + "shared": true, + "value_type": "individual" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "percent", + "short" + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": 0, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": true, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "alias(sumSeries($Cloud.$Node.cpu-*.cpu-system), 'System')" + }, + { + "refId": "B", + "target": "alias(sumSeries($Cloud.$Node.cpu-*.cpu-user), 'User')" + }, + { + "refId": "C", + "target": "alias(sumSeries($Cloud.$Node.cpu-*.cpu-nice), 'Nice')" + }, + { + "refId": "D", + "target": "alias(sumSeries($Cloud.$Node.cpu-*.cpu-steal), 'Steal')" + }, + { + "refId": "E", + "target": "alias(sumSeries($Cloud.$Node.cpu-*.cpu-softirq), 'SoftIRQ')" + }, + { + "refId": "F", + "target": "alias(sumSeries($Cloud.$Node.cpu-*.cpu-interrupt), 'Interrupt')" + }, + { + "refId": "G", + "target": "alias(sumSeries($Cloud.$Node.cpu-*.cpu-wait), 'Wait')" + }, + { + "refId": "H", + "target": "alias(sumSeries($Cloud.$Node.cpu-*.cpu-idle), 'Idle')" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - All CPUs Sum", + "tooltip": { + "shared": true, + "value_type": "individual" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "percent", + "short" + ] + } + ], + "showTitle": true, + "title": "CPU All" + }, + { + "collapse": true, + "editable": true, + "height": "200px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": 0, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "repeat": "cpu0", + "scopedVars": { + "cpu0": { + "selected": true, + "text": "cpu-0", + "value": "cpu-0" + } + }, + "seriesOverrides": [], + "span": null, + "stack": true, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "alias($Cloud.$Node.$cpu0.cpu-system, 'System')" + }, + { + "refId": "B", + "target": "alias($Cloud.$Node.$cpu0.cpu-user, 'User')" + }, + { + "refId": "C", + "target": "alias($Cloud.$Node.$cpu0.cpu-nice, 'Nice')" + }, + { + "refId": "D", + "target": "alias($Cloud.$Node.$cpu0.cpu-steal, 'Steal')" + }, + { + "refId": "E", + "target": "alias($Cloud.$Node.$cpu0.cpu-softirq, 'SoftIRQ')" + }, + { + "refId": "F", + "target": "alias($Cloud.$Node.$cpu0.cpu-interrupt, 'Interrupt')" + }, + { + "refId": "G", + "target": "alias($Cloud.$Node.$cpu0.cpu-wait, 'Wait')" + }, + { + "refId": "H", + "target": "alias($Cloud.$Node.$cpu0.cpu-idle, 'Idle')" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - $cpu0", + "tooltip": { + "shared": true, + "value_type": "individual" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "percent", + "short" + ] + } + ], + "showTitle": true, + "title": "Per Logical CPU" + }, + { + "collapse": true, + "editable": true, + "height": "200px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": 0, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": true, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "alias($Cloud.$Node.memory.memory-slab_unrecl, 'Slab Unrecl')" + }, + { + "refId": "B", + "target": "alias($Cloud.$Node.memory.memory-used, 'Used')" + }, + { + "refId": "C", + "target": "alias($Cloud.$Node.memory.memory-buffered, 'Buffered')" + }, + { + "refId": "D", + "target": "alias($Cloud.$Node.memory.memory-slab_recl, 'Slab Recl')" + }, + { + "refId": "E", + "target": "alias($Cloud.$Node.memory.memory-cached, 'Cached')" + }, + { + "refId": "F", + "target": "alias($Cloud.$Node.memory.memory-free, 'Free')" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - Memory in Bytes", + "tooltip": { + "shared": true, + "value_type": "individual" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "bytes", + "short" + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": 0, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": true, + "steppedLine": false, + "targets": [ + { + "hide": true, + "refId": "A", + "target": "$Cloud.$Node.memory.memory-slab_unrecl" + }, + { + "hide": true, + "refId": "B", + "target": "$Cloud.$Node.memory.memory-used" + }, + { + "hide": true, + "refId": "C", + "target": "$Cloud.$Node.memory.memory-buffered" + }, + { + "hide": true, + "refId": "D", + "target": "$Cloud.$Node.memory.memory-slab_recl" + }, + { + "hide": true, + "refId": "E", + "target": "$Cloud.$Node.memory.memory-cached" + }, + { + "hide": true, + "refId": "F", + "target": "$Cloud.$Node.memory.memory-free" + }, + { + "hide": true, + "refId": "G", + "target": "sumSeries($Cloud.$Node.memory.*)" + }, + { + "refId": "H", + "target": "alias(asPercent(#A, #G), 'Slab Unrecl')" + }, + { + "refId": "I", + "target": "alias(asPercent(#B, #G), 'Used')" + }, + { + "refId": "J", + "target": "alias(asPercent(#C, #G), 'Buffered')" + }, + { + "refId": "K", + "target": "alias(asPercent(#D, #G), 'Slab Recl')" + }, + { + "refId": "L", + "target": "alias(asPercent(#E, #G), 'Cached')" + }, + { + "refId": "M", + "target": "alias(asPercent(#F, #G), 'Free')" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - Memory in Percentage", + "tooltip": { + "shared": true, + "value_type": "individual" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "percent", + "short" + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": 0, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": true, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "alias($Cloud.$Node.swap.swap-used, 'Used')" + }, + { + "refId": "B", + "target": "alias($Cloud.$Node.swap.swap-cached, 'Cached')" + }, + { + "refId": "C", + "target": "alias($Cloud.$Node.swap.swap-free, 'Free')" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - Swap Usage", + "tooltip": { + "shared": true, + "value_type": "individual" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "bits", + "short" + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": 0, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": true, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "alias($Cloud.$Node.swap.swap_io-in, 'In')" + }, + { + "refId": "B", + "target": "alias($Cloud.$Node.swap.swap_io-out, 'Out')" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - Swap IO", + "tooltip": { + "shared": true, + "value_type": "individual" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "bytes", + "short" + ] + } + ], + "showTitle": true, + "title": "Memory & Swap" + }, + { + "collapse": true, + "editable": true, + "height": "200px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": null, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "Write", + "transform": "negative-Y" + } + ], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "alias($Cloud.$Node.$Disk.disk_ops.read, 'Read')" + }, + { + "refId": "B", + "target": "alias($Cloud.$Node.$Disk.disk_ops.write, 'Write')" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - $Disk iops", + "tooltip": { + "shared": true, + "value_type": "cumulative" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "iops", + "short" + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": null, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "Write", + "transform": "negative-Y" + } + ], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "alias($Cloud.$Node.$Disk.disk_octets.read, 'Read')" + }, + { + "refId": "B", + "target": "alias($Cloud.$Node.$Disk.disk_octets.write, 'Write')" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - $Disk Throughput", + "tooltip": { + "shared": true, + "value_type": "cumulative" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "Bps", + "short" + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": null, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "Write", + "transform": "negative-Y" + } + ], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "alias($Cloud.$Node.$Disk.disk_merged.read, 'Read')" + }, + { + "refId": "B", + "target": "alias($Cloud.$Node.$Disk.disk_merged.write, 'Write')" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - $Disk Merged iops", + "tooltip": { + "shared": true, + "value_type": "cumulative" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "iops", + "short" + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": null, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "Write", + "transform": "negative-Y" + } + ], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "alias($Cloud.$Node.$Disk.pending_operations, 'Pending Ops')" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - $Disk Pending Operations", + "tooltip": { + "shared": true, + "value_type": "cumulative" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": null, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "Write", + "transform": "negative-Y" + } + ], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "alias($Cloud.$Node.$Disk.disk_time.read, 'Read')" + }, + { + "refId": "B", + "target": "alias($Cloud.$Node.$Disk.disk_time.write, 'Write')" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - $Disk Average Time (Estimated)", + "tooltip": { + "shared": true, + "value_type": "cumulative" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "ms", + "short" + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": null, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "Weighted Time", + "yaxis": 2 + } + ], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "alias(scale($Cloud.$Node.$Disk.disk_io_time.io_time, 0.1), 'Time')" + }, + { + "refId": "B", + "target": "alias($Cloud.$Node.$Disk.disk_io_time.weighted_io_time, 'Weighted Time')" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - $Disk IO Time", + "tooltip": { + "shared": true, + "value_type": "cumulative" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "percent", + "ms" + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": null, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "Write", + "transform": "negative-Y" + } + ], + "span": 12, + "stack": true, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "alias($Cloud.$Node.df-root.percent_bytes-reserved, 'Reserved')" + }, + { + "refId": "B", + "target": "alias($Cloud.$Node.df-root.percent_bytes-used, 'Used')" + }, + { + "refId": "C", + "target": "alias($Cloud.$Node.df-root.percent_bytes-free, 'Free')" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - / Partition Capacity", + "tooltip": { + "shared": true, + "value_type": "individual" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "percent", + "short" + ] + } + ], + "showTitle": true, + "title": "Disk" + }, + { + "collapse": true, + "editable": true, + "height": "200px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": null, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "RX", + "transform": "negative-Y" + } + ], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "alias($Cloud.$Node.$Interface.if_packets.tx, 'TX')" + }, + { + "refId": "B", + "target": "alias($Cloud.$Node.$Interface.if_packets.rx, 'RX')" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - $Interface Network IO", + "tooltip": { + "shared": true, + "value_type": "cumulative" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "pps", + "short" + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": null, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "RX", + "transform": "negative-Y" + } + ], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "alias(scale($Cloud.$Node.$Interface.if_octets.tx, 8), 'TX')" + }, + { + "refId": "B", + "target": "alias(scale($Cloud.$Node.$Interface.if_octets.rx, 8), 'RX')" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - $Interface Network Throughput", + "tooltip": { + "shared": true, + "value_type": "cumulative" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "bps", + "short" + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": null, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "RX", + "transform": "negative-Y" + } + ], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "alias($Cloud.$Node.$Interface.if_errors.tx, 'TX')" + }, + { + "refId": "B", + "target": "alias($Cloud.$Node.$Interface.if_errors.rx, 'RX')" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - $Interface Errors", + "tooltip": { + "shared": true, + "value_type": "cumulative" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ] + } + ], + "showTitle": true, + "title": "Network" + }, + { + "collapse": true, + "editable": true, + "height": "200px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 0, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": null, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "refId": "B", + "target": "aliasByNode(aliasSub($Cloud.$Node.irq.irq-[A-Z]*, 'irq-', ''), 3)", + "textEditor": false + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - IRQ", + "tooltip": { + "shared": true, + "value_type": "cumulative" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": null, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": true, + "steppedLine": false, + "targets": [ + { + "refId": "B", + "target": "alias(sumSeries($Cloud.$Node.irq.irq-[0-9]*), 'Interrupts')", + "textEditor": false + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - Interrupts", + "tooltip": { + "shared": true, + "value_type": "cumulative" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ] + } + ], + "showTitle": true, + "title": "IRQ" + }, + { + "collapse": true, + "editable": true, + "height": "200px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "decimals": 1, + "editable": true, + "error": false, + "fill": 0, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": null, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "uptime", + "lines": false, + "yaxis": 2 + } + ], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "alias($Cloud.$Node.load.load.shortterm, '1m avg')" + }, + { + "refId": "B", + "target": "alias($Cloud.$Node.load.load.midterm, '5m avg')" + }, + { + "refId": "C", + "target": "alias($Cloud.$Node.load.load.longterm, '15m avg')" + }, + { + "refId": "D", + "target": "alias($Cloud.$Node.uptime.uptime, 'uptime')" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - Load Averages / Uptime", + "tooltip": { + "shared": true, + "value_type": "cumulative" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "s" + ] + } + ], + "showTitle": true, + "title": "Load / Uptime" + }, + { + "collapse": true, + "editable": true, + "height": "200px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": null, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": true, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "alias($Cloud.$Node.processes.ps_state-running, 'Running')" + }, + { + "refId": "B", + "target": "alias($Cloud.$Node.processes.ps_state-stopped, 'Stopped')" + }, + { + "refId": "C", + "target": "alias($Cloud.$Node.processes.ps_state-sleeping, 'Sleeping')" + }, + { + "refId": "D", + "target": "alias($Cloud.$Node.processes.ps_state-blocked, 'Blocked')" + }, + { + "refId": "E", + "target": "alias($Cloud.$Node.processes.ps_state-paging, 'Paging')" + }, + { + "refId": "F", + "target": "alias($Cloud.$Node.processes.ps_state-zombies, 'Zombies')" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - Processes State", + "tooltip": { + "shared": true, + "value_type": "individual" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": null, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "refId": "B", + "target": "alias($Cloud.$Node.processes.fork_rate, 'Fork Rate')" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - Fork Rate", + "tooltip": { + "shared": true, + "value_type": "cumulative" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ] + } + ], + "showTitle": true, + "title": "Processes" + }, +{# Loop over per-process options here #} + {% for metrics in per_process_metrics %} + { + "collapse": true, + "editable": true, + "height": "200px", + "panels": [ + + {% for panel in per_process_panels[item.process_list_name] %} + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "decimals": 0, + "editable": true, + "error": false, + "fill": 0, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": null, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + {% if vars.update({'temp_count': 0}) %} {% endif %} + {% if metrics.name|match('Process CPU') %} + { + "hide": true, + "refId": "{{vars.temp_count|to_grafana_refid}}", + "target": "alias(sumSeries(offset(scale($Cloud.$Node.cpu-*.cpu-idle, 0), 1)), 'cores')" + }, + {% if vars.update({'temp_count': (vars.temp_count + 1)}) %} {% endif %} + {% endif %} + {% for process in panel.processes %} + {% for metric in metrics.metrics %} + { + "refId": "{{vars.temp_count|to_grafana_refid}}", + {% if metrics.name|match('Process CPU') %} + "target": "alias(divideSeries(scale($Cloud.$Node.processes-{{process|replace('.', '_')|replace(':', '_')}}{{metric.query}}, 0.0001), #A), '{{process}} {{metric.name}}')" + {% else %} + "target": "alias($Cloud.$Node.processes-{{process|replace('.', '_')|replace(':', '_')}}{{metric.query}}, '{{process}} {{metric.name}}')" + {% endif %} + {% if not loop.last %} + }, + {% endif %} + {% if vars.update({'temp_count': (vars.temp_count + 1)}) %} {% endif %} + {% endfor %} + {% if loop.last %} + } + {% else %} + }, + {% endif %} + {% endfor %} + ], + "timeFrom": null, + "timeShift": null, + "title": "{{panel.name}}", + "tooltip": { + "shared": true, + "value_type": "cumulative" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "{{metrics.y1units}}", + "short" + ] + {% if loop.last %} + } + {% else %} + }, + {% endif %} + {% endfor %} + ], + "showTitle": true, + "title": "CFME {{metrics.name}}" + }, + {% endfor %} +{# End Loop over per-process options here #} + { + "title": "Apache", + "height": "250px", + "editable": true, + "collapse": true, + "panels": [ + { + "title": "Apache Bytes", + "error": false, + "span": 12, + "editable": true, + "type": "graph", + "isNew": true, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "datasource": null, + "renderer": "flot", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "bytes", + "short" + ], + "grid": { + "leftLogBase": 1, + "leftMax": null, + "rightMax": null, + "leftMin": null, + "rightMin": null, + "rightLogBase": 1, + "threshold1": null, + "threshold2": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + "lines": true, + "fill": 0, + "linewidth": 2, + "points": false, + "pointradius": 5, + "bars": false, + "stack": false, + "percentage": false, + "legend": { + "show": true, + "values": true, + "min": true, + "max": true, + "current": true, + "total": false, + "avg": false, + "alignAsTable": true, + "rightSide": true + }, + "nullPointMode": "connected", + "steppedLine": false, + "tooltip": { + "value_type": "cumulative", + "shared": true + }, + "timeFrom": null, + "timeShift": null, + "targets": [ + { + "refId": "A", + "target": "aliasSub(aliasByNode($Cloud.$Node.apache-status.apache_bytes, 3), 'apache_', '')", + "textEditor": false + } + ], + "aliasColors": {}, + "seriesOverrides": [], + "links": [] + }, + { + "title": "Apache Requests", + "error": false, + "span": 12, + "editable": true, + "type": "graph", + "isNew": true, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "datasource": null, + "renderer": "flot", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "ops", + "short" + ], + "grid": { + "leftLogBase": 1, + "leftMax": null, + "rightMax": null, + "leftMin": null, + "rightMin": null, + "rightLogBase": 1, + "threshold1": null, + "threshold2": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + "lines": true, + "fill": 0, + "linewidth": 2, + "points": false, + "pointradius": 5, + "bars": false, + "stack": false, + "percentage": false, + "legend": { + "show": true, + "values": true, + "min": true, + "max": true, + "current": true, + "total": false, + "avg": false, + "alignAsTable": true, + "rightSide": true + }, + "nullPointMode": "connected", + "steppedLine": false, + "tooltip": { + "value_type": "cumulative", + "shared": true + }, + "timeFrom": null, + "timeShift": null, + "targets": [ + { + "refId": "C", + "target": "aliasSub(aliasByNode($Cloud.$Node.apache-status.apache_requests, 3), 'apache_', '')", + "textEditor": false + } + ], + "aliasColors": {}, + "seriesOverrides": [], + "links": [] + }, + { + "title": "Apache Connections/Workers", + "error": false, + "span": 12, + "editable": true, + "type": "graph", + "isNew": true, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "datasource": null, + "renderer": "flot", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ], + "grid": { + "leftLogBase": 1, + "leftMax": null, + "rightMax": null, + "leftMin": null, + "rightMin": null, + "rightLogBase": 1, + "threshold1": null, + "threshold2": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + "lines": true, + "fill": 0, + "linewidth": 2, + "points": false, + "pointradius": 5, + "bars": false, + "stack": false, + "percentage": false, + "legend": { + "show": true, + "values": true, + "min": true, + "max": true, + "current": true, + "total": false, + "avg": false, + "alignAsTable": true, + "rightSide": true + }, + "nullPointMode": "connected", + "steppedLine": false, + "tooltip": { + "value_type": "cumulative", + "shared": true + }, + "timeFrom": null, + "timeShift": null, + "targets": [ + { + "refId": "A", + "target": "aliasSub(aliasByNode($Cloud.$Node.apache-status.apache_connections, 3), 'apache_', '')", + "textEditor": false + }, + { + "refId": "B", + "target": "aliasSub(aliasByNode($Cloud.$Node.apache-status.apache_idle_workers, 3), 'apache_', '')", + "textEditor": false + } + ], + "aliasColors": {}, + "seriesOverrides": [], + "links": [] + }, + { + "title": "Apache Scoreboard", + "error": false, + "span": 12, + "editable": true, + "type": "graph", + "isNew": true, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "datasource": null, + "renderer": "flot", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ], + "grid": { + "leftLogBase": 1, + "leftMax": null, + "rightMax": null, + "leftMin": null, + "rightMin": null, + "rightLogBase": 1, + "threshold1": null, + "threshold2": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + "lines": true, + "fill": 1, + "linewidth": 2, + "points": false, + "pointradius": 5, + "bars": false, + "stack": true, + "percentage": false, + "legend": { + "show": true, + "values": true, + "min": true, + "max": true, + "current": true, + "total": false, + "avg": false, + "alignAsTable": true, + "rightSide": true + }, + "nullPointMode": "connected", + "steppedLine": false, + "tooltip": { + "value_type": "individual", + "shared": true + }, + "timeFrom": null, + "timeShift": null, + "targets": [ + { + "refId": "A", + "target": "aliasSub(aliasByNode($Cloud.$Node.apache-status.apache_scoreboard-*, 3), 'apache_scoreboard-', '')", + "textEditor": false + } + ], + "aliasColors": {}, + "seriesOverrides": [], + "links": [] + } + ], + "showTitle": true + }, + { + "title": "Postgresql", + "height": "250px", + "editable": true, + "collapse": true, + "panels": [ + { + "title": "$Cloud - $Node - Database Sizes", + "error": false, + "span": 12, + "editable": true, + "type": "graph", + "isNew": true, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "datasource": null, + "renderer": "flot", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "bits", + "short" + ], + "grid": { + "leftLogBase": 1, + "leftMax": null, + "rightMax": null, + "leftMin": null, + "rightMin": null, + "rightLogBase": 1, + "threshold1": null, + "threshold2": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + "lines": true, + "fill": 1, + "linewidth": 2, + "points": false, + "pointradius": 5, + "bars": false, + "stack": false, + "percentage": false, + "legend": { + "show": true, + "values": true, + "min": true, + "max": true, + "current": true, + "total": false, + "avg": false, + "rightSide": true, + "alignAsTable": true + }, + "nullPointMode": "connected", + "steppedLine": false, + "tooltip": { + "value_type": "cumulative", + "shared": true + }, + "timeFrom": null, + "timeShift": null, + "targets": [ + { + "refId": "A", + "target": "aliasByNode(aliasSub($Cloud.$Node.postgresql-*.pg_db_size, 'postgresql-', ''), 2)" + } + ], + "aliasColors": {}, + "seriesOverrides": [], + "links": [] + }, + { + "title": "$Cloud - $Node - Connected Clients", + "error": false, + "span": 12, + "editable": true, + "type": "graph", + "isNew": true, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "datasource": null, + "renderer": "flot", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ], + "grid": { + "leftLogBase": 1, + "leftMax": null, + "rightMax": null, + "leftMin": null, + "rightMin": null, + "rightLogBase": 1, + "threshold1": null, + "threshold2": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + "lines": true, + "fill": 0, + "linewidth": 2, + "points": false, + "pointradius": 5, + "bars": false, + "stack": false, + "percentage": false, + "legend": { + "show": true, + "values": true, + "min": true, + "max": true, + "current": true, + "total": false, + "avg": false, + "rightSide": true, + "alignAsTable": true + }, + "nullPointMode": "connected", + "steppedLine": false, + "tooltip": { + "value_type": "cumulative", + "shared": true + }, + "timeFrom": null, + "timeShift": null, + "targets": [ + { + "refId": "A", + "target": "aliasByNode(aliasSub($Cloud.$Node.postgresql-*.pg_numbackends, 'postgresql-', ''), 2)" + } + ], + "aliasColors": {}, + "seriesOverrides": [], + "links": [] + }, + { + "title": "$Cloud - $Node - Heap/Index/Toast Activity", + "error": false, + "span": 12, + "editable": true, + "type": "graph", + "isNew": true, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "datasource": null, + "renderer": "flot", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ], + "grid": { + "leftLogBase": 1, + "leftMax": null, + "rightMax": null, + "leftMin": null, + "rightMin": null, + "rightLogBase": 1, + "threshold1": null, + "threshold2": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + "lines": true, + "fill": 0, + "linewidth": 2, + "points": false, + "pointradius": 5, + "bars": false, + "stack": false, + "percentage": false, + "legend": { + "show": true, + "values": true, + "min": true, + "max": true, + "current": true, + "total": false, + "avg": false, + "rightSide": true, + "alignAsTable": true + }, + "nullPointMode": "connected", + "steppedLine": false, + "tooltip": { + "value_type": "cumulative", + "shared": true + }, + "timeFrom": null, + "timeShift": null, + "targets": [ + { + "refId": "A", + "target": "aliasByNode(aliasSub($Cloud.$Node.postgresql-vmdb_production.pg_blks-*, 'pg_blks-', ''), 3)" + } + ], + "aliasColors": {}, + "seriesOverrides": [], + "links": [] + }, + { + "title": "$Cloud - $Node - Tuple Operations", + "error": false, + "span": 12, + "editable": true, + "type": "graph", + "isNew": true, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "datasource": null, + "renderer": "flot", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ], + "grid": { + "leftLogBase": 1, + "leftMax": null, + "rightMax": null, + "leftMin": null, + "rightMin": null, + "rightLogBase": 1, + "threshold1": null, + "threshold2": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + "lines": true, + "fill": 0, + "linewidth": 2, + "points": false, + "pointradius": 5, + "bars": false, + "stack": false, + "percentage": false, + "legend": { + "show": true, + "values": true, + "min": true, + "max": true, + "current": true, + "total": false, + "avg": false, + "rightSide": true, + "alignAsTable": true + }, + "nullPointMode": "connected", + "steppedLine": false, + "tooltip": { + "value_type": "cumulative", + "shared": true + }, + "timeFrom": null, + "timeShift": null, + "targets": [ + { + "refId": "A", + "target": "aliasByNode(aliasSub($Cloud.$Node.postgresql-vmdb_production.pg_n_tup_*, 'pg_n_tup_', ''), 3)" + } + ], + "aliasColors": {}, + "seriesOverrides": [], + "links": [] + }, + { + "title": "$Cloud - $Node - Scan", + "error": false, + "span": 12, + "editable": true, + "type": "graph", + "isNew": true, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "datasource": null, + "renderer": "flot", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ], + "grid": { + "leftLogBase": 1, + "leftMax": null, + "rightMax": null, + "leftMin": null, + "rightMin": null, + "rightLogBase": 1, + "threshold1": null, + "threshold2": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + "lines": true, + "fill": 0, + "linewidth": 2, + "points": false, + "pointradius": 5, + "bars": false, + "stack": false, + "percentage": false, + "legend": { + "show": true, + "values": true, + "min": true, + "max": true, + "current": true, + "total": false, + "avg": false, + "rightSide": true, + "alignAsTable": true + }, + "nullPointMode": "connected", + "steppedLine": false, + "tooltip": { + "value_type": "cumulative", + "shared": true + }, + "timeFrom": null, + "timeShift": null, + "targets": [ + { + "refId": "A", + "target": "aliasByNode(aliasSub($Cloud.$Node.postgresql-vmdb_production.pg_scan-*, 'pg_scan-', ''), 3)" + } + ], + "aliasColors": {}, + "seriesOverrides": [], + "links": [] + }, + { + "title": "$Cloud - $Node - Commits/Rollbacks", + "error": false, + "span": 12, + "editable": true, + "type": "graph", + "isNew": true, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "datasource": null, + "renderer": "flot", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ], + "grid": { + "leftLogBase": 1, + "leftMax": null, + "rightMax": null, + "leftMin": null, + "rightMin": null, + "rightLogBase": 1, + "threshold1": null, + "threshold2": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + "lines": true, + "fill": 0, + "linewidth": 2, + "points": false, + "pointradius": 5, + "bars": false, + "stack": false, + "percentage": false, + "legend": { + "show": true, + "values": true, + "min": true, + "max": true, + "current": true, + "total": false, + "avg": false, + "rightSide": true, + "alignAsTable": true + }, + "nullPointMode": "connected", + "steppedLine": false, + "tooltip": { + "value_type": "cumulative", + "shared": true + }, + "timeFrom": null, + "timeShift": null, + "targets": [ + { + "refId": "A", + "target": "aliasSub(aliasByNode(aliasSub($Cloud.$Node.postgresql-*.pg_xact-commit, 'postgresql-', ''), 2), '$', '-commit')" + }, + { + "refId": "B", + "target": "aliasSub(aliasByNode(aliasSub($Cloud.$Node.postgresql-*.pg_xact-rollback, 'postgresql-', ''), 2), '$', '-rollback')" + } + ], + "aliasColors": {}, + "seriesOverrides": [], + "links": [] + }, + { + "title": "$Cloud - $Node - Row Write Activity", + "error": false, + "span": 12, + "editable": true, + "type": "graph", + "isNew": true, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "datasource": null, + "renderer": "flot", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "wps", + "short" + ], + "grid": { + "leftLogBase": 1, + "leftMax": null, + "rightMax": null, + "leftMin": null, + "rightMin": null, + "rightLogBase": 1, + "threshold1": null, + "threshold2": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + "lines": true, + "fill": 0, + "linewidth": 2, + "points": false, + "pointradius": 5, + "bars": false, + "stack": false, + "percentage": false, + "legend": { + "show": true, + "values": true, + "min": true, + "max": true, + "current": true, + "total": false, + "avg": false, + "rightSide": true, + "alignAsTable": true + }, + "nullPointMode": "connected", + "steppedLine": false, + "tooltip": { + "value_type": "cumulative", + "shared": true + }, + "timeFrom": null, + "timeShift": null, + "targets": [ + { + "refId": "A", + "target": "aliasByNode(aliasSub($Cloud.$Node.postgresql-vmdb_production.derive-rows_*, 'derive-rows_', ''), 3)" + } + ], + "aliasColors": {}, + "seriesOverrides": [], + "links": [] + } + ], + "showTitle": true + }, + { + "collapse": true, + "editable": true, + "height": "250px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 0, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": 0, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true, + "sortDesc": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "aliasByNode(aliasSub($Cloud.$Node.postgresql-vmdb_production.gauge-state-*, 'gauge-state-', ''), 3)" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - MiqQueue Count by State", + "tooltip": { + "shared": true, + "value_type": "individual" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 0, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": 0, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true, + "sortDesc": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "aliasByNode(aliasSub($Cloud.$Node.postgresql-vmdb_production.gauge-zone-*, 'gauge-zone-', ''), 3)" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - MiqQueue Count by Zone", + "tooltip": { + "shared": true, + "value_type": "individual" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 0, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": 0, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "aliasByNode(aliasSub($Cloud.$Node.postgresql-vmdb_production.gauge-role-*, 'gauge-role-', ''), 3)" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - MiqQueue Count By Role", + "tooltip": { + "shared": true, + "value_type": "individual" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 0, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": 0, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "aliasByNode(aliasSub($Cloud.$Node.postgresql-vmdb_production.gauge-priority-*, 'gauge-priority-', ''), 3)" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - MiqQueue Count By Priority", + "tooltip": { + "shared": true, + "value_type": "individual" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 0, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": 0, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "aliasByNode(aliasSub($Cloud.$Node.postgresql-vmdb_production.gauge-queue-*, 'gauge-queue-', ''), 3)" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - MiqQueue Count by Queue Name", + "tooltip": { + "shared": true, + "value_type": "individual" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 0, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": 0, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "aliasByNode(aliasSub($Cloud.$Node.postgresql-vmdb_production.gauge-class-*, 'gauge-class-', ''), 3)" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - MiqQueue Count by Message Class", + "tooltip": { + "shared": true, + "value_type": "individual" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 0, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": 0, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "aliasByNode(aliasSub($Cloud.$Node.postgresql-vmdb_production.gauge-method-*, 'gauge-method-', ''), 3)" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - MiqQueue Count by Message Method", + "tooltip": { + "shared": true, + "value_type": "individual" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ] + }, + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 0, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": 0, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "aliasByNode(aliasSub($Cloud.$Node.postgresql-vmdb_production.gauge-all-*, 'gauge-all-', ''), 3)" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - MiqQueue Count by Queue-Class.Name", + "tooltip": { + "shared": true, + "value_type": "individual" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ] + } + ], + "showTitle": true, + "title": "MiqQueue" + }, + + { + "title": "Carbon Metrics", + "height": "250px", + "editable": true, + "collapse": true, + "panels": [ + { + "title": "Metrics, Committed Points, Update Operations", + "error": false, + "span": 12, + "editable": true, + "type": "graph", + "isNew": true, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "datasource": null, + "renderer": "flot", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ], + "grid": { + "leftLogBase": 1, + "leftMax": null, + "rightMax": null, + "leftMin": null, + "rightMin": null, + "rightLogBase": 1, + "threshold1": null, + "threshold2": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + "lines": true, + "fill": 0, + "linewidth": 2, + "points": false, + "pointradius": 5, + "bars": false, + "stack": false, + "percentage": false, + "legend": { + "show": true, + "values": true, + "min": true, + "max": true, + "current": true, + "total": false, + "avg": true, + "alignAsTable": true, + "rightSide": true + }, + "nullPointMode": "connected", + "steppedLine": false, + "tooltip": { + "value_type": "cumulative", + "shared": true + }, + "timeFrom": null, + "timeShift": null, + "targets": [ + { + "refId": "A", + "target": "aliasByNode(carbon.agents.*.metricsReceived, 3)" + }, + { + "refId": "B", + "target": "aliasByNode(carbon.agents.*.committedPoints, 3)" + }, + { + "refId": "C", + "target": "aliasByNode(carbon.agents.*.updateOperations, 3)" + } + ], + "aliasColors": {}, + "seriesOverrides": [], + "links": [], + "decimals": 1 + }, + { + "title": "Average Update Time", + "error": false, + "span": 12, + "editable": true, + "type": "graph", + "isNew": true, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "datasource": null, + "renderer": "flot", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ], + "grid": { + "leftLogBase": 1, + "leftMax": null, + "rightMax": null, + "leftMin": null, + "rightMin": null, + "rightLogBase": 1, + "threshold1": null, + "threshold2": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + "lines": true, + "fill": 0, + "linewidth": 2, + "points": false, + "pointradius": 5, + "bars": false, + "stack": false, + "percentage": false, + "legend": { + "show": true, + "values": true, + "min": true, + "max": true, + "current": true, + "total": false, + "avg": true, + "alignAsTable": true, + "rightSide": true + }, + "nullPointMode": "connected", + "steppedLine": false, + "tooltip": { + "value_type": "cumulative", + "shared": true + }, + "timeFrom": null, + "timeShift": null, + "targets": [ + { + "refId": "A", + "target": "aliasByNode(carbon.agents.*.avgUpdateTime, 3)" + } + ], + "aliasColors": {}, + "seriesOverrides": [], + "links": [], + "decimals": null + }, + { + "title": "Creates", + "error": false, + "span": 12, + "editable": true, + "type": "graph", + "isNew": true, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "datasource": null, + "renderer": "flot", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ], + "grid": { + "leftLogBase": 1, + "leftMax": null, + "rightMax": null, + "leftMin": null, + "rightMin": null, + "rightLogBase": 1, + "threshold1": null, + "threshold2": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + "lines": true, + "fill": 0, + "linewidth": 2, + "points": false, + "pointradius": 5, + "bars": false, + "stack": false, + "percentage": false, + "legend": { + "show": true, + "values": true, + "min": true, + "max": true, + "current": true, + "total": false, + "avg": true, + "alignAsTable": true, + "rightSide": true + }, + "nullPointMode": "connected", + "steppedLine": false, + "tooltip": { + "value_type": "cumulative", + "shared": true + }, + "timeFrom": null, + "timeShift": null, + "targets": [ + { + "refId": "A", + "target": "aliasByNode(carbon.agents.*.creates, 3)" + } + ], + "aliasColors": {}, + "seriesOverrides": [], + "links": [], + "decimals": null + }, + { + "title": "Cache", + "error": false, + "span": 12, + "editable": true, + "type": "graph", + "isNew": true, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "datasource": null, + "renderer": "flot", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ], + "grid": { + "leftLogBase": 1, + "leftMax": null, + "rightMax": null, + "leftMin": null, + "rightMin": null, + "rightLogBase": 1, + "threshold1": null, + "threshold2": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + "lines": true, + "fill": 0, + "linewidth": 2, + "points": false, + "pointradius": 5, + "bars": false, + "stack": false, + "percentage": false, + "legend": { + "show": true, + "values": true, + "min": true, + "max": true, + "current": true, + "total": false, + "avg": true, + "alignAsTable": true, + "rightSide": true + }, + "nullPointMode": "connected", + "steppedLine": false, + "tooltip": { + "value_type": "cumulative", + "shared": true + }, + "timeFrom": null, + "timeShift": null, + "targets": [ + { + "refId": "A", + "target": "aliasByNode(carbon.agents.*.cache.*, 4)" + } + ], + "aliasColors": {}, + "seriesOverrides": [], + "links": [], + "decimals": null + }, + { + "title": "Blacklist/Whitelist", + "error": false, + "span": 12, + "editable": true, + "type": "graph", + "isNew": true, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "datasource": null, + "renderer": "flot", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ], + "grid": { + "leftLogBase": 1, + "leftMax": null, + "rightMax": null, + "leftMin": null, + "rightMin": null, + "rightLogBase": 1, + "threshold1": null, + "threshold2": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + "lines": true, + "fill": 0, + "linewidth": 2, + "points": false, + "pointradius": 5, + "bars": false, + "stack": false, + "percentage": false, + "legend": { + "show": true, + "values": true, + "min": true, + "max": true, + "current": true, + "total": false, + "avg": true, + "alignAsTable": true, + "rightSide": true + }, + "nullPointMode": "connected", + "steppedLine": false, + "tooltip": { + "value_type": "cumulative", + "shared": true + }, + "timeFrom": null, + "timeShift": null, + "targets": [ + { + "refId": "A", + "target": "aliasByNode(carbon.agents.*.blacklistMatches, 3)" + }, + { + "refId": "B", + "target": "aliasByNode(carbon.agents.*.whitelistRejects, 3)" + } + ], + "aliasColors": {}, + "seriesOverrides": [], + "links": [], + "decimals": null + }, + { + "title": "Errors", + "error": false, + "span": 12, + "editable": true, + "type": "graph", + "isNew": true, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "datasource": null, + "renderer": "flot", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ], + "grid": { + "leftLogBase": 1, + "leftMax": null, + "rightMax": null, + "leftMin": null, + "rightMin": null, + "rightLogBase": 1, + "threshold1": null, + "threshold2": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + "lines": true, + "fill": 0, + "linewidth": 2, + "points": false, + "pointradius": 5, + "bars": false, + "stack": false, + "percentage": false, + "legend": { + "show": true, + "values": true, + "min": true, + "max": true, + "current": true, + "total": false, + "avg": true, + "alignAsTable": true, + "rightSide": true + }, + "nullPointMode": "connected", + "steppedLine": false, + "tooltip": { + "value_type": "cumulative", + "shared": true + }, + "timeFrom": null, + "timeShift": null, + "targets": [ + { + "refId": "C", + "target": "aliasByNode(carbon.agents.*.errors, 3)" + } + ], + "aliasColors": {}, + "seriesOverrides": [], + "links": [], + "decimals": 1 + } + ], + "showTitle": true + }, + { + "collapse": true, + "editable": true, + "height": "200px", + "panels": [ + { + "aliasColors": {}, + "bars": false, + "datasource": null, + "editable": true, + "error": false, + "fill": 1, + "grid": { + "leftLogBase": 1, + "leftMax": null, + "leftMin": 0, + "rightLogBase": 1, + "rightMax": null, + "rightMin": null, + "threshold1": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2": null, + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "refId": "A", + "target": "aliasByNode($Cloud.$Node.tail-*.counter-total, 2)" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$Cloud - $Node - Tail", + "tooltip": { + "shared": true, + "value_type": "individual" + }, + "type": "graph", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ] + } + ], + "showTitle": true, + "title": "Tail" + } + ], + "schemaVersion": 8, + "sharedCrosshair": false, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "allFormat": "glob", + "current": { + "text": "manageiq", + "value": "manageiq" + }, + "datasource": null, + "includeAll": false, + "multi": false, + "multiFormat": "glob", + "name": "Cloud", + "options": [], + "query": "*", + "refresh": true, + "type": "query" + }, + { + "allFormat": "glob", + "current": { + "text": "None", + "value": "None" + }, + "datasource": null, + "includeAll": false, + "multi": false, + "multiFormat": "glob", + "name": "Node", + "options": [], + "query": "$Cloud.*", + "refresh": true, + "type": "query" + }, + { + "allFormat": "glob", + "current": { + "text": "interface", + "value": "interface" + }, + "datasource": null, + "includeAll": false, + "multi": false, + "multiFormat": "glob", + "name": "Interface", + "options": [], + "query": "$Cloud.$Node.interface-*", + "refresh": true, + "type": "query" + }, + { + "allFormat": "glob", + "current": { + "text": "disk", + "value": "disk" + }, + "datasource": null, + "includeAll": false, + "multi": false, + "multiFormat": "glob", + "name": "Disk", + "options": [], + "query": "$Cloud.$Node.disk-*", + "refresh": true, + "type": "query" + }, + { + "allFormat": "glob", + "current": { + "text": "cpu-0", + "value": "cpu-0" + }, + "datasource": null, + "hideLabel": true, + "includeAll": true, + "multi": true, + "multiFormat": "glob", + "name": "cpu0", + "options": [], + "query": "$Cloud.$Node.cpu-*", + "refresh": true, + "type": "query" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": { + "now": true, + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "browser", + "title": "{{item.process_list_name}} General System Performance", + "version": 1 + } +} diff --git a/ansible/install/roles/dashboard-generic/templates/graphite_general_system_performance.json.j2 b/ansible/install/roles/dashboard-generic/templates/graphite_general_system_performance.json.j2 index f400f8fa5..b9d311ccd 100644 --- a/ansible/install/roles/dashboard-generic/templates/graphite_general_system_performance.json.j2 +++ b/ansible/install/roles/dashboard-generic/templates/graphite_general_system_performance.json.j2 @@ -2531,7 +2531,8 @@ "editable": true, "type": "graph", "isNew": true, - "id": 59, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, "datasource": null, "renderer": "flot", "x-axis": true, @@ -2605,7 +2606,8 @@ "editable": true, "type": "graph", "isNew": true, - "id": 60, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, "datasource": null, "renderer": "flot", "x-axis": true, @@ -2671,7 +2673,8 @@ "editable": true, "type": "graph", "isNew": true, - "id": 63, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, "datasource": null, "renderer": "flot", "x-axis": true, @@ -2737,7 +2740,8 @@ "editable": true, "type": "graph", "isNew": true, - "id": 61, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, "datasource": null, "renderer": "flot", "x-axis": true, @@ -2803,7 +2807,8 @@ "editable": true, "type": "graph", "isNew": true, - "id": 62, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, "datasource": null, "renderer": "flot", "x-axis": true, @@ -2873,7 +2878,8 @@ "editable": true, "type": "graph", "isNew": true, - "id": 64, + {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %} + "id": {{vars.panel_idx}}, "datasource": null, "renderer": "flot", "x-axis": true, diff --git a/ansible/install/roles/dashboard-generic/vars/main.yml b/ansible/install/roles/dashboard-generic/vars/main.yml index 2f6d39ffe..202a56c9a 100644 --- a/ansible/install/roles/dashboard-generic/vars/main.yml +++ b/ansible/install/roles/dashboard-generic/vars/main.yml @@ -260,6 +260,209 @@ per_process_panels: - name: "MiqStorageMetricsCollectorWorker" processes: - "MiqStorageMetricsCollectorWorker" + CFME-All-In-One: + - name: "Summerized" + processes: + - ruby + - postgres + - httpd + - name: "Memcached" + processes: + - memcached + - name: "Carbon" + processes: + - carbon-cache + - name: "Grafana" + processes: + - grafana-server + - 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: diff --git a/ansible/install/roles/dashboard-openstack/tasks/main.yml b/ansible/install/roles/dashboard-openstack/tasks/main.yml index 8aceeb20a..1ebda2351 100644 --- a/ansible/install/roles/dashboard-openstack/tasks/main.yml +++ b/ansible/install/roles/dashboard-openstack/tasks/main.yml @@ -14,7 +14,7 @@ - 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}}" + command: "curl -X DELETE -H 'Content-Type: application/json' http://{{grafana_username}}:{{grafana_password}}@{{grafana_host}}:{{grafana_port}}/api/dashboards/db/{{item}}" when: overwrite_existing with_items: - "{{dashboard_cloud_name}}-all-nodes-cpu" @@ -25,7 +25,7 @@ - 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" + command: "curl -X POST -H 'Content-Type: application/json' -d @{{item}} http://{{grafana_username}}:{{grafana_password}}@{{grafana_host}}:{{grafana_port}}/api/dashboards/db" with_items: - "{{role_path}}/files/all_cpu_graphs.json" - "{{role_path}}/files/all_memory_graphs.json" diff --git a/ansible/install/roles/grafana/tasks/main.yml b/ansible/install/roles/grafana/tasks/main.yml index 694ea4892..d66b64c42 100644 --- a/ansible/install/roles/grafana/tasks/main.yml +++ b/ansible/install/roles/grafana/tasks/main.yml @@ -19,6 +19,14 @@ with_items: - https://grafanarel.s3.amazonaws.com/builds/grafana-2.6.0-1.x86_64.rpm +- name: Set grafana server port + ini_file: + dest=/etc/grafana/grafana.ini + section=server + option=http_port + value={{grafana_port}} + become: true + # disable firewalld (might need to create specific firewall rules or leave it to admin to do via iptables) - name: disable firewalld @@ -28,8 +36,35 @@ # # setup the grafana-server service # - - name: Setup grafana-server service service: name=grafana-server state=started enabled=true become: true +- name: Wait for grafana to be ready + wait_for: host={{grafana_host}} port={{grafana_port}} delay=5 timeout=30 + +# +# Add graphite server as a default datasource +# +- name: Ensure {{role_path}}/files directory exists + file: path={{role_path}}/files state=directory + connection: local + +- name: Create data_source.json + template: + src: data_source.json.j2 + dest: "{{role_path}}/files/data_source.json" + connection: local + +- name: Create Data Source on grafana server + command: "curl -X POST -H 'Content-Type: application/json' -d @{{role_path}}/files/data_source.json http://{{grafana_username}}:{{grafana_password}}@{{grafana_host}}:{{grafana_port}}/api/datasources" + connection: local + +- name: Remove leftover json file + file: path={{role_path}}/files/data_source.json state=absent + connection: local + +- name: Disable EPEL + shell: rpm -e epel-release + ignore_errors: true + become: true diff --git a/ansible/install/roles/grafana/templates/data_source.json.j2 b/ansible/install/roles/grafana/templates/data_source.json.j2 new file mode 100644 index 000000000..60b2c2daa --- /dev/null +++ b/ansible/install/roles/grafana/templates/data_source.json.j2 @@ -0,0 +1,10 @@ +{ + "name":"graphite", + "type":"graphite", + "url":"http://{{graphite_host}}:{{graphite_port}}/", + "access":"proxy", + "isDefault":true, + "basicAuth":true, + "basicAuthUser":"{{graphite_username}}", + "basicAuthPassword":"{{graphite_password}}" +} \ No newline at end of file diff --git a/ansible/install/roles/graphite/files/carbon.conf b/ansible/install/roles/graphite/files/carbon.conf index 3d38902df..3f97b3910 100644 --- a/ansible/install/roles/graphite/files/carbon.conf +++ b/ansible/install/roles/graphite/files/carbon.conf @@ -75,7 +75,7 @@ MAX_UPDATES_PER_SECOND = 2000 # database files to all get created and thus longer until the data becomes usable. # Setting this value high (like "inf" for infinity) will cause graphite to create # the files quickly but at the risk of slowing I/O down considerably for a while. -MAX_CREATES_PER_MINUTE = 200 +MAX_CREATES_PER_MINUTE = 2000 LINE_RECEIVER_INTERFACE = 0.0.0.0 LINE_RECEIVER_PORT = 2003 diff --git a/ansible/install/roles/graphite/tasks/main.yml b/ansible/install/roles/graphite/tasks/main.yml index b6a9689ac..3f94d466e 100644 --- a/ansible/install/roles/graphite/tasks/main.yml +++ b/ansible/install/roles/graphite/tasks/main.yml @@ -44,9 +44,9 @@ when: graphite_db_installed.rc != 0 register: apache_needs_restart -- name: copy httpd graphite-web config - copy: - src=graphite-web.conf +- name: Setup httpd graphite-web config + template: + src=graphite-web.conf.j2 dest=/etc/httpd/conf.d/graphite-web.conf owner=root group=root @@ -120,3 +120,8 @@ service: name=carbon-cache state=restarted enabled=true become: true when: carbon_cache_needs_restart.changed + +- name: Disable EPEL + shell: rpm -e epel-release + ignore_errors: true + become: true diff --git a/ansible/install/roles/graphite/files/graphite-web.conf b/ansible/install/roles/graphite/templates/graphite-web.conf.j2 similarity index 92% rename from ansible/install/roles/graphite/files/graphite-web.conf rename to ansible/install/roles/graphite/templates/graphite-web.conf.j2 index 9ddc4f2b5..7ce8584bc 100644 --- a/ansible/install/roles/graphite/files/graphite-web.conf +++ b/ansible/install/roles/graphite/templates/graphite-web.conf.j2 @@ -1,6 +1,8 @@ # Graphite Web Basic mod_wsgi vhost - - +{% if graphite_port != 80 %} +Listen {{graphite_port}} +{% endif %} + DocumentRoot "/usr/share/graphite/webapp" ErrorLog /var/log/httpd/graphite-web-error.log CustomLog /var/log/httpd/graphite-web-access.log common @@ -9,7 +11,7 @@ # Header set Access-Control-Allow-Methods "GET, OPTIONS" # Header set Access-Control-Allow-Headers "origin, authorization, accept" # Header set Access-Control-Allow-Credentials true - + WSGIScriptAlias / /usr/share/graphite/graphite-web.wsgi WSGIImportScript /usr/share/graphite/graphite-web.wsgi process-group=%{GLOBAL} application-group=%{GLOBAL}