From 4ca0eedb0442aabc5697640b5c8b7b32bc809e78 Mon Sep 17 00:00:00 2001 From: Alex Krzos Date: Mon, 14 Mar 2016 18:56:51 -0400 Subject: [PATCH] Add Postgresql plugin for cfme/satellite6. Adjusted Dashboard for PostgreSQL + MiqQueue Monitoring Change-Id: I675f68a2d674bacba8d6f6a471f348cd6cea87c4 --- ansible/install/collectd-generic.yml | 11 + .../roles/collectd-generic/tasks/main.yml | 4 +- .../templates/cfme-vmdb.collectd.conf.j2 | 407 +++++++ .../templates/satellite6.collectd.conf.j2 | 9 + .../roles/collectd-generic/vars/main.yml | 23 + .../cfme_general_system_performance.json.j2 | 1009 +++++++++++++++++ 6 files changed, 1460 insertions(+), 3 deletions(-) create mode 100644 ansible/install/roles/collectd-generic/templates/cfme-vmdb.collectd.conf.j2 create mode 100644 ansible/install/roles/collectd-generic/vars/main.yml diff --git a/ansible/install/collectd-generic.yml b/ansible/install/collectd-generic.yml index 16bca5740..3e92b4a4b 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-vmdb" # ansible-playbook -i hosts install/collectd-generic.yml --tags="cfme" # ansible-playbook -i hosts install/collectd-generic.yml --tags="graphite" # ansible-playbook -i hosts install/collectd-generic.yml --tags="satellite6" @@ -28,6 +29,16 @@ - collectd-generic tags: guest +# Cloud Forms Database appliances +- hosts: cfme-vmdb + remote_user: root + vars: + config_type: cfme-vmdb + roles: + - collectd-generic + tags: cfme-vmdb + +# Cloud Forms Worker appliances - hosts: cfme remote_user: root vars: diff --git a/ansible/install/roles/collectd-generic/tasks/main.yml b/ansible/install/roles/collectd-generic/tasks/main.yml index be0b9869a..c4edc6fad 100644 --- a/ansible/install/roles/collectd-generic/tasks/main.yml +++ b/ansible/install/roles/collectd-generic/tasks/main.yml @@ -16,9 +16,7 @@ - name: Install collectd rpms yum: name={{ item }} state=present become: true - with_items: - - collectd - - collectd-turbostat + with_items: "{{collectd_packages[config_type]}}" - name: Configure collectd.conf template: diff --git a/ansible/install/roles/collectd-generic/templates/cfme-vmdb.collectd.conf.j2 b/ansible/install/roles/collectd-generic/templates/cfme-vmdb.collectd.conf.j2 new file mode 100644 index 000000000..97fd3e290 --- /dev/null +++ b/ansible/install/roles/collectd-generic/templates/cfme-vmdb.collectd.conf.j2 @@ -0,0 +1,407 @@ +# 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 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 + +# Allow collectdctl for debugging + + 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 "_" + + + + + 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 "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/templates/satellite6.collectd.conf.j2 b/ansible/install/roles/collectd-generic/templates/satellite6.collectd.conf.j2 index bbc57af6b..b6f6e4b2b 100644 --- a/ansible/install/roles/collectd-generic/templates/satellite6.collectd.conf.j2 +++ b/ansible/install/roles/collectd-generic/templates/satellite6.collectd.conf.j2 @@ -21,6 +21,7 @@ LoadPlugin load LoadPlugin memory LoadPlugin numa LoadPlugin processes +# LoadPlugin postgresql LoadPlugin swap LoadPlugin turbostat LoadPlugin uptime @@ -48,6 +49,14 @@ LoadPlugin uptime IgnoreSelected false +# +# +# Host "localhost" +# Port "5432" +# User "root" +# +# + # DynFlow Process "dynflow_executor" diff --git a/ansible/install/roles/collectd-generic/vars/main.yml b/ansible/install/roles/collectd-generic/vars/main.yml new file mode 100644 index 000000000..7b3ec4146 --- /dev/null +++ b/ansible/install/roles/collectd-generic/vars/main.yml @@ -0,0 +1,23 @@ +--- +# +# Vars for collectd-generic +# + +collectd_packages: + baremetal: + - collectd + - collectd-turbostat + guest: + - collectd + cfme: + - collectd + cfme-vmdb: + - collectd + - collectd-postgresql + graphite: + - collectd + - collectd-turbostat + satellite6: + - collectd + - collectd-turbostat + - collectd-postgresql diff --git a/ansible/install/roles/dashboard-generic/templates/cfme_general_system_performance.json.j2 b/ansible/install/roles/dashboard-generic/templates/cfme_general_system_performance.json.j2 index f4cd7e0c3..f8368e5e9 100644 --- a/ansible/install/roles/dashboard-generic/templates/cfme_general_system_performance.json.j2 +++ b/ansible/install/roles/dashboard-generic/templates/cfme_general_system_performance.json.j2 @@ -1862,6 +1862,1015 @@ }, {% endfor %} {# End Loop over per-process options here #} + { + "title": "Postgresql", + "height": "250px", + "editable": true, + "collapse": true, + "panels": [ + { + "title": "$Cloud - $Node - vmdb_production Size", + "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": "alias($Cloud.$Node.postgresql-vmdb_production.pg_db_size, 'Size')" + } + ], + "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": "alias($Cloud.$Node.postgresql-vmdb_production.pg_numbackends, 'Connected Clients')" + } + ], + "aliasColors": {}, + "seriesOverrides": [], + "links": [] + }, + { + "title": "$Cloud - $Node - Block Access", + "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($Cloud.$Node.postgresql-vmdb_production.pg_blks-*, 3)" + } + ], + "aliasColors": {}, + "seriesOverrides": [], + "links": [] + }, + { + "title": "$Cloud - $Node - Block Access", + "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($Cloud.$Node.postgresql-vmdb_production.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($Cloud.$Node.postgresql-vmdb_production.pg_scan-*, 3)" + } + ], + "aliasColors": {}, + "seriesOverrides": [], + "links": [] + }, + { + "title": "$Cloud - $Node - Commits", + "error": false, + "span": 12, + "editable": true, + "type": "graph", + "isNew": true, + "id": 381, + "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($Cloud.$Node.postgresql-vmdb_production.pg_xact-*, 3)" + } + ], + "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" + }, { "collapse": true, "editable": true,