Merge "Improve/Consolidate Collectd Configs & Grafana Dashboards"

This commit is contained in:
Jenkins 2016-07-15 23:01:58 +00:00 committed by Gerrit Code Review
commit cd09901a99
30 changed files with 1339 additions and 7506 deletions

View File

@ -7,8 +7,6 @@
# 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="graphite"
# ansible-playbook -i hosts install/collectd-generic.yml --tags="ose"
# ansible-playbook -i hosts install/collectd-generic.yml --tags="satellite6"
# ansible-playbook -i hosts install/collectd-generic.yml --tags="baremetal,guest"
#
@ -35,19 +33,3 @@
roles:
- collectd-generic
tags: graphite
- hosts: ose
remote_user: root
vars:
config_type: ose
roles:
- collectd-generic
tags: ose
- hosts: satellite6
remote_user: root
vars:
config_type: satellite6
roles:
- collectd-generic
tags: satellite6

View File

@ -1,23 +0,0 @@
---
#
# Builds and uploads dashboards to your grafana server for several host types
#
- hosts: localhost
gather_facts: false
vars:
ansible_connection: local
overwrite_existing: true
dashboards:
- template_name: baremetal
process_list_name: Baremetal
- template_name: guest
process_list_name: Guest
- template_name: graphite
process_list_name: Graphite
- template_name: ose
process_list_name: OpenShift-Enterprise
- template_name: satellite6
process_list_name: Satellite6
roles:
- dashboard-generic

View File

@ -1,28 +0,0 @@
---
#
# Builds dashboards based on your ansible hosts for Openstack
#
- hosts: localhost
gather_facts: false
vars:
ansible_connection: local
overwrite_existing: true
dashboards:
- template_name: openstack
template_node_type: undercloud
process_list_name: Openstack-Undercloud
- template_name: openstack
template_node_type: controller
process_list_name: Openstack-Controller
- template_name: openstack
template_node_type: compute
process_list_name: Openstack-Compute
- template_name: openstack
template_node_type: ceph
process_list_name: Openstack-Ceph
- template_name: openstack
template_node_type: "*"
process_list_name: Openstack
roles:
- dashboard-openstack

View File

@ -0,0 +1,40 @@
---
#
# Uploads and Builds Dashboards for Browbeat analysis of System Performance Metrics
#
# You can upload just the Static and Generated Generic Dashboards with:
# ansible-playbook -i hosts install/grafana-dashboards.yml -e 'cloud_dashboards=false'
#
#
- hosts: localhost
gather_facts: false
vars:
ansible_connection: local
cloud_dashboards: true
overwrite_existing: true
dashboards:
- template_name: OpenStack
template_node_type: undercloud
process_list_name: OpenStack-Undercloud
- template_name: OpenStack
template_node_type: controller
process_list_name: OpenStack-Controller
- template_name: OpenStack
template_node_type: compute
process_list_name: OpenStack-Compute
- template_name: OpenStack
template_node_type: ceph
process_list_name: OpenStack-Ceph
- template_name: OpenStack
template_node_type: "*"
process_list_name: OpenStack
# Non-OpenStack specific dashboards that are included:
- template_name: baremetal
process_list_name: Baremetal
- template_name: guest
process_list_name: Guest
- template_name: graphite
process_list_name: Graphite
roles:
- grafana-dashboards

View File

@ -1,7 +0,0 @@
---
#
# Handlers for collectd-generic
#
- name: restart httpd
service: name=httpd state=restarted

View File

@ -26,38 +26,6 @@
become: true
with_items: "{{collectd_packages[config_type]}}"
#
# Satellite6 specific configuration steps
#
- name: Get Candlepin PostgresDB Password
command: grep "jpa.config.hibernate.connection.password" /etc/candlepin/candlepin.conf
register: satellite_candlepin_password
when: "'{{config_type}}' == 'satellite6'"
- name: Get Foreman PostgresDB Password
shell: grep "password" /etc/foreman/database.yml | awk '{print $2}' | tr -d '"'
register: satellite_foreman_password
when: "'{{config_type}}' == 'satellite6'"
#
# OSE specific configuration
#
# - name: Copy ose-metrics.py
# template:
# src=ose-metrics.py.j2
# dest=/usr/local/bin/ose-metrics.py
# owner=root
# group=root
# mode=0755
# become: true
# when: "'{{config_type}}' == 'ose'"
# - name: Allow group read to /etc/origin/master/admin.key
# file: path=/etc/origin/master/admin.key mode=0640
# when: "'{{config_type}}' == 'ose'"
- name: Configure collectd.conf
template:
src={{config_type}}.collectd.conf.j2

View File

@ -1,23 +0,0 @@
#!/usr/bin/env python
import requests
import time
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
interval = {{collectd_interval}}
hostname = "{{inventory_hostname}}"
while True:
time_stamp = int(time.time())
next_start = time_stamp + interval
r = requests.get('https://127.0.0.1:8443/metrics', cert=('/etc/origin/master/admin.crt', '/etc/origin/master/admin.key'), verify=False)
for values in [ line.strip() for line in r.text.splitlines()]:
if '#' not in values[0] and '{' not in values:
metric_name = values.split(' ')[0]
metric_value = values.split(' ')[1]
print 'PUTVAL {0}/ose/gauge-{1} {2}:{3}'.format(hostname, metric_name, time_stamp, metric_value)
endtime = time.time()
if endtime < next_start:
time.sleep(next_start - endtime)

View File

@ -1,91 +0,0 @@
# 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 exec
LoadPlugin interface
LoadPlugin irq
LoadPlugin load
LoadPlugin memory
LoadPlugin numa
LoadPlugin processes
LoadPlugin swap
LoadPlugin turbostat
LoadPlugin unixsock
LoadPlugin uptime
# Open unix domain socket for collectdctl
<Plugin unixsock>
SocketFile "/var/run/collectd-unixsock"
SocketGroup "collectd"
SocketPerms "0770"
DeleteSocket true
</Plugin>
# Graphite Host Configuration
<Plugin write_graphite>
<Carbon>
Host "{{graphite_host}}"
Port "2003"
Prefix "{{graphite_prefix}}."
Protocol "tcp"
LogSendErrors true
StoreRates true
AlwaysAppendDS false
EscapeCharacter "_"
</Carbon>
</Plugin>
<Plugin df>
ValuesPercentage true
</Plugin>
<Plugin disk>
Disk "/^[hsv]d[a-z]+[0-9]?$/"
IgnoreSelected false
</Plugin>
# <Plugin exec>
# Exec "nobody:root" "/usr/local/bin/ose-metrics.py"
# </Plugin>
<Plugin processes>
# Openshift Master
ProcessMatch "openshift master" "/usr/bin/openshift.+start.+master"
ProcessMatch "openshift node" "/usr/bin/openshift.+start.+node"
ProcessMatch "etcd" "/usr/bin/etcd"
ProcessMatch "ovsdb-server monitor" "ovsdb-server.+monitoring"
ProcessMatch "ovsdb-server" "ovsdb-server.+/etc/openvswitch/conf.db"
ProcessMatch "ovsdb-vswitchd monitor" "ovs-vswitchd.+monitoring"
ProcessMatch "ovsdb-vswitchd" "ovs-vswitchd.+unix:/var/run/openvswitch/db.sock"
ProcessMatch "docker daemon" "/usr/bin/docker.+daemon"
ProcessMatch "pod" "pod"
# Collect on collectd process
ProcessMatch "collectd" "/usr/sbin/collectd.+-C.+/etc/collectd.conf"
</Plugin>
<Plugin swap>
ReportBytes true
ValuesPercentage true
</Plugin>
# Include other collectd configuration files
Include "/etc/collectd.d"

View File

@ -1,161 +0,0 @@
# 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 numa
LoadPlugin processes
LoadPlugin postgresql
LoadPlugin swap
LoadPlugin turbostat
LoadPlugin unixsock
LoadPlugin uptime
# Open unix domain socket for collectdctl
<Plugin unixsock>
SocketFile "/var/run/collectd-unixsock"
SocketGroup "collectd"
SocketPerms "0770"
DeleteSocket true
</Plugin>
# Graphite Host Configuration
<Plugin write_graphite>
<Carbon>
Host "{{graphite_host}}"
Port "2003"
Prefix "{{graphite_prefix}}."
Protocol "tcp"
LogSendErrors true
StoreRates true
AlwaysAppendDS false
EscapeCharacter "_"
</Carbon>
</Plugin>
<Plugin df>
ValuesPercentage true
</Plugin>
<Plugin disk>
Disk "/^[hsv]d[a-z]+[0-9]?$/"
IgnoreSelected false
</Plugin>
<Plugin postgresql>
<Database candlepin>
Host "localhost"
Port "5432"
User "candlepin"
Password "{{satellite_candlepin_password.stdout|ini_value}}"
# Predefined:
Query backends
Query transactions
Query queries
Query table_states
Query disk_io
Query disk_usage
</Database>
<Database foreman>
Host "localhost"
Port "5432"
User "foreman"
Password "{{satellite_foreman_password.stdout}}"
# Predefined:
Query backends
Query transactions
Query queries
Query table_states
Query disk_io
Query disk_usage
</Database>
<Database gutterball>
Host "localhost"
Port "5432"
User "gutterball"
Password "gutterball"
# Predefined:
Query backends
Query transactions
Query queries
Query table_states
Query disk_io
Query disk_usage
</Database>
</Plugin>
<Plugin processes>
# DynFlow
ProcessMatch "dynflow_executor" "dynflow.+executor$"
ProcessMatch "dynflow_executor_monitor" "dynflow.+executor.+monitor$"
# Elasticsearch
ProcessMatch "Elasticsearch" ".*elasticsearch.*"
# Apache
Process "httpd"
# Mongodb
Process "mongod"
# Passenger
ProcessMatch "Passenger-Forman" "Passenger.+RackApp:.+/usr/share/foreman"
ProcessMatch "Passenger-Puppet" "Passenger.+RackApp:.+/etc/puppet/rack"
ProcessMatch "PassengerHelperAgent" "PassengerHelperAgent"
ProcessMatch "PassengerLoggingAgent" "PassengerLoggingAgent"
ProcessMatch "PassengerWatchdog" "PassengerWatchdog"
# Postgres database
ProcessMatch "postgres" "postgres.*"
# Pulp
ProcessMatch "Pulp-Scheduler" "/usr/bin/python.+/usr/bin/celery.+beat.+--scheduler=pulp.server.async.scheduler.Scheduler"
ProcessMatch "Pulp-Resource-Manager" "/usr/bin/python.+/usr/bin/celery.+worker.+-A.+pulp.server.async.app.+-n.+resource_manager"
ProcessMatch "Pulp-Resource-Worker" "/usr/bin/python.+/usr/bin/celery.+worker.+-n.+reserved_resource_worker"
# Puppet Agent
ProcessMatch "Puppet-Agent" "/usr/bin/ruby.+/usr/bin/puppet.+agent.+--no-daemonize"
# Qpidd + dispatch router
Process "qdrouterd"
Process "qpidd"
# Foreman smart proxy
ProcessMatch "Foreman-SmartProxy" "ruby.+/usr/share/foreman-proxy/bin/smart-proxy"
# Tomcat
ProcessMatch "Tomcat" ".*tomcat.*"
# Other background tasks
ProcessMatch "Trends:Counter" "/opt/rh/ruby193/root/usr/bin/ruby.+/opt/rh/ruby193/root/usr/bin/rake.+trends:counter"
ProcessMatch "LDAP:Refresh_usergroups" "/opt/rh/ruby193/root/usr/bin/ruby.+/opt/rh/ruby193/root/usr/bin/rake.+ldap:refresh_usergroups"
Process "ruby"
# Collect on collectd process
ProcessMatch "collectd" "/usr/sbin/collectd.+-C.+/etc/collectd.conf"
</Plugin>
<Plugin swap>
ReportBytes true
ValuesPercentage true
</Plugin>
# Include other collectd configuration files
Include "/etc/collectd.d"

View File

@ -12,10 +12,3 @@ collectd_packages:
graphite:
- collectd
- collectd-turbostat
ose:
- collectd
- collectd-turbostat
satellite6:
- collectd
- collectd-turbostat
- collectd-postgresql

View File

@ -80,20 +80,18 @@ PreCacheChain "PreCache"
IgnoreSelected false
</Plugin>
# (akrzos) Including the version of OpenStack that the process was verified as running after
# OpenStack Installation with a comment at the end of each Process/ProcessMath statement.
# A Minus before the version means the process was not found in that version. (Ex -9)
<Plugin processes>
# Ceph
ProcessMatch "ceph-mon" "^/usr/bin/ceph-mon"
ProcessMatch "ceph-osd" "^/usr/bin/ceph-osd"
ProcessMatch "diamond" "python.+diamond"
ProcessMatch "salt-minion" "python.+salt-minion"
# Ceph (OpenStack Installed)
ProcessMatch "ceph-mon" "^/usr/bin/ceph-mon" # Unchecked
ProcessMatch "ceph-osd" "^/usr/bin/ceph-osd" # Unchecked
ProcessMatch "diamond" "python.+diamond" # Unchecked
ProcessMatch "salt-minion" "python.+salt-minion" # Unchecked
# Collectd (Browbeat Installed)
ProcessMatch "collectd" "/usr/sbin/collectd.+-C.+/etc/collectd.conf"
Process "corosync"
Process "httpd"
Process "memcached"
ProcessMatch "ovs-vswitchd" "ovs-vswitchd.+openvswitch"
ProcessMatch "ovsdb-server" "ovsdb-server.+openvswitch"
ProcessMatch "qemu-kvm" "/usr/libexec/qemu-kvm"
</Plugin>
<Plugin swap>

View File

@ -80,104 +80,30 @@ PreCacheChain "PreCache"
IgnoreSelected false
</Plugin>
# (akrzos) Including the version of OpenStack that the process was verified as running after
# OpenStack Installation with a comment at the end of each Process/ProcessMath statement.
# A Minus before the version means the process was not found in that version. (Ex -9)
<Plugin processes>
# Ceilometer
ProcessMatch "ceilometer-agent-central" "python.+ceilometer-agent-central"
ProcessMatch "ceilometer-agent-compute" "python.+ceilometer-agent-compute"
ProcessMatch "ceilometer-agent-notification" "python.+ceilometer-agent-notification"
ProcessMatch "ceilometer-alarm-evaluator" "python.+ceilometer-alarm-evaluator"
ProcessMatch "ceilometer-alarm-notifier" "python.+ceilometer-alarm-notifier"
ProcessMatch "ceilometer-api" "python.+ceilometer-api"
ProcessMatch "ceilometer-collector" "python.+ceilometer-collector"
ProcessMatch "ceilometer-polling" "python.+ceilometer-polling"
# Ceph
ProcessMatch "ceph-mon" "^/usr/bin/ceph-mon"
ProcessMatch "ceph-osd" "^/usr/bin/ceph-osd"
ProcessMatch "diamond" "python.+diamond"
ProcessMatch "salt-minion" "python.+salt-minion"
# Cinder
ProcessMatch "cinder-api" "python.+cinder-api"
ProcessMatch "cinder-scheduler" "python.+cinder-scheduler"
ProcessMatch "cinder-volume" "python.+cinder-volume"
# Glance
ProcessMatch "glance-api" "python.+glance-api"
ProcessMatch "glance-registry" "python.+glance-registry"
# Heat
ProcessMatch "heat-api" "python.+heat-api"
ProcessMatch "heat-api-cfn" "python.+heat-api-cfn"
ProcessMatch "heat-api-cloudwatch" "python.+heat-api-cloudwatch"
ProcessMatch "heat-engine" "python.+heat-engine"
# Ironic
ProcessMatch "ironic-api" "python.+ironic-api"
ProcessMatch "ironic-conductor" "python.+ironic-conductor"
# Keystone
ProcessMatch "keystone-all" "python.+keystone-all"
ProcessMatch "keystone-admin" "keystone-admin.*-DFOREGROUND"
ProcessMatch "keystone-main" "keystone-main.*-DFOREGROUND"
# Neutron
ProcessMatch "neutron-dhcp-agent" "python.+neutron-dhcp-agent"
ProcessMatch "neutron-l3-agent" "python.+neutron-l3-agent"
ProcessMatch "neutron-metadata-agent" "python.+neutron-metadata-agent"
ProcessMatch "neutron-ns-metadata-proxy" "python.+neutron-ns-metadata-proxy"
ProcessMatch "neutron-openvswitch-agent" "python.+neutron-openvswitch-agent"
ProcessMatch "neutron-server" "python.+neutron-server"
# Nova Processes
ProcessMatch "nova-api" "python.+nova-api"
ProcessMatch "nova-cert" "python.+nova-cert"
ProcessMatch "nova-compute" "python.+nova-compute"
ProcessMatch "nova-conductor" "python.+nova-conductor"
ProcessMatch "nova-consoleauth" "python.+nova-consoleauth"
ProcessMatch "nova-novncproxy" "python.+nova-novncproxy"
ProcessMatch "nova-scheduler" "python.+nova-scheduler"
# Swift
ProcessMatch "swift-account-auditor" "python.+swift-account-auditor"
ProcessMatch "swift-account-reaper" "python.+swift-account-reaper"
ProcessMatch "swift-account-replicator" "python.+swift-account-replicator"
ProcessMatch "swift-account-server" "python.+swift-account-server"
ProcessMatch "swift-container-auditor" "python.+swift-container-auditor"
ProcessMatch "swift-container-updater" "python.+swift-container-updater"
ProcessMatch "swift-container-replicator" "python.+swift-container-replicator"
ProcessMatch "swift-container-server" "python.+swift-container-server"
ProcessMatch "swift-object-auditor" "python.+swift-object-auditor"
ProcessMatch "swift-object-updater" "python.+swift-object-updater"
ProcessMatch "swift-object-replicator" "python.+swift-object-replicator"
ProcessMatch "swift-object-server" "python.+swift-object-server"
ProcessMatch "swift-proxy-server" "python.+swift-proxy-server"
# Pacemaker
ProcessMatch "pacemakerd" "/usr/sbin/pacemakerd"
ProcessMatch "cib" "/usr/libexec/pacemaker/cib"
ProcessMatch "stonithd" "/usr/libexec/pacemaker/stonithd"
ProcessMatch "attrd" "/usr/libexec/pacemaker/attrd"
ProcessMatch "pengine" "/usr/libexec/pacemaker/pengine"
ProcessMatch "crmd" "/usr/libexec/pacemaker/crmd"
ProcessMatch "lrmd" "/usr/libexec/pacemaker/lrmd"
ProcessMatch "pcsd" "^/usr/bin/ruby.+/usr/lib/pcsd"
# Ceilometer (OpenStack Installed)
ProcessMatch "ceilometer-agent-compute" "python.+ceilometer-agent-compute" # -9
ProcessMatch "ceilometer-polling" "python.+ceilometer-polling" # 9
# Collectd (Browbeat Installed)
ProcessMatch "collectd" "/usr/sbin/collectd.+-C.+/etc/collectd.conf"
Process "corosync"
ProcessMatch "dnsmasq" "^dnsmasq.+"
ProcessMatch "dnsmasq-ironic" "/sbin/dnsmasq.+/etc/ironic-discoverd/dnsmasq.conf"
ProcessMatch "haproxy" "/usr/sbin/haproxy.+/etc/haproxy/haproxy.cfg"
Process "httpd"
Process "memcached"
Process "mongod"
ProcessMatch "mysqld" "/usr/libexec/mysqld"
ProcessMatch "ovs-vswitchd" "ovs-vswitchd.+openvswitch"
ProcessMatch "ovsdb-server" "ovsdb-server.+openvswitch"
ProcessMatch "qemu-kvm" "/usr/libexec/qemu-kvm"
ProcessMatch "rabbitmq" "/usr/lib64/erlang/erts-.+/bin/beam.smp"
Process "redis-server"
ProcessMatch "tuskar-api" "python.+tuskar-api"
# Neutron (OpenStack Installed)
ProcessMatch "neutron-openvswitch-agent" "python.+neutron-openvswitch-agent" # 9
# Nova (OpenStack Installed)
ProcessMatch "nova-compute" "python.+nova-compute" # 9
# OVS (OpenStack Installed)
ProcessMatch "ovs-vswitchd" "ovs-vswitchd.+openvswitch" # 9
ProcessMatch "ovsdb-client" "/bin/ovsdb-client" # 9
ProcessMatch "ovsdb-server" "ovsdb-server.+openvswitch" # 9
# QEMU (OpenStack Installed)
ProcessMatch "qemu-kvm" "/usr/libexec/qemu-kvm" # 9
</Plugin>
<Plugin swap>

View File

@ -93,104 +93,121 @@ PreCacheChain "PreCache"
</Database>
</Plugin>
# (akrzos) Including the version of OpenStack that the process was verified as running after
# OpenStack Installation with a comment at the end of each Process/ProcessMath statement.
# A Minus before the version means the process was not found in that version. (Ex -9)
<Plugin processes>
# Ceilometer
ProcessMatch "ceilometer-agent-central" "python.+ceilometer-agent-central"
ProcessMatch "ceilometer-agent-compute" "python.+ceilometer-agent-compute"
ProcessMatch "ceilometer-agent-notification" "python.+ceilometer-agent-notification"
ProcessMatch "ceilometer-alarm-evaluator" "python.+ceilometer-alarm-evaluator"
ProcessMatch "ceilometer-alarm-notifier" "python.+ceilometer-alarm-notifier"
ProcessMatch "ceilometer-api" "python.+ceilometer-api"
ProcessMatch "ceilometer-collector" "python.+ceilometer-collector"
ProcessMatch "ceilometer-polling" "python.+ceilometer-polling"
# Aodh (OpenStack Installed)
ProcessMatch "aodh-evaluator" "python.+aodh-evaluator" # 9
ProcessMatch "aodh-listener" "python.+aodh-listener" # 9
ProcessMatch "aodh-notifier" "python.+aodh-notifier" # 9
# Ceph
ProcessMatch "ceph-mon" "^/usr/bin/ceph-mon"
ProcessMatch "ceph-osd" "^/usr/bin/ceph-osd"
ProcessMatch "diamond" "python.+diamond"
ProcessMatch "salt-minion" "python.+salt-minion"
# Ceilometer (OpenStack Installed)
ProcessMatch "ceilometer-agent-central" "python.+ceilometer-agent-central" # -9
ProcessMatch "ceilometer-agent-compute" "python.+ceilometer-agent-compute" # -9
ProcessMatch "ceilometer-agent-notification" "python.+ceilometer-agent-notification" # 9
ProcessMatch "ceilometer-alarm-evaluator" "python.+ceilometer-alarm-evaluator" # -9
ProcessMatch "ceilometer-alarm-notifier" "python.+ceilometer-alarm-notifier" # -9
ProcessMatch "ceilometer-api" "python.+ceilometer-api" # 9
ProcessMatch "ceilometer-collector" "python.+ceilometer-collector" # 9
ProcessMatch "ceilometer-polling" "python.+ceilometer-polling" # 9
# Cinder
ProcessMatch "cinder-api" "python.+cinder-api"
ProcessMatch "cinder-scheduler" "python.+cinder-scheduler"
ProcessMatch "cinder-volume" "python.+cinder-volume"
# Ceph (OpenStack Installed)
ProcessMatch "ceph-mon" "^/usr/bin/ceph-mon" # -9
ProcessMatch "ceph-osd" "^/usr/bin/ceph-osd" # -9
ProcessMatch "diamond" "python.+diamond" # -9
ProcessMatch "salt-minion" "python.+salt-minion" # -9
# Glance
ProcessMatch "glance-api" "python.+glance-api"
ProcessMatch "glance-registry" "python.+glance-registry"
# Heat
ProcessMatch "heat-api" "python.+heat-api"
ProcessMatch "heat-api-cfn" "python.+heat-api-cfn"
ProcessMatch "heat-api-cloudwatch" "python.+heat-api-cloudwatch"
ProcessMatch "heat-engine" "python.+heat-engine"
# Ironic
ProcessMatch "ironic-api" "python.+ironic-api"
ProcessMatch "ironic-conductor" "python.+ironic-conductor"
# Keystone
ProcessMatch "keystone-all" "python.+keystone-all"
ProcessMatch "keystone-admin" "keystone-admin.*-DFOREGROUND"
ProcessMatch "keystone-main" "keystone-main.*-DFOREGROUND"
# Neutron
ProcessMatch "neutron-dhcp-agent" "python.+neutron-dhcp-agent"
ProcessMatch "neutron-l3-agent" "python.+neutron-l3-agent"
ProcessMatch "neutron-metadata-agent" "python.+neutron-metadata-agent"
ProcessMatch "neutron-ns-metadata-proxy" "python.+neutron-ns-metadata-proxy"
ProcessMatch "neutron-openvswitch-agent" "python.+neutron-openvswitch-agent"
ProcessMatch "neutron-server" "python.+neutron-server"
# Nova Processes
ProcessMatch "nova-api" "python.+nova-api"
ProcessMatch "nova-cert" "python.+nova-cert"
ProcessMatch "nova-compute" "python.+nova-compute"
ProcessMatch "nova-conductor" "python.+nova-conductor"
ProcessMatch "nova-consoleauth" "python.+nova-consoleauth"
ProcessMatch "nova-novncproxy" "python.+nova-novncproxy"
ProcessMatch "nova-scheduler" "python.+nova-scheduler"
# Swift
ProcessMatch "swift-account-auditor" "python.+swift-account-auditor"
ProcessMatch "swift-account-reaper" "python.+swift-account-reaper"
ProcessMatch "swift-account-replicator" "python.+swift-account-replicator"
ProcessMatch "swift-account-server" "python.+swift-account-server"
ProcessMatch "swift-container-auditor" "python.+swift-container-auditor"
ProcessMatch "swift-container-updater" "python.+swift-container-updater"
ProcessMatch "swift-container-replicator" "python.+swift-container-replicator"
ProcessMatch "swift-container-server" "python.+swift-container-server"
ProcessMatch "swift-object-auditor" "python.+swift-object-auditor"
ProcessMatch "swift-object-updater" "python.+swift-object-updater"
ProcessMatch "swift-object-replicator" "python.+swift-object-replicator"
ProcessMatch "swift-object-server" "python.+swift-object-server"
ProcessMatch "swift-proxy-server" "python.+swift-proxy-server"
# Pacemaker
ProcessMatch "pacemakerd" "/usr/sbin/pacemakerd"
ProcessMatch "cib" "/usr/libexec/pacemaker/cib"
ProcessMatch "stonithd" "/usr/libexec/pacemaker/stonithd"
ProcessMatch "attrd" "/usr/libexec/pacemaker/attrd"
ProcessMatch "pengine" "/usr/libexec/pacemaker/pengine"
ProcessMatch "crmd" "/usr/libexec/pacemaker/crmd"
ProcessMatch "lrmd" "/usr/libexec/pacemaker/lrmd"
ProcessMatch "pcsd" "^/usr/bin/ruby.+/usr/lib/pcsd"
# Cinder (OpenStack Installed)
ProcessMatch "cinder-api" "python.+cinder-api" # 9
ProcessMatch "cinder-scheduler" "python.+cinder-scheduler" # 9
ProcessMatch "cinder-volume" "python.+cinder-volume" # 9
# Collectd (Browbeat Installed)
ProcessMatch "collectd" "/usr/sbin/collectd.+-C.+/etc/collectd.conf"
Process "corosync"
ProcessMatch "dnsmasq" "^dnsmasq.+"
ProcessMatch "dnsmasq-ironic" "/sbin/dnsmasq.+/etc/ironic-discoverd/dnsmasq.conf"
ProcessMatch "haproxy" "/usr/sbin/haproxy.+/etc/haproxy/haproxy.cfg"
Process "httpd"
Process "memcached"
Process "mongod"
ProcessMatch "mysqld" "/usr/libexec/mysqld"
ProcessMatch "ovs-vswitchd" "ovs-vswitchd.+openvswitch"
ProcessMatch "ovsdb-server" "ovsdb-server.+openvswitch"
ProcessMatch "qemu-kvm" "/usr/libexec/qemu-kvm"
ProcessMatch "rabbitmq" "/usr/lib64/erlang/erts-.+/bin/beam.smp"
Process "redis-server"
ProcessMatch "tuskar-api" "python.+tuskar-api"
# Glance (OpenStack Installed)
ProcessMatch "glance-api" "python.+glance-api" # 9
ProcessMatch "glance-registry" "python.+glance-registry" # 9
# Gnocchi (OpenStack Installed)
ProcessMatch "gnocchi-metricd" "python.+gnocchi-metricd" # 9
ProcessMatch "gnocchi-statsd" "python.+gnocchi-statsd" # 9
# Everything Else (OpenStack Installed)
# (Processes displayed under "Everything Else" on Grafana Dashboards)
ProcessMatch "dnsmasq" "^dnsmasq.+" # -9
ProcessMatch "haproxy" "/usr/sbin/haproxy.+/etc/haproxy/haproxy.cfg" # 9
Process "httpd" # 9
Process "memcached" # 9
Process "mongod" # 9
ProcessMatch "mysqld" "/usr/libexec/mysqld" # 9
ProcessMatch "rabbitmq" "/usr/lib64/erlang/erts-.+/bin/beam.smp" # 9
Process "redis-server" # 9
ProcessMatch "tuskar-api" "python.+tuskar-api" # -9
# Heat (OpenStack Installed)
ProcessMatch "heat-api" "python.+heat-api" # 9
ProcessMatch "heat-api-cfn" "python.+heat-api-cfn" # 9
ProcessMatch "heat-api-cloudwatch" "python.+heat-api-cloudwatch" # 9
ProcessMatch "heat-engine" "python.+heat-engine" # 9
# Keystone (OpenStack Installed)
ProcessMatch "keystone-all" "python.+keystone-all" # 7,8,-9
ProcessMatch "keystone-admin" "keystone-admin.*-DFOREGROUND" # 9
ProcessMatch "keystone-main" "keystone-main.*-DFOREGROUND" # 9
# Neutron (OpenStack Installed)
ProcessMatch "neutron-dhcp-agent" "python.+neutron-dhcp-agent" # 9
ProcessMatch "neutron-l3-agent" "python.+neutron-l3-agent" # 9
ProcessMatch "neutron-metadata-agent" "python.+neutron-metadata-agent" # 9
ProcessMatch "neutron-ns-metadata-proxy" "python.+neutron-ns-metadata-proxy" # -9
ProcessMatch "neutron-openvswitch-agent" "python.+neutron-openvswitch-agent" # 9
ProcessMatch "neutron-server" "python.+neutron-server" # 9
# Nova (OpenStack Installed)
ProcessMatch "nova-api" "python.+nova-api" # 9
ProcessMatch "nova-cert" "python.+nova-cert" # -9
ProcessMatch "nova-compute" "python.+nova-compute" # -9
ProcessMatch "nova-conductor" "python.+nova-conductor" # 9
ProcessMatch "nova-consoleauth" "python.+nova-consoleauth" # 9
ProcessMatch "nova-novncproxy" "python.+nova-novncproxy" # 9
ProcessMatch "nova-scheduler" "python.+nova-scheduler" # 9
# OVS (OpenStack Installed)
ProcessMatch "ovs-vswitchd" "ovs-vswitchd.+openvswitch" # 9
ProcessMatch "ovsdb-client" "/bin/ovsdb-client" # 9
ProcessMatch "ovsdb-server" "ovsdb-server.+openvswitch" # 9
# Sahara (OpenStack Installed)
ProcessMatch "sahara-api" "python.+sahara-api" # 9
ProcessMatch "sahara-engine" "python.+sahara-engine" # 9
# Swift (OpenStack Installed)
ProcessMatch "swift-account-auditor" "python.+swift-account-auditor" # 9
ProcessMatch "swift-account-reaper" "python.+swift-account-reaper" # 9
ProcessMatch "swift-account-replicator" "python.+swift-account-replicator" # 9
ProcessMatch "swift-account-server" "python.+swift-account-server" # 9
ProcessMatch "swift-container-auditor" "python.+swift-container-auditor" # 9
ProcessMatch "swift-container-updater" "python.+swift-container-updater" # 9
ProcessMatch "swift-container-replicator" "python.+swift-container-replicator" # 9
ProcessMatch "swift-container-server" "python.+swift-container-server" # 9
ProcessMatch "swift-object-auditor" "python.+swift-object-auditor" # 9
ProcessMatch "swift-object-updater" "python.+swift-object-updater" # 9
ProcessMatch "swift-object-replicator" "python.+swift-object-replicator" # 9
ProcessMatch "swift-object-server" "python.+swift-object-server" # 9
ProcessMatch "swift-proxy-server" "python.+swift-proxy-server" # 9
# Pacemaker / Corosync (OpenStack Installed)
ProcessMatch "attrd" "/usr/libexec/pacemaker/attrd" # 9
ProcessMatch "cib" "/usr/libexec/pacemaker/cib" # 9
Process "corosync" # 9
ProcessMatch "crmd" "/usr/libexec/pacemaker/crmd" # 9
ProcessMatch "lrmd" "/usr/libexec/pacemaker/lrmd" # 9
ProcessMatch "pacemakerd" "/usr/sbin/pacemakerd" # 9
ProcessMatch "pcsd" "^/usr/bin/ruby.+/usr/lib/pcsd" # 9
ProcessMatch "pengine" "/usr/libexec/pacemaker/pengine" # 9
ProcessMatch "stonithd" "/usr/libexec/pacemaker/stonithd" # 9
</Plugin>
<Plugin swap>

View File

@ -89,104 +89,113 @@ PreCacheChain "PreCache"
</Database>
</Plugin>
# (akrzos) Including the version of OpenStack that the process was verified as running after
# OpenStack Installation with a comment at the end of each Process/ProcessMath statement.
# A Minus before the version means the process was not found in that version. (Ex -9)
<Plugin processes>
# Ceilometer
ProcessMatch "ceilometer-agent-central" "python.+ceilometer-agent-central"
ProcessMatch "ceilometer-agent-compute" "python.+ceilometer-agent-compute"
ProcessMatch "ceilometer-agent-notification" "python.+ceilometer-agent-notification"
ProcessMatch "ceilometer-alarm-evaluator" "python.+ceilometer-alarm-evaluator"
ProcessMatch "ceilometer-alarm-notifier" "python.+ceilometer-alarm-notifier"
ProcessMatch "ceilometer-api" "python.+ceilometer-api"
ProcessMatch "ceilometer-collector" "python.+ceilometer-collector"
ProcessMatch "ceilometer-polling" "python.+ceilometer-polling"
# Aodh (OpenStack Installed)
ProcessMatch "aodh-evaluator" "python.+aodh-evaluator" # 9
ProcessMatch "aodh-listener" "python.+aodh-listener" # 9
ProcessMatch "aodh-notifier" "python.+aodh-notifier" # 9
# Ceph
ProcessMatch "ceph-mon" "^/usr/bin/ceph-mon"
ProcessMatch "ceph-osd" "^/usr/bin/ceph-osd"
ProcessMatch "diamond" "python.+diamond"
ProcessMatch "salt-minion" "python.+salt-minion"
# Cinder
ProcessMatch "cinder-api" "python.+cinder-api"
ProcessMatch "cinder-scheduler" "python.+cinder-scheduler"
ProcessMatch "cinder-volume" "python.+cinder-volume"
# Glance
ProcessMatch "glance-api" "python.+glance-api"
ProcessMatch "glance-registry" "python.+glance-registry"
# Heat
ProcessMatch "heat-api" "python.+heat-api"
ProcessMatch "heat-api-cfn" "python.+heat-api-cfn"
ProcessMatch "heat-api-cloudwatch" "python.+heat-api-cloudwatch"
ProcessMatch "heat-engine" "python.+heat-engine"
# Ironic
ProcessMatch "ironic-api" "python.+ironic-api"
ProcessMatch "ironic-conductor" "python.+ironic-conductor"
# Keystone
ProcessMatch "keystone-all" "python.+keystone-all"
ProcessMatch "keystone-admin" "keystone-admin.*-DFOREGROUND"
ProcessMatch "keystone-main" "keystone-main.*-DFOREGROUND"
# Neutron
ProcessMatch "neutron-dhcp-agent" "python.+neutron-dhcp-agent"
ProcessMatch "neutron-l3-agent" "python.+neutron-l3-agent"
ProcessMatch "neutron-metadata-agent" "python.+neutron-metadata-agent"
ProcessMatch "neutron-ns-metadata-proxy" "python.+neutron-ns-metadata-proxy"
ProcessMatch "neutron-openvswitch-agent" "python.+neutron-openvswitch-agent"
ProcessMatch "neutron-server" "python.+neutron-server"
# Nova Processes
ProcessMatch "nova-api" "python.+nova-api"
ProcessMatch "nova-cert" "python.+nova-cert"
ProcessMatch "nova-compute" "python.+nova-compute"
ProcessMatch "nova-conductor" "python.+nova-conductor"
ProcessMatch "nova-consoleauth" "python.+nova-consoleauth"
ProcessMatch "nova-novncproxy" "python.+nova-novncproxy"
ProcessMatch "nova-scheduler" "python.+nova-scheduler"
# Swift
ProcessMatch "swift-account-auditor" "python.+swift-account-auditor"
ProcessMatch "swift-account-reaper" "python.+swift-account-reaper"
ProcessMatch "swift-account-replicator" "python.+swift-account-replicator"
ProcessMatch "swift-account-server" "python.+swift-account-server"
ProcessMatch "swift-container-auditor" "python.+swift-container-auditor"
ProcessMatch "swift-container-updater" "python.+swift-container-updater"
ProcessMatch "swift-container-replicator" "python.+swift-container-replicator"
ProcessMatch "swift-container-server" "python.+swift-container-server"
ProcessMatch "swift-object-auditor" "python.+swift-object-auditor"
ProcessMatch "swift-object-updater" "python.+swift-object-updater"
ProcessMatch "swift-object-replicator" "python.+swift-object-replicator"
ProcessMatch "swift-object-server" "python.+swift-object-server"
ProcessMatch "swift-proxy-server" "python.+swift-proxy-server"
# Pacemaker
ProcessMatch "pacemakerd" "/usr/sbin/pacemakerd"
ProcessMatch "cib" "/usr/libexec/pacemaker/cib"
ProcessMatch "stonithd" "/usr/libexec/pacemaker/stonithd"
ProcessMatch "attrd" "/usr/libexec/pacemaker/attrd"
ProcessMatch "pengine" "/usr/libexec/pacemaker/pengine"
ProcessMatch "crmd" "/usr/libexec/pacemaker/crmd"
ProcessMatch "lrmd" "/usr/libexec/pacemaker/lrmd"
ProcessMatch "pcsd" "^/usr/bin/ruby.+/usr/lib/pcsd"
# Ceilometer (OpenStack Installed)
ProcessMatch "ceilometer-agent-central" "python.+ceilometer-agent-central" # -9
ProcessMatch "ceilometer-agent-compute" "python.+ceilometer-agent-compute" # -9
ProcessMatch "ceilometer-agent-notification" "python.+ceilometer-agent-notification" # 9
ProcessMatch "ceilometer-alarm-evaluator" "python.+ceilometer-alarm-evaluator" # -9
ProcessMatch "ceilometer-alarm-notifier" "python.+ceilometer-alarm-notifier" # -9
ProcessMatch "ceilometer-api" "python.+ceilometer-api" # 9
ProcessMatch "ceilometer-collector" "python.+ceilometer-collector" # 9
ProcessMatch "ceilometer-polling" "python.+ceilometer-polling" # 9
# Collectd (Browbeat Installed)
ProcessMatch "collectd" "/usr/sbin/collectd.+-C.+/etc/collectd.conf"
Process "corosync"
ProcessMatch "dnsmasq" "^dnsmasq.+"
ProcessMatch "dnsmasq-ironic" "/sbin/dnsmasq.+/etc/ironic-discoverd/dnsmasq.conf"
ProcessMatch "haproxy" "/usr/sbin/haproxy.+/etc/haproxy/haproxy.cfg"
Process "httpd"
Process "memcached"
Process "mongod"
ProcessMatch "mysqld" "/usr/libexec/mysqld"
ProcessMatch "ovs-vswitchd" "ovs-vswitchd.+openvswitch"
ProcessMatch "ovsdb-server" "ovsdb-server.+openvswitch"
ProcessMatch "qemu-kvm" "/usr/libexec/qemu-kvm"
ProcessMatch "rabbitmq" "/usr/lib64/erlang/erts-.+/bin/beam.smp"
Process "redis-server"
ProcessMatch "tuskar-api" "python.+tuskar-api"
# Docker Registry (OpenStack Installed)
ProcessMatch "docker-registry" "python.+/usr/bin/gunicorn.+docker_registry" # 9
# Glance (OpenStack Installed)
ProcessMatch "glance-api" "python.+glance-api" # 9
ProcessMatch "glance-registry" "python.+glance-registry" # 9
# Everything Else (OpenStack Installed)
# (Processes displayed under "Everything Else" on Grafana Dashboards)
ProcessMatch "dnsmasq" "^dnsmasq.+" # 9
ProcessMatch "haproxy" "/usr/sbin/haproxy.+/etc/haproxy/haproxy.cfg" # -9
Process "httpd" # 9
Process "memcached" # 9
Process "mongod" # -9
ProcessMatch "mysqld" "/usr/libexec/mysqld" # 9
ProcessMatch "qemu-kvm" "/usr/libexec/qemu-kvm" # -9
ProcessMatch "rabbitmq" "/usr/lib64/erlang/erts-.+/bin/beam.smp" # 9
Process "redis-server" # -9
ProcessMatch "tuskar-api" "python.+tuskar-api" # -9
# Heat (OpenStack Installed)
ProcessMatch "heat-api" "python.+heat-api" # 9
ProcessMatch "heat-api-cfn" "python.+heat-api-cfn" # 9
ProcessMatch "heat-api-cloudwatch" "python.+heat-api-cloudwatch" # -9
ProcessMatch "heat-engine" "python.+heat-engine" # 9
# Ironic (OpenStack Installed)
ProcessMatch "ironic-api" "python.+ironic-api" # 9
ProcessMatch "ironic-conductor" "python.+ironic-conductor" # 9
ProcessMatch "ironic-inspector" "python.+ironic-inspector" # 9
ProcessMatch "dnsmasq-ironic" "/sbin/dnsmasq.+/etc/ironic-discoverd/dnsmasq.conf" # -9
ProcessMatch "dnsmasq-ironicinspector" "/sbin/dnsmasq.+/etc/ironic-inspector/" # 9
# Keystone (OpenStack Installed)
ProcessMatch "keystone-all" "python.+keystone-all" # 7,8,-9
ProcessMatch "keystone-admin" "keystone-admin.*-DFOREGROUND" # 9
ProcessMatch "keystone-main" "keystone-main.*-DFOREGROUND" # 9
# Neutron (OpenStack Installed)
ProcessMatch "neutron-dhcp-agent" "python.+neutron-dhcp-agent" # 9
ProcessMatch "neutron-l3-agent" "python.+neutron-l3-agent" # -9
ProcessMatch "neutron-metadata-agent" "python.+neutron-metadata-agent" # -9
ProcessMatch "neutron-ns-metadata-proxy" "python.+neutron-ns-metadata-proxy" # -9
ProcessMatch "neutron-openvswitch-agent" "python.+neutron-openvswitch-agent" # 9
ProcessMatch "neutron-server" "python.+neutron-server" # 9
# Nova (OpenStack Installed)
ProcessMatch "nova-api" "python.+nova-api" # 9
ProcessMatch "nova-cert" "python.+nova-cert" # 9
ProcessMatch "nova-compute" "python.+nova-compute" # 9
ProcessMatch "nova-conductor" "python.+nova-conductor" # 9
ProcessMatch "nova-consoleauth" "python.+nova-consoleauth" # -9
ProcessMatch "nova-novncproxy" "python.+nova-novncproxy" # -9
ProcessMatch "nova-scheduler" "python.+nova-scheduler" # 9
# OVS (OpenStack Installed)
ProcessMatch "ovs-vswitchd" "ovs-vswitchd.+openvswitch" # 9
ProcessMatch "ovsdb-client" "/bin/ovsdb-client" # 9
ProcessMatch "ovsdb-server" "ovsdb-server.+openvswitch" # 9
# Swift (OpenStack Installed)
ProcessMatch "swift-account-auditor" "python.+swift-account-auditor" # 9
ProcessMatch "swift-account-reaper" "python.+swift-account-reaper" # 9
ProcessMatch "swift-account-replicator" "python.+swift-account-replicator" # 9
ProcessMatch "swift-account-server" "python.+swift-account-server" # 9
ProcessMatch "swift-container-auditor" "python.+swift-container-auditor" # 9
ProcessMatch "swift-container-updater" "python.+swift-container-updater" # 9
ProcessMatch "swift-container-replicator" "python.+swift-container-replicator" # 9
ProcessMatch "swift-container-server" "python.+swift-container-server" # 9
ProcessMatch "swift-object-auditor" "python.+swift-object-auditor" # 9
ProcessMatch "swift-object-updater" "python.+swift-object-updater" # 9
ProcessMatch "swift-object-replicator" "python.+swift-object-replicator" # 9
ProcessMatch "swift-object-server" "python.+swift-object-server" # 9
ProcessMatch "swift-proxy-server" "python.+swift-proxy-server" # 9
# Pacemaker / Corosync (OpenStack Installed)
ProcessMatch "attrd" "/usr/libexec/pacemaker/attrd" # 9
ProcessMatch "cib" "/usr/libexec/pacemaker/cib" # 9
Process "corosync" # 9
ProcessMatch "crmd" "/usr/libexec/pacemaker/crmd" # 9
ProcessMatch "lrmd" "/usr/libexec/pacemaker/lrmd" # 9
ProcessMatch "pacemakerd" "/usr/sbin/pacemakerd" # 9
ProcessMatch "pcsd" "^/usr/bin/ruby.+/usr/lib/pcsd" # 9
ProcessMatch "pengine" "/usr/libexec/pacemaker/pengine" # 9
ProcessMatch "stonithd" "/usr/libexec/pacemaker/stonithd" # 9
</Plugin>
<Plugin swap>

View File

@ -1,26 +0,0 @@
---
#
# Upload Generic Machine Dashboards to Grafana
#
- name: Remove existing dashboards
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}}"
- name: Ensure {{role_path}}/files directory exists
file: path={{role_path}}/files state=directory
- name: Generate dashboards
template:
src: "{{item.template_name}}_general_system_performance.json.j2"
dest: "{{role_path}}/files/{{item.process_list_name}}_general_system_performance.json"
with_items: "{{dashboards}}"
- name: Upload dashboards to grafana
command: "curl -X POST -H '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)
file: path={{role_path}}/files/{{item.process_list_name}}_general_system_performance.json state=absent
with_items: "{{dashboards}}"

View File

@ -1,165 +0,0 @@
---
#
# Vars to generate Per-Process component of Generic Dashboards
#
per_process_metrics:
- name: "Process/Thread Counts"
y1units: "short"
metrics:
- name: "Processes"
query: ".ps_count.processes"
- name: "Threads"
query: ".ps_count.threads"
nullPointMode: "connected"
- name: "Process CPU"
y1units: "percent"
metrics:
- name: "System"
query: ".ps_cputime.syst"
- name: "User"
query: ".ps_cputime.user"
nullPointMode: "connected"
- name: "Process Memory"
y1units: "bits"
metrics:
- name: "RSS"
query: ".ps_rss"
- name: "Virtual"
query: ".ps_vm"
nullPointMode: "connected"
- name: "Process Page Faults"
y1units: "short"
metrics:
- name: "Majflt"
query: ".ps_pagefaults.majflt"
- name: "Minflt"
query: ".ps_pagefaults.minflt"
nullPointMode: "connected"
- name: "Process IOPs(Estimated via SYSCALLS)"
y1units: "iops"
metrics:
- name: "Read"
query: ".ps_disk_ops.read"
- name: "Write"
query: ".ps_disk_ops.write"
nullPointMode: "null"
- name: "Process IO Throughput(Estimated via SYSCALLS)"
y1units: "bytes"
metrics:
- name: "Read"
query: ".ps_disk_octets.read"
- name: "Write"
query: ".ps_disk_octets.write"
nullPointMode: "null"
per_process_panels:
Baremetal:
- name: "httpd"
processes:
- httpd
- name: "Collectd"
processes:
- collectd
Guest:
- name: "httpd"
processes:
- httpd
- name: "Collectd"
processes:
- collectd
Graphite:
- name: "Summerized"
processes:
- carbon-cache
- grafana-server
- httpd
- name: "Carbon"
processes:
- carbon-cache
- name: "Grafana"
processes:
- grafana-server
- name: "httpd"
processes:
- httpd
- name: "Collectd"
processes:
- collectd
OpenShift-Enterprise:
- name: "OpenShift"
processes:
- "openshift master"
- "openshift node"
- name: "etcd"
processes:
- etcd
- name: "Open vSwitch Server"
processes:
- "ovsdb-server monitor"
- "ovsdb-server"
- name: "Open vSwitchd"
processes:
- "ovsdb-vswitchd monitor"
- "ovsdb-vswitchd"
- name: "Docker"
processes:
- "docker daemon"
- name: "pods"
processes:
- "pod"
- name: "Collectd"
processes:
- collectd
Satellite6:
- name: "Summerized"
processes:
- httpd
- ruby
- name: "DynFlow"
processes:
- dynflow_executor
- dynflow_executor_monitor
- name: "ElasticSearch"
processes:
- Elasticsearch
- name: "Foreman-SmartProxy"
processes:
- Foreman-SmartProxy
- name: "Mongodb"
processes:
- mongod
- name: "Passenger"
processes:
- Passenger-Forman
- Passenger-Puppet
- PassengerHelperAgent
- PassengerLoggingAgent
- PassengerWatchdog
- name: "Postgres"
processes:
- postgres
- name: "Pulp"
processes:
- Pulp-Scheduler
- Pulp-Resource-Manager
- Pulp-Resource-Worker
- name: "Puppet-Agent"
processes:
- Puppet-Agent
- name: "Qpidd Dispatch Router"
processes:
- qdrouterd
- name: "Qpidd"
processes:
- qpidd
- name: "Tomcat"
processes:
- Tomcat
- name: "Background Tasks"
processes:
- "Trends:Counter"
- "LDAP:Refresh_usergroups"
- name: "Collectd"
processes:
- collectd

View File

@ -1,3 +1,4 @@
#!/usr/bin/env python
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
@ -9,8 +10,6 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#!/usr/bin/env python
import argparse
import json

View File

@ -1,15 +1,24 @@
---
#
# Generate Openstack collectd to graphite dashboards
# Generate Browbeat OpenStack Grafana Dashboards
#
# Three types of Grafana Dashboards:
# * Static Dashboards (Ex. cloud_system_performance_comparsion.json)
# * Generic Generated Dashboards (Ex. OpenStack General System Performance)
# * Cloud Specific Dashboards (All Nodes CPU Graphs (for a specific cloud))
#
# The Cloud Specific Dashboards are the only ones that require a cloud's inventory be defined.
# You can deploy all of the Pre-Generated and Generated Dashboards and not the Cloud Specific
# Dashboards with cloud_dashboards=false
#
- name: Generate Individual Machine Dashboards
- name: Generate Generic Dashboards
template:
src: "{{role_path}}/templates/{{item.template_name}}_general_system_performance.json.j2"
dest: "{{role_path}}/files/{{item.process_list_name}}_general_system_performance.json"
with_items: "{{dashboards}}"
- name: Generate All Openstack Nodes CPU/Memory/Disk/Network Dashboards
- name: Generate Cloud Specific CPU/Memory/Disk/Network Dashboards
template:
src: "{{item}}.json.j2"
dest: "{{role_path}}/files/{{item}}.json"
@ -18,40 +27,51 @@
- all_memory_graphs
- all_disk_graphs
- all_network_graphs
when: cloud_dashboards
- name: Remove Existing Individual Machine Dashboards
- name: Remove Existing Static Dashboard(s)
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:
- cloud-system-performance-comparsion
- name: Remove Existing Generic Dashboards
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}}"
- name: Remove Existing All Openstack Nodes CPU/Memory/Disk/Network Dashboards
- name: Remove Existing Cloud Specific CPU/Memory/Disk/Network Dashboards
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
when: overwrite_existing and cloud_dashboards
with_items:
- "{{dashboard_cloud_name}}-all-nodes-cpu"
- "{{dashboard_cloud_name}}-all-nodes-memory"
- "{{dashboard_cloud_name}}-all-nodes-disk"
- "{{dashboard_cloud_name}}-all-nodes-network"
- cloud-system-performance-comparsion
- name: Upload dashboards to Grafana
- name: Upload Static Dashboards to Grafana
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/cloud_system_performance_comparsion.json"
- name: Upload Generic Dashboards to Grafana
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: Upload Dashboards to Grafana
- name: Upload Cloud Specific CPU/Memory/Disk/Network Dashboards
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"
- "{{role_path}}/files/all_disk_graphs.json"
- "{{role_path}}/files/all_network_graphs.json"
- "{{role_path}}/files/cloud_system_performance_comparsion.json"
when: cloud_dashboards
- name: Remove leftover json file(s) from Individual Machine Dashboards
- name: Remove leftover json file(s) from Generic Dashboards
file: path={{role_path}}/files/{{item.process_list_name}}_general_system_performance.json state=absent
with_items: "{{dashboards}}"
- name: Remove leftover json file(s) from All Openstack Nodes CPU/Memory/Disk/Network Dashboards
- name: Remove leftover json file(s) from Cloud Specific CPU/Memory/Disk/Network Dashboards
file: path={{role_path}}/files/{{item}} state=absent
with_items:
- all_cpu_graphs.json

View File

@ -2445,7 +2445,7 @@
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"nullPointMode": "{{metrics.nullPointMode}}",
"percentage": false,
"pointradius": 5,
"points": false,
@ -2456,20 +2456,12 @@
"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}}')"
"target": "alias(scale($Cloud.$Node.processes-{{process|replace('.', '_')|replace(':', '_')}}{{metric.query}}, 0.0001), '{{process}} {{metric.name}}')"
{% else %}
"target": "alias($Cloud.$Node.processes-{{process|replace('.', '_')|replace(':', '_')}}{{metric.query}}, '{{process}} {{metric.name}}')"
{% endif %}

View File

@ -2445,7 +2445,7 @@
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"nullPointMode": "{{metrics.nullPointMode}}",
"percentage": false,
"pointradius": 5,
"points": false,
@ -2456,20 +2456,12 @@
"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}}')"
"target": "alias(scale($Cloud.$Node.processes-{{process|replace('.', '_')|replace(':', '_')}}{{metric.query}}, 0.0001), '{{process}} {{metric.name}}')"
{% else %}
"target": "alias($Cloud.$Node.processes-{{process|replace('.', '_')|replace(':', '_')}}{{metric.query}}, '{{process}} {{metric.name}}')"
{% endif %}

View File

@ -1998,7 +1998,7 @@
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"nullPointMode": "{{metrics.nullPointMode}}",
"percentage": false,
"pointradius": 5,
"points": false,
@ -2009,20 +2009,12 @@
"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}}')"
"target": "alias(scale($Cloud.$Node.processes-{{process|replace('.', '_')|replace(':', '_')}}{{metric.query}}, 0.0001), '{{process}} {{metric.name}}')"
{% else %}
"target": "alias($Cloud.$Node.processes-{{process|replace('.', '_')|replace(':', '_')}}{{metric.query}}, '{{process}} {{metric.name}}')"
{% endif %}

View File

@ -3820,8 +3820,8 @@
"allFormat": "glob",
"current": {
"tags": [],
"text": "westfordperf",
"value": "westfordperf"
"text": "None",
"value": "None"
},
"datasource": null,
"includeAll": false,
@ -3879,8 +3879,8 @@
{
"allFormat": "glob",
"current": {
"text": "overcloud-controller-0_localdomain",
"value": "overcloud-controller-0_localdomain"
"text": "overcloud-controller-0",
"value": "overcloud-controller-0"
},
"datasource": null,
"includeAll": false,

View File

@ -1,6 +1,6 @@
---
#
# Vars to generate Per-Process component of Openstack Dashboards
# Vars to generate Per-Process component of OpenStack Dashboards
#
per_process_metrics:
@ -56,9 +56,9 @@ per_process_metrics:
per_process_panels:
#
# This dashboard should only contain Openstack Undercloud Node processes
# This dashboard should only contain OpenStack Undercloud Node processes
#
Openstack-Undercloud:
OpenStack-Undercloud:
- name: "Everything Else"
processes:
- dnsmasq
@ -66,8 +66,10 @@ per_process_panels:
- memcached
- mysqld
- ovs-vswitchd
- ovsdb-client
- ovsdb-server
- rabbitmq
- docker-registry
- name: "Nova"
processes:
- nova-api
@ -95,7 +97,7 @@ per_process_panels:
- heat-engine
- name: "Glance"
processes:
- glance-agent
- glance-api
- glance-registry
- name: "Ceilometer"
processes:
@ -105,19 +107,26 @@ per_process_panels:
- ceilometer-alarm-evaluator
- ceilometer-alaram-notifier
- ceilometer-collector
- name: "Aodh"
processes:
- aodh-evaluator
- aodh-listener
- aodh-notifier
- name: "Ironic"
processes:
- ironic-api
- ironic-conductor
- ironic-inspector
- dnsmasq-ironic
- dnsmasq-ironicinspector
- name: "Collectd"
processes:
- collectd
#
# This dashboard should only contain Openstack Controller Node processes
# This dashboard should only contain OpenStack Controller Node processes
#
Openstack-Controller:
OpenStack-Controller:
- name: "Everything Else"
processes:
- dnsmasq
@ -127,6 +136,7 @@ per_process_panels:
- mongod
- mysqld
- ovs-vswitchd
- ovsdb-client
- ovsdb-server
- rabbitmq
- redis-server
@ -164,7 +174,7 @@ per_process_panels:
- heat-engine
- name: "Glance"
processes:
- glance-agent
- glance-api
- glance-registry
- name: "Swift"
processes:
@ -189,6 +199,19 @@ per_process_panels:
- ceilometer-alarm-evaluator
- ceilometer-alaram-notifier
- ceilometer-collector
- name: "Gnocchi"
processes:
- gnocchi-metricd
- gnocchi-statsd
- name: "Aodh"
processes:
- aodh-evaluator
- aodh-listener
- aodh-notifier
- name: "Sahara"
processes:
- sahara-api
- sahara-engine
- name: "Corosync/Pacemaker"
processes:
- corosync
@ -205,12 +228,13 @@ per_process_panels:
- collectd
#
# This dashboard should only contain Openstack Compute Node processes
# This dashboard should only contain OpenStack Compute Node processes
#
Openstack-Compute:
OpenStack-Compute:
- name: "Everything Else"
processes:
- ovs-vswitchd
- ovsdb-client
- ovsdb-server
- qemu-kvm
- name: "Nova"
@ -228,9 +252,9 @@ per_process_panels:
- collectd
#
# This dashboard should only contain Openstack Ceph Node processes
# This dashboard should only contain OpenStack Ceph Node processes
#
Openstack-Ceph:
OpenStack-Ceph:
- name: "Ceph"
processes:
- ceph-osd
@ -242,10 +266,10 @@ per_process_panels:
- collectd
#
# This dashboard "Openstack" aims to be comprehensive with all processes across:
# This dashboard "OpenStack" aims to be comprehensive with all processes across:
# Undercloud, Controller, Compute, Ceph, etc... Nodes
#
Openstack:
OpenStack:
- name: "Everything Else"
processes:
- dnsmasq
@ -255,11 +279,13 @@ per_process_panels:
- mongod
- mysqld
- ovs-vswitchd
- ovsdb-client
- ovsdb-server
- qemu-kvm
- rabbitmq
- redis-server
- tuskar-api
- docker-registry
- name: "Nova"
processes:
- nova-api
@ -295,7 +321,7 @@ per_process_panels:
- heat-engine
- name: "Glance"
processes:
- glance-agent
- glance-api
- glance-registry
- name: "Swift"
processes:
@ -322,11 +348,26 @@ per_process_panels:
- ceilometer-collector
- ceilometer-agent-compute
- ceilometer-polling
- name: "Gnocchi"
processes:
- gnocchi-metricd
- gnocchi-statsd
- name: "Aodh"
processes:
- aodh-evaluator
- aodh-listener
- aodh-notifier
- name: "Sahara"
processes:
- sahara-api
- sahara-engine
- name: "Ironic"
processes:
- ironic-api
- ironic-conductor
- ironic-inspector
- dnsmasq-ironic
- dnsmasq-ironicinspector
- name: "Ceph"
processes:
- ceph-osd
@ -347,3 +388,48 @@ per_process_panels:
- name: "Collectd"
processes:
- collectd
#
# This dashboard is geared towards "Generic" Baremetal machines
#
Baremetal:
- name: "httpd"
processes:
- httpd
- name: "Collectd"
processes:
- collectd
#
# This dashboard is geared towards "Generic" VM Guests
#
Guest:
- name: "httpd"
processes:
- httpd
- name: "Collectd"
processes:
- collectd
#
# This dashboard is geared towards Carbon/Graphite/Grafana machines
#
Graphite:
- name: "Summerized"
processes:
- carbon-cache
- grafana-server
- httpd
- name: "Carbon"
processes:
- carbon-cache
- name: "Grafana"
processes:
- grafana-server
- name: "httpd"
processes:
- httpd
- name: "Collectd"
processes:
- collectd