Add new support for Prometheus/Grafana/Collectd
This patch adds the support for using Prometheus with Grafana and Collectd. Automated the most panels within the openstack system performance dashboad. To test it: $ansible-playbook -i hosts install/grafana-prometheus-dashboards.yml And make sure add grafana-api-key in the group_vars/all.yml Co-authored-by: Asma Syed Hameed <asyedham@redhat.com> Co-authored-by: Sai Sindhur Malleni <smalleni@redhat.com> Change-Id: Icb9fa058324165c0d304dc1dcf2dd843662307cf
This commit is contained in:
parent
a4b699c2e6
commit
219a5122fd
16
ansible/install/grafana-prometheus-dashboards.yml
Normal file
16
ansible/install/grafana-prometheus-dashboards.yml
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
# Builds and Uploads Dashboards for Browbeat analysis of System Performance Metrics
|
||||
# Templated General Dashboards (Ex. OpenStack General System Performance)
|
||||
|
||||
- hosts: localhost
|
||||
gather_facts: false
|
||||
vars:
|
||||
ansible_connection: local
|
||||
upload_general: true
|
||||
general_dashboards:
|
||||
- template_name: openstack
|
||||
template_node_type: "*"
|
||||
process_list_name: OpenStack
|
||||
roles:
|
||||
- grafana-prometheus-dashboards
|
||||
environment: "{{proxy_env}}"
|
@ -160,6 +160,8 @@ collectd_blockstorage: true
|
||||
collectd_objectstorage: true
|
||||
collectd_cephstorage: true
|
||||
collectd_compute: false
|
||||
collectd_graphite: true
|
||||
collectd_prometheus: false
|
||||
|
||||
########################
|
||||
# Opt-In Collectd plugins configuration:
|
||||
@ -319,6 +321,16 @@ regex_info: false
|
||||
ping_plugin: false
|
||||
ping_interval: 1
|
||||
|
||||
############################################
|
||||
# Prometheus/Collectd-Exporter Configuration
|
||||
############################################
|
||||
prometheus_host:
|
||||
#Avoid using underscore for prometheus_prefix
|
||||
prometheus_prefix:
|
||||
prometheus_port: 25826
|
||||
#collectd_exporter_port: 9103
|
||||
|
||||
|
||||
########################################
|
||||
# Carbon/Graphite Configuration
|
||||
########################################
|
||||
|
@ -115,3 +115,31 @@
|
||||
pip:
|
||||
requirements: "{{ browbeat_path }}/requirements.txt"
|
||||
virtualenv: "{{ browbeat_venv }}"
|
||||
|
||||
- block:
|
||||
- name: Uninstall old grafyaml version
|
||||
pip:
|
||||
name: grafyaml==0.0.7
|
||||
virtualenv: "{{ browbeat_venv }}"
|
||||
state: absent
|
||||
|
||||
- name: Install grafyaml version 0.0.8 for Prometheus-Grafana
|
||||
pip:
|
||||
name: git+https://opendev.org/opendev/grafyaml.git
|
||||
virtualenv: "{{ browbeat_venv }}"
|
||||
|
||||
- name: Get the python version installed
|
||||
command: echo "{{ ansible_python_version }}"
|
||||
register: installed_python_version
|
||||
|
||||
- name: Set fact for installed python version
|
||||
set_fact:
|
||||
installed_python_version: "{{installed_python_version.stdout[0:3]}}"
|
||||
|
||||
- name: Add regex option in grafyaml
|
||||
lineinfile:
|
||||
path: "{{ browbeat_path }}/.browbeat-venv/lib/python{{installed_python_version}}/site-packages/grafana_dashboards/schema/template/query.py"
|
||||
insertafter: "self.validate_refresh"
|
||||
line: " v.Optional('regex',default=''): v.All(str),"
|
||||
|
||||
when: collectd_prometheus
|
@ -5,7 +5,13 @@
|
||||
Interval {{collectd_interval}}
|
||||
|
||||
# Hostname for this machine, if not defined, use gethostname(2) system call
|
||||
{% if not collectd_prometheus %}
|
||||
Hostname "{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
{% if collectd_prometheus %}
|
||||
Hostname "{{prometheus_prefix}}_{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
# Loaded Plugins:
|
||||
LoadPlugin "logfile"
|
||||
@ -18,7 +24,12 @@ LoadPlugin "logfile"
|
||||
|
||||
LoadPlugin write_graphite
|
||||
LoadPlugin cpu
|
||||
{% if not collectd_prometheus %}
|
||||
LoadPlugin conntrack
|
||||
{% endif %}
|
||||
{% if collectd_prometheus %}
|
||||
LoadPlugin network
|
||||
{% endif %}
|
||||
LoadPlugin df
|
||||
LoadPlugin disk
|
||||
LoadPlugin exec
|
||||
@ -68,6 +79,7 @@ PreCacheChain "PreCache"
|
||||
</Chain>
|
||||
|
||||
# Graphite Host Configuration
|
||||
{% if collectd_graphite %}
|
||||
<Plugin write_graphite>
|
||||
<Carbon>
|
||||
Host "{{graphite_host}}"
|
||||
@ -80,6 +92,14 @@ PreCacheChain "PreCache"
|
||||
EscapeCharacter "_"
|
||||
</Carbon>
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
# Prometheus Host Configuration
|
||||
{% if collectd_prometheus %}
|
||||
<Plugin network>
|
||||
Server "{{prometheus_host}}" "{{prometheus_port}}"
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
<Plugin df>
|
||||
FSType anon_inodefs
|
||||
|
@ -5,7 +5,13 @@
|
||||
Interval {{collectd_interval}}
|
||||
|
||||
# Hostname for this machine, if not defined, use gethostname(2) system call
|
||||
{% if not collectd_prometheus %}
|
||||
Hostname "{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
{% if collectd_prometheus %}
|
||||
Hostname "{{prometheus_prefix}}_{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
# Loaded Plugins:
|
||||
LoadPlugin "logfile"
|
||||
@ -21,7 +27,12 @@ LoadPlugin write_graphite
|
||||
LoadPlugin ceph
|
||||
{% endif %}
|
||||
LoadPlugin cpu
|
||||
{% if not collectd_prometheus %}
|
||||
LoadPlugin conntrack
|
||||
{% endif %}
|
||||
{% if collectd_prometheus %}
|
||||
LoadPlugin network
|
||||
{% endif %}
|
||||
LoadPlugin df
|
||||
LoadPlugin disk
|
||||
LoadPlugin exec
|
||||
@ -71,6 +82,7 @@ PreCacheChain "PreCache"
|
||||
</Chain>
|
||||
|
||||
# Graphite Host Configuration
|
||||
{% if collectd_graphite %}
|
||||
<Plugin write_graphite>
|
||||
<Carbon>
|
||||
Host "{{graphite_host}}"
|
||||
@ -83,6 +95,15 @@ PreCacheChain "PreCache"
|
||||
EscapeCharacter "_"
|
||||
</Carbon>
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
# Prometheus Host Configuration
|
||||
{% if collectd_prometheus %}
|
||||
<Plugin network>
|
||||
Server "{{prometheus_host}}" "{{prometheus_port}}"
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
|
||||
{% if ceph_storage_collectd_plugin %}
|
||||
<Plugin ceph>
|
||||
|
@ -5,7 +5,13 @@
|
||||
Interval {{collectd_interval}}
|
||||
|
||||
# Hostname for this machine, if not defined, use gethostname(2) system call
|
||||
{% if not collectd_prometheus %}
|
||||
Hostname "{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
{% if collectd_prometheus %}
|
||||
Hostname "{{prometheus_prefix}}_{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
# Loaded Plugins:
|
||||
LoadPlugin "logfile"
|
||||
@ -18,7 +24,12 @@ LoadPlugin "logfile"
|
||||
|
||||
LoadPlugin write_graphite
|
||||
LoadPlugin cpu
|
||||
{% if not collectd_prometheus %}
|
||||
LoadPlugin conntrack
|
||||
{% endif %}
|
||||
{% if collectd_prometheus %}
|
||||
LoadPlugin network
|
||||
{% endif %}
|
||||
LoadPlugin df
|
||||
LoadPlugin disk
|
||||
LoadPlugin exec
|
||||
@ -68,6 +79,7 @@ PreCacheChain "PreCache"
|
||||
</Chain>
|
||||
|
||||
# Graphite Host Configuration
|
||||
{% if collectd_graphite %}
|
||||
<Plugin write_graphite>
|
||||
<Carbon>
|
||||
Host "{{graphite_host}}"
|
||||
@ -80,6 +92,14 @@ PreCacheChain "PreCache"
|
||||
EscapeCharacter "_"
|
||||
</Carbon>
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
# Prometheus Host Configuration
|
||||
{% if collectd_prometheus %}
|
||||
<Plugin network>
|
||||
Server "{{prometheus_host}}" "{{prometheus_port}}"
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
<Plugin df>
|
||||
FSType anon_inodefs
|
||||
|
@ -5,7 +5,13 @@
|
||||
Interval {{collectd_interval}}
|
||||
|
||||
# Hostname for this machine, if not defined, use gethostname(2) system call
|
||||
{% if not collectd_prometheus %}
|
||||
Hostname "{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
{% if collectd_prometheus %}
|
||||
Hostname "{{prometheus_prefix}}_{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
# Loaded Plugins:
|
||||
LoadPlugin "logfile"
|
||||
@ -26,7 +32,12 @@ LoadPlugin ceph
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
LoadPlugin cpu
|
||||
{% if not collectd_prometheus %}
|
||||
LoadPlugin conntrack
|
||||
{% endif %}
|
||||
{% if collectd_prometheus %}
|
||||
LoadPlugin network
|
||||
{% endif %}
|
||||
{% if keystone_overcloud_collectd_plugin %}
|
||||
{%if inventory_hostname == groups['controller'][0] %}
|
||||
LoadPlugin dbi
|
||||
@ -83,6 +94,7 @@ PreCacheChain "PreCache"
|
||||
</Chain>
|
||||
|
||||
# Graphite Host Configuration
|
||||
{% if collectd_graphite %}
|
||||
<Plugin write_graphite>
|
||||
<Carbon>
|
||||
Host "{{graphite_host}}"
|
||||
@ -95,6 +107,15 @@ PreCacheChain "PreCache"
|
||||
EscapeCharacter "_"
|
||||
</Carbon>
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
# Prometheus Host Configuration
|
||||
{% if collectd_prometheus %}
|
||||
<Plugin network>
|
||||
Server "{{prometheus_host}}" "{{prometheus_port}}"
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
{% if apache_controller_collectd_plugin %}
|
||||
|
||||
<Plugin apache>
|
||||
|
@ -5,7 +5,13 @@
|
||||
Interval {{collectd_interval}}
|
||||
|
||||
# Hostname for this machine, if not defined, use gethostname(2) system call
|
||||
{% if not collectd_prometheus %}
|
||||
Hostname "{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
{% if collectd_prometheus %}
|
||||
Hostname "{{prometheus_prefix}}_{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
# Loaded Plugins:
|
||||
LoadPlugin "logfile"
|
||||
@ -18,7 +24,12 @@ LoadPlugin "logfile"
|
||||
|
||||
LoadPlugin write_graphite
|
||||
LoadPlugin cpu
|
||||
{% if not collectd_prometheus %}
|
||||
LoadPlugin conntrack
|
||||
{% endif %}
|
||||
{% if collectd_prometheus %}
|
||||
LoadPlugin network
|
||||
{% endif %}
|
||||
LoadPlugin df
|
||||
LoadPlugin disk
|
||||
LoadPlugin exec
|
||||
@ -66,6 +77,7 @@ PreCacheChain "PreCache"
|
||||
</Chain>
|
||||
|
||||
# Graphite Host Configuration
|
||||
{% if collectd_graphite %}
|
||||
<Plugin write_graphite>
|
||||
<Carbon>
|
||||
Host "{{graphite_host}}"
|
||||
@ -78,6 +90,14 @@ PreCacheChain "PreCache"
|
||||
EscapeCharacter "_"
|
||||
</Carbon>
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
# Prometheus Host Configuration
|
||||
{% if collectd_prometheus %}
|
||||
<Plugin network>
|
||||
Server "{{prometheus_host}}" "{{prometheus_port}}"
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
<Plugin df>
|
||||
FSType anon_inodefs
|
||||
|
@ -5,7 +5,13 @@
|
||||
Interval {{collectd_interval}}
|
||||
|
||||
# Hostname for this machine, if not defined, use gethostname(2) system call
|
||||
{% if not collectd_prometheus %}
|
||||
Hostname "{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
{% if collectd_prometheus %}
|
||||
Hostname "{{prometheus_prefix}}_{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
# Loaded Plugins:
|
||||
LoadPlugin "logfile"
|
||||
@ -18,7 +24,12 @@ LoadPlugin "logfile"
|
||||
|
||||
LoadPlugin write_graphite
|
||||
LoadPlugin cpu
|
||||
{% if not collectd_prometheus %}
|
||||
LoadPlugin conntrack
|
||||
{% endif %}
|
||||
{% if collectd_prometheus %}
|
||||
LoadPlugin network
|
||||
{% endif %}
|
||||
LoadPlugin df
|
||||
LoadPlugin disk
|
||||
LoadPlugin exec
|
||||
@ -68,6 +79,7 @@ PreCacheChain "PreCache"
|
||||
</Chain>
|
||||
|
||||
# Graphite Host Configuration
|
||||
{% if collectd_graphite %}
|
||||
<Plugin write_graphite>
|
||||
<Carbon>
|
||||
Host "{{graphite_host}}"
|
||||
@ -80,6 +92,14 @@ PreCacheChain "PreCache"
|
||||
EscapeCharacter "_"
|
||||
</Carbon>
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
# Prometheus Host Configuration
|
||||
{% if collectd_prometheus %}
|
||||
<Plugin network>
|
||||
Server "{{prometheus_host}}" "{{prometheus_port}}"
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
<Plugin df>
|
||||
FSType anon_inodefs
|
||||
|
@ -5,7 +5,13 @@
|
||||
Interval {{collectd_interval}}
|
||||
|
||||
# Hostname for this machine, if not defined, use gethostname(2) system call
|
||||
{% if not collectd_prometheus %}
|
||||
Hostname "{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
{% if collectd_prometheus %}
|
||||
Hostname "{{prometheus_prefix}}_{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
# Loaded Plugins:
|
||||
LoadPlugin "logfile"
|
||||
@ -21,7 +27,12 @@ LoadPlugin write_graphite
|
||||
LoadPlugin apache
|
||||
{% endif %}
|
||||
LoadPlugin cpu
|
||||
{% if not collectd_prometheus %}
|
||||
LoadPlugin conntrack
|
||||
{% endif %}
|
||||
{% if collectd_prometheus %}
|
||||
LoadPlugin network
|
||||
{% endif %}
|
||||
{% if keystone_undercloud_collectd_plugin %}
|
||||
LoadPlugin dbi
|
||||
{% endif %}
|
||||
@ -84,6 +95,7 @@ PreCacheChain "PreCache"
|
||||
</Chain>
|
||||
|
||||
# Graphite Host Configuration
|
||||
{% if collectd_graphite %}
|
||||
<Plugin write_graphite>
|
||||
<Carbon>
|
||||
Host "{{graphite_host}}"
|
||||
@ -96,6 +108,15 @@ PreCacheChain "PreCache"
|
||||
EscapeCharacter "_"
|
||||
</Carbon>
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
#Prometheus Host Configuration
|
||||
{% if collectd_prometheus %}
|
||||
<Plugin network>
|
||||
Server "{{prometheus_host}}" "{{prometheus_port}}"
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
{% if apache_undercloud_collectd_plugin %}
|
||||
|
||||
<Plugin apache>
|
||||
|
@ -5,8 +5,17 @@
|
||||
Interval {{collectd_interval}}
|
||||
|
||||
# Hostname for this machine, if not defined, use gethostname(2) system call
|
||||
{% if not collectd_prometheus %}
|
||||
Hostname "{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
{% if collectd_prometheus %}
|
||||
Hostname "{{prometheus_prefix}}_{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
{% if collectd_prometheus %}
|
||||
LoadPlugin network
|
||||
{% endif %}
|
||||
LoadPlugin write_graphite
|
||||
LoadPlugin cpu
|
||||
LoadPlugin df
|
||||
@ -56,6 +65,7 @@ LoadPlugin disk
|
||||
</Plugin>
|
||||
|
||||
# Graphite Host Configuration
|
||||
{% if collectd_graphite %}
|
||||
<Plugin write_graphite>
|
||||
<Carbon>
|
||||
Host "{{graphite_host}}"
|
||||
@ -68,6 +78,13 @@ LoadPlugin disk
|
||||
EscapeCharacter "_"
|
||||
</Carbon>
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
# Prometheus Host Configuration
|
||||
{% if collectd_prometheus %}
|
||||
<Plugin network>
|
||||
Server "{{prometheus_host}}" "{{prometheus_port}}"
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
# Include other collectd configuration files
|
||||
Include "/etc/collectd.d"
|
||||
|
@ -5,7 +5,13 @@
|
||||
Interval {{collectd_interval}}
|
||||
|
||||
# Hostname for this machine, if not defined, use gethostname(2) system call
|
||||
{% if not collectd_prometheus %}
|
||||
Hostname "{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
{% if collectd_prometheus %}
|
||||
Hostname "{{prometheus_prefix}}_{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
# Loaded Plugins:
|
||||
LoadPlugin "logfile"
|
||||
@ -17,8 +23,13 @@ LoadPlugin "logfile"
|
||||
</Plugin>
|
||||
|
||||
LoadPlugin write_graphite
|
||||
{% if collectd_prometheus %}
|
||||
LoadPlugin network
|
||||
{% endif %}
|
||||
LoadPlugin cpu
|
||||
{% if not collectd_prometheus %}
|
||||
LoadPlugin conntrack
|
||||
{% endif %}
|
||||
LoadPlugin df
|
||||
LoadPlugin disk
|
||||
LoadPlugin exec
|
||||
@ -68,6 +79,7 @@ PreCacheChain "PreCache"
|
||||
</Chain>
|
||||
|
||||
# Graphite Host Configuration
|
||||
{% if collectd_graphite %}
|
||||
<Plugin write_graphite>
|
||||
<Carbon>
|
||||
Host "{{graphite_host}}"
|
||||
@ -80,6 +92,14 @@ PreCacheChain "PreCache"
|
||||
EscapeCharacter "_"
|
||||
</Carbon>
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
# Prometheus Host Configuration
|
||||
{% if collectd_prometheus %}
|
||||
<Plugin network>
|
||||
Server "{{prometheus_host}}" "{{prometheus_port}}"
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
<Plugin df>
|
||||
FSType anon_inodefs
|
||||
|
@ -5,7 +5,13 @@
|
||||
Interval {{collectd_interval}}
|
||||
|
||||
# Hostname for this machine, if not defined, use gethostname(2) system call
|
||||
{% if not collectd_prometheus %}
|
||||
Hostname "{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
{% if collectd_prometheus %}
|
||||
Hostname "{{prometheus_prefix}}_{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
# Loaded Plugins:
|
||||
LoadPlugin "logfile"
|
||||
@ -21,7 +27,12 @@ LoadPlugin write_graphite
|
||||
LoadPlugin ceph
|
||||
{% endif %}
|
||||
LoadPlugin cpu
|
||||
{% if not collectd_prometheus %}
|
||||
LoadPlugin conntrack
|
||||
{% endif %}
|
||||
{% if collectd_prometheus %}
|
||||
LoadPlugin network
|
||||
{% endif %}
|
||||
LoadPlugin df
|
||||
LoadPlugin disk
|
||||
LoadPlugin exec
|
||||
@ -71,6 +82,7 @@ PreCacheChain "PreCache"
|
||||
</Chain>
|
||||
|
||||
# Graphite Host Configuration
|
||||
{% if collectd_graphite %}
|
||||
<Plugin write_graphite>
|
||||
<Carbon>
|
||||
Host "{{graphite_host}}"
|
||||
@ -83,6 +95,14 @@ PreCacheChain "PreCache"
|
||||
EscapeCharacter "_"
|
||||
</Carbon>
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
# Prometheus Host Configuration
|
||||
{% if collectd_prometheus %}
|
||||
<Plugin network>
|
||||
Server "{{prometheus_host}}" "{{prometheus_port}}"
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
{% if ceph_storage_collectd_plugin %}
|
||||
<Plugin ceph>
|
||||
|
@ -5,7 +5,13 @@
|
||||
Interval {{collectd_interval}}
|
||||
|
||||
# Hostname for this machine, if not defined, use gethostname(2) system call
|
||||
{% if not collectd_prometheus %}
|
||||
Hostname "{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
{% if collectd_prometheus %}
|
||||
Hostname "{{prometheus_prefix}}_{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
# Loaded Plugins:
|
||||
LoadPlugin "logfile"
|
||||
@ -18,8 +24,13 @@ File "/var/log/collectd.log"
|
||||
|
||||
LoadPlugin write_graphite
|
||||
LoadPlugin cpu
|
||||
LoadPlugin conntrack
|
||||
LoadPlugin df
|
||||
{% if collectd_prometheus %}
|
||||
LoadPlugin network
|
||||
{% endif %}
|
||||
{% if not collectd_prometheus %}
|
||||
LoadPlugin conntrack
|
||||
{% endif %}
|
||||
LoadPlugin disk
|
||||
LoadPlugin exec
|
||||
LoadPlugin interface
|
||||
@ -57,7 +68,9 @@ PreCacheChain "PreCache"
|
||||
Target "return"
|
||||
</Chain>
|
||||
|
||||
|
||||
# Graphite Host Configuration
|
||||
{% if collectd_graphite %}
|
||||
<Plugin write_graphite>
|
||||
<Carbon>
|
||||
Host "{{graphite_host}}"
|
||||
@ -70,6 +83,15 @@ PreCacheChain "PreCache"
|
||||
EscapeCharacter "_"
|
||||
</Carbon>
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
# Prometheus Host Configuration
|
||||
{% if collectd_prometheus %}
|
||||
<Plugin network>
|
||||
Server "{{prometheus_host}}" "{{prometheus_port}}"
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
|
||||
<Plugin df>
|
||||
FSType anon_inodefs
|
||||
|
@ -5,7 +5,13 @@
|
||||
Interval {{collectd_interval}}
|
||||
|
||||
# Hostname for this machine, if not defined, use gethostname(2) system call
|
||||
{% if not collectd_prometheus %}
|
||||
Hostname "{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
{% if collectd_prometheus %}
|
||||
Hostname "{{prometheus_prefix}}_{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
# Loaded Plugins:
|
||||
LoadPlugin "logfile"
|
||||
@ -20,13 +26,18 @@ LoadPlugin write_graphite
|
||||
{% if apache_controller_collectd_plugin %}
|
||||
LoadPlugin apache
|
||||
{% endif %}
|
||||
{% if collectd_prometheus %}
|
||||
LoadPlugin network
|
||||
{% endif %}
|
||||
{% if ceph_controller_collectd_plugin %}
|
||||
{% if inventory_hostname == groups['controller'][0] %}
|
||||
LoadPlugin ceph
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
LoadPlugin cpu
|
||||
{% if not collectd_prometheus %}
|
||||
LoadPlugin conntrack
|
||||
{% endif %}
|
||||
{% if keystone_overcloud_collectd_plugin %}
|
||||
{%if inventory_hostname == groups['controller'][0] %}
|
||||
LoadPlugin dbi
|
||||
@ -73,6 +84,7 @@ PreCacheChain "PreCache"
|
||||
</Chain>
|
||||
|
||||
# Graphite Host Configuration
|
||||
{% if collectd_graphite %}
|
||||
<Plugin write_graphite>
|
||||
<Carbon>
|
||||
Host "{{graphite_host}}"
|
||||
@ -85,6 +97,15 @@ PreCacheChain "PreCache"
|
||||
EscapeCharacter "_"
|
||||
</Carbon>
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
# Prometheus Host Configuration
|
||||
{% if collectd_prometheus %}
|
||||
<Plugin network>
|
||||
Server "{{prometheus_host}}" "{{prometheus_port}}"
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
{% if apache_controller_collectd_plugin %}
|
||||
|
||||
<Plugin apache>
|
||||
|
@ -5,10 +5,19 @@
|
||||
Interval {{collectd_interval}}
|
||||
|
||||
# Hostname for this machine, if not defined, use gethostname(2) system call
|
||||
{% if not collectd_prometheus %}
|
||||
Hostname "{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
{% if collectd_prometheus %}
|
||||
Hostname "{{prometheus_prefix}}_{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
LoadPlugin write_graphite
|
||||
LoadPlugin cpu
|
||||
{% if collectd_prometheus %}
|
||||
LoadPlugin network
|
||||
{% endif %}
|
||||
LoadPlugin df
|
||||
LoadPlugin interface
|
||||
LoadPlugin irq
|
||||
@ -56,6 +65,7 @@ LoadPlugin disk
|
||||
</Plugin>
|
||||
|
||||
# Graphite Host Configuration
|
||||
{% if collectd_graphite %}
|
||||
<Plugin write_graphite>
|
||||
<Carbon>
|
||||
Host "{{graphite_host}}"
|
||||
@ -68,6 +78,14 @@ LoadPlugin disk
|
||||
EscapeCharacter "_"
|
||||
</Carbon>
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
# Prometheus Host Configuration
|
||||
{% if collectd_prometheus %}
|
||||
<Plugin network>
|
||||
Server "{{prometheus_host}}" "{{prometheus_port}}"
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
# Include other collectd configuration files
|
||||
Include "/etc/collectd.d"
|
||||
|
@ -5,7 +5,13 @@
|
||||
Interval {{collectd_interval}}
|
||||
|
||||
# Hostname for this machine, if not defined, use gethostname(2) system call
|
||||
{% if not collectd_prometheus %}
|
||||
Hostname "{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
{% if collectd_prometheus %}
|
||||
Hostname "{{prometheus_prefix}}_{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
# Loaded Plugins:
|
||||
LoadPlugin "logfile"
|
||||
@ -18,7 +24,12 @@ LoadPlugin "logfile"
|
||||
|
||||
LoadPlugin write_graphite
|
||||
LoadPlugin cpu
|
||||
{% if not collectd_prometheus %}
|
||||
LoadPlugin conntrack
|
||||
{% endif %}
|
||||
{% if collectd_prometheus %}
|
||||
LoadPlugin network
|
||||
{% endif %}
|
||||
LoadPlugin df
|
||||
LoadPlugin disk
|
||||
LoadPlugin exec
|
||||
@ -66,6 +77,7 @@ PreCacheChain "PreCache"
|
||||
</Chain>
|
||||
|
||||
# Graphite Host Configuration
|
||||
{% if collectd_graphite %}
|
||||
<Plugin write_graphite>
|
||||
<Carbon>
|
||||
Host "{{graphite_host}}"
|
||||
@ -78,6 +90,14 @@ PreCacheChain "PreCache"
|
||||
EscapeCharacter "_"
|
||||
</Carbon>
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
# Prometheus Host Configuration
|
||||
{% if collectd_prometheus %}
|
||||
<Plugin network>
|
||||
Server "{{prometheus_host}}" "{{prometheus_port}}"
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
<Plugin df>
|
||||
FSType anon_inodefs
|
||||
|
@ -5,7 +5,13 @@
|
||||
Interval {{collectd_interval}}
|
||||
|
||||
# Hostname for this machine, if not defined, use gethostname(2) system call
|
||||
{% if not collectd_prometheus %}
|
||||
Hostname "{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
{% if collectd_prometheus %}
|
||||
Hostname "{{prometheus_prefix}}_{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
# Loaded Plugins:
|
||||
LoadPlugin "logfile"
|
||||
@ -18,7 +24,12 @@ LoadPlugin "logfile"
|
||||
|
||||
LoadPlugin write_graphite
|
||||
LoadPlugin cpu
|
||||
{% if not collectd_prometheus %}
|
||||
LoadPlugin conntrack
|
||||
{% endif %}
|
||||
{% if collectd_prometheus %}
|
||||
LoadPlugin network
|
||||
{% endif %}
|
||||
LoadPlugin df
|
||||
LoadPlugin disk
|
||||
LoadPlugin exec
|
||||
@ -68,6 +79,7 @@ PreCacheChain "PreCache"
|
||||
</Chain>
|
||||
|
||||
# Graphite Host Configuration
|
||||
{% if collectd_graphite %}
|
||||
<Plugin write_graphite>
|
||||
<Carbon>
|
||||
Host "{{graphite_host}}"
|
||||
@ -80,6 +92,14 @@ PreCacheChain "PreCache"
|
||||
EscapeCharacter "_"
|
||||
</Carbon>
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
# Prometheus Host Configuration
|
||||
{% if collectd_prometheus %}
|
||||
<Plugin network>
|
||||
Server "{{prometheus_host}}" "{{prometheus_port}}"
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
<Plugin df>
|
||||
FSType anon_inodefs
|
||||
|
@ -5,7 +5,13 @@
|
||||
Interval {{collectd_interval}}
|
||||
|
||||
# Hostname for this machine, if not defined, use gethostname(2) system call
|
||||
{% if not collectd_prometheus %}
|
||||
Hostname "{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
{% if collectd_prometheus %}
|
||||
Hostname "{{prometheus_prefix}}_{{inventory_hostname}}"
|
||||
{% endif %}
|
||||
|
||||
# Loaded Plugins:
|
||||
LoadPlugin "logfile"
|
||||
@ -21,7 +27,12 @@ LoadPlugin write_graphite
|
||||
LoadPlugin apache
|
||||
{% endif %}
|
||||
LoadPlugin cpu
|
||||
{% if not collectd_prometheus %}
|
||||
LoadPlugin conntrack
|
||||
{% endif %}
|
||||
{% if collectd_prometheus %}
|
||||
LoadPlugin network
|
||||
{% endif %}
|
||||
{% if keystone_undercloud_collectd_plugin %}
|
||||
LoadPlugin dbi
|
||||
{% endif %}
|
||||
@ -74,6 +85,7 @@ PreCacheChain "PreCache"
|
||||
</Chain>
|
||||
|
||||
# Graphite Host Configuration
|
||||
{% if collectd_graphite %}
|
||||
<Plugin write_graphite>
|
||||
<Carbon>
|
||||
Host "{{graphite_host}}"
|
||||
@ -86,6 +98,15 @@ PreCacheChain "PreCache"
|
||||
EscapeCharacter "_"
|
||||
</Carbon>
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
# Prometheus Host Configuration
|
||||
{% if collectd_prometheus %}
|
||||
<Plugin network>
|
||||
Server "{{prometheus_host}}" "{{prometheus_port}}"
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
|
||||
{% if apache_undercloud_collectd_plugin %}
|
||||
|
||||
<Plugin apache>
|
||||
|
@ -0,0 +1 @@
|
||||
This directory stores the descriptions of Grafana dashboards in YAML format and is removed it once uploaded.
|
@ -0,0 +1,38 @@
|
||||
---
|
||||
#
|
||||
# Generate & Upload Browbeat OpenStack Grafana Dashboards
|
||||
#
|
||||
|
||||
# check that grafana_apikey is entered prior to playbook run
|
||||
- name: Check Grafana API key
|
||||
fail:
|
||||
msg="** Edit grafana_apikey in ../install/group_vars/all.yml before running **"
|
||||
when: grafana_apikey is none
|
||||
|
||||
- name: Check Cloud Name
|
||||
fail:
|
||||
msg: "The Cloud name {{dashboard_cloud_name}} is reserved for a service, please use a different one"
|
||||
when: item == dashboard_cloud_name
|
||||
with_items: "{{forbidden_cloud_names}}"
|
||||
|
||||
# Templated General Performance Dashboards
|
||||
- name: Generate General Performance Dashboards
|
||||
template:
|
||||
src: "{{role_path}}/templates/{{item.template_name}}_general_system_performance.yaml.j2"
|
||||
dest: "{{role_path}}/files/{{item.process_list_name}}_general_system_performance.yaml"
|
||||
when: upload_general|bool
|
||||
with_items: "{{general_dashboards}}"
|
||||
|
||||
- name: Upload General Performance Dashboards to Grafana
|
||||
shell: |
|
||||
. {{browbeat_venv}}/bin/activate
|
||||
grafana-dashboard --grafana-url http://{{grafana_host}}:{{grafana_port}} --grafana-apikey {{grafana_apikey}} update {{role_path}}/files/{{item.process_list_name}}_general_system_performance.yaml
|
||||
when: upload_general|bool
|
||||
with_items: "{{general_dashboards}}"
|
||||
|
||||
- name: Remove leftover yaml file(s) from General Performance Dashboards
|
||||
file:
|
||||
path: "{{role_path}}/files/{{item.process_list_name}}_general_system_performance.yaml"
|
||||
state: absent
|
||||
when: upload_general|bool
|
||||
with_items: "{{general_dashboards}}"
|
@ -0,0 +1,108 @@
|
||||
#jinja2:lstrip_blocks: True
|
||||
{% set apache_groups = ['undercloud', 'controller', '*'] %}
|
||||
{% set cephmon_groups = ['controller', '*'] %}
|
||||
{% set gnocchi_groups = ['controller', '*'] %}
|
||||
{% set ironic_groups = ['undercloud'] %}
|
||||
{% set mariadb_groups = ['undercloud', 'controller', '*'] %}
|
||||
{% set odl_groups = ['controller', '*'] %}
|
||||
{% set ovsagent_groups = ['controller', 'compute', '*'] %}
|
||||
{% set rabbitmq_groups = ['undercloud', 'controller', '*'] %}
|
||||
{% set swift_stat_groups = ['controller', '*'] %}
|
||||
---
|
||||
dashboard:
|
||||
title: {{item.process_list_name}} General System Performance Browbeat
|
||||
links:
|
||||
- title: Openstack General Dashboards
|
||||
type: dashboards
|
||||
asDropdown: true
|
||||
includeVars: true
|
||||
keepTime: true
|
||||
icon: cloud
|
||||
tags:
|
||||
- OSP
|
||||
tags:
|
||||
- OSP
|
||||
templating:
|
||||
- name: Cloud
|
||||
datasource: Prometheus
|
||||
query: label_values(exported_instance)
|
||||
regex: /^(.+?)_/g
|
||||
refresh: 1
|
||||
type: query
|
||||
- name: Node
|
||||
datasource: Prometheus
|
||||
query: label_values(exported_instance)
|
||||
regex: /[^_]*_(.+)/
|
||||
refresh: 1
|
||||
type: query
|
||||
- name: Disk
|
||||
datasource: Prometheus
|
||||
query: label_values(disk)
|
||||
refresh: 1
|
||||
type: query
|
||||
- name: CPU
|
||||
datasource: Prometheus
|
||||
query: label_values(cpu)
|
||||
refresh: 1
|
||||
type: query
|
||||
- name: Interface
|
||||
datasource: Prometheus
|
||||
query: label_values(interface)
|
||||
refresh: 1
|
||||
type: query
|
||||
- name: Host
|
||||
datasource: Prometheus
|
||||
query: label_values(instance)
|
||||
refresh: 1
|
||||
type: query
|
||||
- name: Numa
|
||||
datasource: Prometheus
|
||||
query: label_values(numa)
|
||||
refresh: 1
|
||||
type: query
|
||||
- name: Process
|
||||
datasource: Prometheus
|
||||
query: label_values(processes)
|
||||
refresh: 1
|
||||
type: query
|
||||
- name: Tail
|
||||
datasource: Prometheus
|
||||
query: label_values(tail)
|
||||
refresh: 1
|
||||
type: query
|
||||
time:
|
||||
from: now-1h
|
||||
to: now
|
||||
rows:
|
||||
{% include 'partials/description.yaml' %}
|
||||
|
||||
{% include 'partials/cpu_all.yaml' %}
|
||||
|
||||
{% include 'partials/cpu_cores.yaml' %}
|
||||
|
||||
{% include 'partials/memory.yaml' %}
|
||||
|
||||
{% include 'partials/disk.yaml' %}
|
||||
|
||||
{% include 'partials/df.yaml' %}
|
||||
|
||||
{% include 'partials/network.yaml' %}
|
||||
|
||||
{% include 'partials/turbostat.yaml' %}
|
||||
|
||||
{% include 'partials/numa.yaml' %}
|
||||
|
||||
{% include 'partials/irq.yaml' %}
|
||||
|
||||
{% include 'partials/load.yaml' %}
|
||||
|
||||
{% include 'partials/processes.yaml' %}
|
||||
|
||||
{% set per_process_row_title_prefix = 'OSP' %}
|
||||
{% include 'partials/per_process_rows.yaml.j2' %}
|
||||
|
||||
{% if item.template_node_type in mariadb_groups %}
|
||||
{% include 'partials/mariadb.yaml' %}
|
||||
{% endif %}
|
||||
|
||||
{% include 'partials/tail.yaml' %}
|
@ -0,0 +1,89 @@
|
||||
- title: CPU All
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - All CPUs
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
stack: true
|
||||
targets:
|
||||
- expr: '100 * (sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]",type="idle"}[5m])) / sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]"}[5m])))'
|
||||
legendFormat: Idle
|
||||
refId: A
|
||||
- expr: '100 * (sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]",type="user"}[5m])) / sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]"}[5m])))'
|
||||
legendFormat: User
|
||||
refId: B
|
||||
- expr: '100 * (sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]",type="system"}[5m])) / sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]"}[5m])))'
|
||||
legendFormat: System
|
||||
refId: C
|
||||
- expr: '100 * (sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]",type="interrupt"}[5m])) / sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]"}[5m])))'
|
||||
legendFormat: Interrupt
|
||||
refId: D
|
||||
- expr: '100 * (sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]",type="softirq"}[5m])) / sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]"}[5m])))'
|
||||
legendFormat: Softirq
|
||||
refId: E
|
||||
- expr: '100 * (sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]",type="wait"}[5m])) / sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]"}[5m])))'
|
||||
legendFormat: Wait
|
||||
refId: F
|
||||
- expr: '100 * (sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]",type="nice"}[5m])) / sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]"}[5m])))'
|
||||
legendFormat: Nice
|
||||
refId: G
|
||||
- expr: '100 * (sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]",type="steal"}[5m])) / sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]"}[5m])))'
|
||||
legendFormat: Steal
|
||||
refId: H
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: short
|
||||
- title: $Cloud - $Node - All CPUs Sum
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
stack: true
|
||||
targets:
|
||||
- expr: '100 * sum(sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]",type="idle"}[5m])) by (cpu) / sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]"}[5m])) by (cpu))'
|
||||
legendFormat: Idle
|
||||
redfId: A
|
||||
- expr: '100 * sum(sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]",type="interrupt"}[5m])) by (cpu) / sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]"}[5m])) by (cpu))'
|
||||
legendFormat: Interrupt
|
||||
redfId: B
|
||||
- expr: '100 * sum(sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]",type="system"}[5m])) by (cpu) / sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]"}[5m])) by (cpu))'
|
||||
legendFormat: System
|
||||
redfId: C
|
||||
- expr: '100 * sum(sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]",type="nice"}[5m])) by (cpu) / sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]"}[5m])) by (cpu))'
|
||||
legendFormat: Nice
|
||||
redfId: D
|
||||
- expr: '100 * sum(sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]",type="steal"}[5m])) by (cpu) / sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]"}[5m])) by (cpu))'
|
||||
legendFormat: Steal
|
||||
redfId: E
|
||||
- expr: '100 * sum(sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]",type="user"}[5m])) by (cpu) / sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]"}[5m])) by (cpu))'
|
||||
legendFormat: User
|
||||
redfId: F
|
||||
- expr: '100 * sum(sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]",type="softirq"}[5m])) by (cpu) / sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]"}[5m])) by (cpu))'
|
||||
legendFormat: Softirq
|
||||
redfId: G
|
||||
- expr: '100 * sum(sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]",type="wait"}[5m])) by (cpu) / sum(irate(collectd_cpu_total{exported_instance=~"[[Cloud]]_[[Node]]"}[5m])) by (cpu))'
|
||||
legendFormat: Wait
|
||||
redfId: H
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: short
|
@ -0,0 +1,49 @@
|
||||
- title: Per CPU Logical CPU Core (0-9)
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - CPU Core $CPU
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
minSpan: 6
|
||||
nullPointMode: 'null'
|
||||
repeat: cpus0
|
||||
stack: true
|
||||
targets:
|
||||
- expr: '100 * (sum(irate(collectd_cpu_total{cpu=~"$CPU", exported_instance=~"[[Cloud]]_[[Node]]",type="idle"}[5m])) / sum(irate(collectd_cpu_total{cpu=~"$CPU", exported_instance=~"[[Cloud]]_[[Node]]"}[5m])))'
|
||||
legendFormat: Idle
|
||||
refId: A
|
||||
- expr: '100 * (sum(irate(collectd_cpu_total{cpu=~"$CPU", exported_instance=~"[[Cloud]]_[[Node]]",type="interrupt"}[5m])) / sum(irate(collectd_cpu_total{cpu=~"$CPU", exported_instance=~"[[Cloud]]_[[Node]]"}[5m])))'
|
||||
legendFormat: Interrupt
|
||||
refId: B
|
||||
- expr: '100 * (sum(irate(collectd_cpu_total{cpu=~"$CPU", exported_instance=~"[[Cloud]]_[[Node]]",type="nice"}[5m])) / sum(irate(collectd_cpu_total{cpu=~"$CPU", exported_instance=~"[[Cloud]]_[[Node]]"}[5m])))'
|
||||
legendFormat: Nice
|
||||
refId: C
|
||||
- expr: '100 * (sum(irate(collectd_cpu_total{cpu=~"$CPU", exported_instance=~"[[Cloud]]_[[Node]]",type="softirq"}[5m])) / sum(irate(collectd_cpu_total{cpu=~"$CPU", exported_instance=~"[[Cloud]]_[[Node]]"}[5m])))'
|
||||
legendFormat: Softirq
|
||||
refId: D
|
||||
- expr: '100 * (sum(irate(collectd_cpu_total{cpu=~"$CPU", exported_instance=~"[[Cloud]]_[[Node]]",type="steal"}[5m])) / sum(irate(collectd_cpu_total{cpu=~"$CPU", exported_instance=~"[[Cloud]]_[[Node]]"}[5m])))'
|
||||
legendFormat: Steal
|
||||
refId: E
|
||||
- expr: '100 * (sum(irate(collectd_cpu_total{cpu=~"$CPU", exported_instance=~"[[Cloud]]_[[Node]]",type="system"}[5m])) / sum(irate(collectd_cpu_total{cpu=~"$CPU", exported_instance=~"[[Cloud]]_[[Node]]"}[5m])))'
|
||||
legendFormat: System
|
||||
refId: F
|
||||
- expr: '100 * (sum(irate(collectd_cpu_total{cpu=~"$CPU", exported_instance=~"[[Cloud]]_[[Node]]",type="user"}[5m])) / sum(irate(collectd_cpu_total{cpu=~"$CPU", exported_instance=~"[[Cloud]]_[[Node]]"}[5m])))'
|
||||
legendFormat: User
|
||||
refId: G
|
||||
- expr: '100 * (sum(irate(collectd_cpu_total{cpu=~"$CPU", exported_instance=~"[[Cloud]]_[[Node]]",type="wait"}[5m])) / sum(irate(collectd_cpu_total{cpu=~"$CPU", exported_instance=~"[[Cloud]]_[[Node]]"}[5m])))'
|
||||
legendFormat: Wait
|
||||
refId: H
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: short
|
@ -0,0 +1,6 @@
|
||||
- title: description row
|
||||
height: 50px
|
||||
panels:
|
||||
- title: Browbeat provided Dashboard
|
||||
content: "**This dashboard is provided by Browbeat and managed via Grafyaml**"
|
||||
type: text
|
@ -0,0 +1,55 @@
|
||||
- title: DF
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - Partition % Used
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- expr: '100 * (sum(collectd_df_df_complex{df ="boot", exported_instance=~"[[Cloud]]_[[Node]]", type="used"}) / sum(collectd_df_df_complex{df="boot", exported_instance=~"[[Cloud]]_[[Node]]"}))'
|
||||
legendFormat: Boot
|
||||
refId: A
|
||||
- expr: '100 * (sum(collectd_df_df_complex{df ="root", exported_instance=~"[[Cloud]]_[[Node]]", type="used"}) / sum(collectd_df_df_complex{df="root", exported_instance=~"[[Cloud]]_[[Node]]"}))'
|
||||
legendFormat: Root
|
||||
refId: B
|
||||
yaxes:
|
||||
- format: percent
|
||||
max: 100
|
||||
- format: short
|
||||
- title: $Cloud - $Node - Inodes % Used
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- expr: 'collectd_df_percent_inodes{df="boot",exported_instance="[[Cloud]]_[[Node]]", type="used"}'
|
||||
legendFormat: Boot
|
||||
refId: A
|
||||
- expr: 'collectd_df_percent_inodes{df="root",exported_instance="[[Cloud]]_[[Node]]", type="used"}'
|
||||
legendFormat: Root
|
||||
refId: B
|
||||
yaxes:
|
||||
- format: percent
|
||||
max: 100
|
||||
- format: short
|
@ -0,0 +1,155 @@
|
||||
- title: Disk
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - $Disk iops
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: Write
|
||||
transform: negative-Y
|
||||
targets:
|
||||
- expr: 'irate(collectd_disk_disk_ops_0_total{exported_instance=~"[[Cloud]]_[[Node]]", disk=~"$Disk"}[5m])'
|
||||
legendFormat: Read
|
||||
refId: A
|
||||
- expr: 'irate(collectd_disk_disk_ops_1_total{exported_instance=~"[[Cloud]]_[[Node]]", disk=~"$Disk"}[5m])'
|
||||
legendFormat: Write
|
||||
refId: B
|
||||
yaxes:
|
||||
- format: iops
|
||||
- format: short
|
||||
- title: $Cloud - $Node - $Disk Throughput
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: Write
|
||||
transform: negative-Y
|
||||
targets:
|
||||
- expr: 'irate(collectd_disk_disk_octets_0_total{disk=~"$Disk",exported_instance=~"[[Cloud]]_[[Node]]"}[5m])'
|
||||
legendFormat: Read
|
||||
refId: A
|
||||
- expr: 'irate(collectd_disk_disk_octets_1_total{disk=~"$Disk",exported_instance=~"[[Cloud]]_[[Node]]"}[5m])'
|
||||
legendFormat: Write
|
||||
refId: B
|
||||
yaxes:
|
||||
- format: Bps
|
||||
- format: short
|
||||
- title: $Cloud - $Node - $Disk Merged iops
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: Write
|
||||
transform: negative-Y
|
||||
targets:
|
||||
- expr: 'irate(collectd_disk_disk_merged_0_total{disk=~"$Disk",exported_instance=~"[[Cloud]]_[[Node]]"}[5m])'
|
||||
legendFormat: Read
|
||||
refId: A
|
||||
- expr: 'irate(collectd_disk_disk_merged_1_total{disk=~"$Disk",exported_instance=~"[[Cloud]]_[[Node]]"}[5m])'
|
||||
legendFormat: Write
|
||||
refId: B
|
||||
yaxes:
|
||||
- format: iops
|
||||
- format: short
|
||||
- title: $Cloud - $Node - $Disk Pending Operations
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- expr: 'collectd_disk_pending_operations{disk=~"$Disk",exported_instance="[[Cloud]]_[[Node]]"}'
|
||||
legendFormat: Pending Operations
|
||||
refId: A
|
||||
yaxes:
|
||||
- format: short
|
||||
- format: short
|
||||
- title: $Cloud - $Node - $Disk Average Time (Estimated)
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: Write
|
||||
transform: negative-Y
|
||||
targets:
|
||||
- expr: 'irate(collectd_disk_disk_time_0_total{disk=~"$Disk",exported_instance=~"[[Cloud]]_[[Node]]"}[5m])'
|
||||
legendFormat: Read
|
||||
refId: A
|
||||
- expr: 'irate(collectd_disk_disk_time_1_total{disk=~"$Disk",exported_instance=~"[[Cloud]]_[[Node]]"}[5m])'
|
||||
legendFormat: Write
|
||||
refId: B
|
||||
yaxes:
|
||||
- format: ms
|
||||
- format: short
|
||||
- title: $Cloud - $Node - $Disk IO Time
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: Weighted Time
|
||||
yaxis: 2
|
||||
targets:
|
||||
- expr: 'irate(collectd_disk_disk_io_time_0_total{disk=~"$Disk",exported_instance=~"[[Cloud]]_[[Node]]"}[5m])'
|
||||
legendFormat: Time
|
||||
refId: A
|
||||
- expr: 'irate(collectd_disk_disk_io_time_1_total{disk=~"$Disk",exported_instance=~"[[Cloud]]_[[Node]]"}[5m])'
|
||||
legendFormat: Weighted Time
|
||||
refId: B
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: ms
|
@ -0,0 +1,95 @@
|
||||
- title: IRQ
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - IRQ
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- expr: 'sum(irate(collectd_irq_total{exported_instance=~"[[Cloud]]_[[Node]]", irq="CAL"}[5m]))'
|
||||
legendFormat: CAL
|
||||
refId: A
|
||||
- expr: 'sum(irate(collectd_irq_total{exported_instance=~"[[Cloud]]_[[Node]]", irq="DFR"}[5m]))'
|
||||
legendFormat: DFR
|
||||
refId: B
|
||||
- expr: 'sum(irate(collectd_irq_total{exported_instance=~"[[Cloud]]_[[Node]]", irq="ERR"}[5m]))'
|
||||
legendFormat: ERR
|
||||
refId: C
|
||||
- expr: 'sum(irate(collectd_irq_total{exported_instance=~"[[Cloud]]_[[Node]]", irq="IWI"}[5m]))'
|
||||
legendFormat: IWI
|
||||
refId: D
|
||||
- expr: 'sum(irate(collectd_irq_total{exported_instance=~"[[Cloud]]_[[Node]]", irq="LOC"}[5m]))'
|
||||
legendFormat: LOC
|
||||
refId: E
|
||||
- expr: 'sum(irate(collectd_irq_total{exported_instance=~"[[Cloud]]_[[Node]]", irq="MCE"}[5m]))'
|
||||
legendFormat: MCE
|
||||
refId: F
|
||||
- expr: 'sum(irate(collectd_irq_total{exported_instance=~"[[Cloud]]_[[Node]]", irq="MCP"}[5m]))'
|
||||
legendFormat: MCP
|
||||
refId: G
|
||||
- expr: 'sum(irate(collectd_irq_total{exported_instance=~"[[Cloud]]_[[Node]]", irq="MIS"}[5m]))'
|
||||
legendFormat: MIS
|
||||
refId: H
|
||||
- expr: 'sum(irate(collectd_irq_total{exported_instance=~"[[Cloud]]_[[Node]]", irq="NIMI"}[5m]))'
|
||||
legendFormat: NIMI
|
||||
refId: I
|
||||
- expr: 'sum(irate(collectd_irq_total{exported_instance=~"[[Cloud]]_[[Node]]", irq="NPI"}[5m]))'
|
||||
legendFormat: NPI
|
||||
refId: J
|
||||
- expr: 'sum(irate(collectd_irq_total{exported_instance=~"[[Cloud]]_[[Node]]", irq="PIN"}[5m]))'
|
||||
legendFormat: PIN
|
||||
refId: K
|
||||
- expr: 'sum(irate(collectd_irq_total{exported_instance=~"[[Cloud]]_[[Node]]", irq="PIW"}[5m]))'
|
||||
legendFormat: PIW
|
||||
refId: L
|
||||
- expr: 'sum(irate(collectd_irq_total{exported_instance=~"[[Cloud]]_[[Node]]", irq="PMI"}[5m]))'
|
||||
legendFormat: PMI
|
||||
refId: M
|
||||
- expr: 'sum(irate(collectd_irq_total{exported_instance=~"[[Cloud]]_[[Node]]", irq="RES"}[5m]))'
|
||||
legendFormat: RES
|
||||
refId: N
|
||||
- expr: 'sum(irate(collectd_irq_total{exported_instance=~"[[Cloud]]_[[Node]]", irq="RTR"}[5m]))'
|
||||
legendFormat: RTR
|
||||
refId: O
|
||||
- expr: 'sum(irate(collectd_irq_total{exported_instance=~"[[Cloud]]_[[Node]]", irq="SPU"}[5m]))'
|
||||
legendFormat: SPU
|
||||
refId: P
|
||||
- expr: 'sum(irate(collectd_irq_total{exported_instance=~"[[Cloud]]_[[Node]]", irq="THR"}[5m]))'
|
||||
legendFormat: THR
|
||||
refId: Q
|
||||
- expr: 'sum(irate(collectd_irq_total{exported_instance=~"[[Cloud]]_[[Node]]", irq="TLB"}[5m]))'
|
||||
legendFormat: TLB
|
||||
refId: R
|
||||
- expr: 'sum(irate(collectd_irq_total{exported_instance=~"[[Cloud]]_[[Node]]", irq="TRM"}[5m]))'
|
||||
legendFormat: TRM
|
||||
refId: S
|
||||
- title: $Cloud - $Node - Interrupts
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- expr: 'sum(irate(collectd_irq_total{exported_instance=~"[[Cloud]]_[[Node]]", irq=~"[0-9]*"}[5m]))'
|
||||
legendFormat: Interrupt
|
||||
refId: A
|
@ -0,0 +1,39 @@
|
||||
- title: Load / Uptime
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - All CPUs
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: Uptime
|
||||
lines: false
|
||||
yaxis: 2
|
||||
targets:
|
||||
- expr: 'collectd_load_0{exported_instance=~"[[Cloud]]_[[Node]]"}'
|
||||
legendFormat: 1m avg
|
||||
refId: A
|
||||
- expr: 'collectd_load_1{exported_instance=~"[[Cloud]]_[[Node]]"}'
|
||||
legendFormat: 5m avg
|
||||
refId: B
|
||||
- expr: 'collectd_load_2{exported_instance=~"[[Cloud]]_[[Node]]"}'
|
||||
legendFormat: 15m avg
|
||||
refId: C
|
||||
- expr: 'collectd_uptime{exported_instance=~"[[Cloud]]_[[Node]]"}'
|
||||
legendFormat: Uptime
|
||||
refId: D
|
||||
yaxes:
|
||||
- format: short
|
||||
- format: s
|
@ -0,0 +1,233 @@
|
||||
- title: MariaDB
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: MySQL Threads
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- expr: 'collectd_mysql_threads{exported_instance=~"[[Cloud]]_[[Node]]",mysql=~"[[Node]]", type="cached"}'
|
||||
legendFormat: Cached
|
||||
refId: A
|
||||
- expr: 'collectd_mysql_threads{exported_instance=~"[[Cloud]]_[[Node]]",mysql=~"[[Node]]", type="connected"}'
|
||||
legendFormat: Connected
|
||||
refId: B
|
||||
- expr: 'collectd_mysql_threads{exported_instance=~"[[Cloud]]_[[Node]]",mysql=~"[[Node]]", type="running"}'
|
||||
legendFormat: Running
|
||||
refId: C
|
||||
- title: MySQL Traffic
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- expr: 'irate(collectd_mysql_mysql_octets_0_total{exported_instance=~"[[Cloud]]_[[Node]]",mysql=~"[[Node]]"}[5m])'
|
||||
legendFormat: RX
|
||||
refId: A
|
||||
- expr: 'irate(collectd_mysql_mysql_octets_1_total{exported_instance=~"[[Cloud]]_[[Node]]",mysql=~"[[Node]]"}[5m])'
|
||||
legendFormat: TX
|
||||
refId: B
|
||||
yaxes:
|
||||
- format: bytes
|
||||
- format: short
|
||||
- title: MySQL Query Cache
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- expr: 'collectd_mysql_cache_result_total{exported_instance=~"[[Cloud]]_[[Node]]",mysql=~"[[Node]]",type="qcache-hits"}'
|
||||
legendFormat: hits
|
||||
refId: A
|
||||
- expr: 'collectd_mysql_cache_result_total{exported_instance=~"[[Cloud]]_[[Node]]",mysql=~"[[Node]]",type="qcache-inserts"}'
|
||||
legendFormat: inserts
|
||||
refId: B
|
||||
- expr: 'collectd_mysql_cache_result_total{exported_instance=~"[[Cloud]]_[[Node]]",mysql=~"[[Node]]",type="qcache-not_cached"}'
|
||||
legendFormat: not_cached
|
||||
refId: C
|
||||
- expr: 'collectd_mysql_cache_result_total{exported_instance=~"[[Cloud]]_[[Node]]",mysql=~"[[Node]]",type="qcache-prunes"}'
|
||||
legendFormat: prunes
|
||||
refId: D
|
||||
yaxes:
|
||||
- format: bytes
|
||||
- format: short
|
||||
- title: MySQL Query Cache Size
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- expr: 'collectd_mysql_cache_size{exported_instance=~"[[Cloud]]_[[Node]]",mysql=~"[[Node]]",type="qcache"}'
|
||||
legendFormat: qcache
|
||||
refId: A
|
||||
- title: MySQL Buffer Pool Data
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- expr: 'collectd_mysql_mysql_bpool_bytes{exported_instance=~"[[Cloud]]_[[Node]]",mysql=~"[[Node]]",type="data"}'
|
||||
legendFormat: Data
|
||||
refId: A
|
||||
- expr: 'collectd_mysql_mysql_bpool_bytes{exported_instance=~"[[Cloud]]_[[Node]]",mysql=~"[[Node]]",type="dirty"}'
|
||||
legendFormat: Dirty
|
||||
refId: B
|
||||
yaxes:
|
||||
- format: bytes
|
||||
- format: short
|
||||
- title: MySQL Buffer Pool Counters
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- expr: 'irate(collectd_mysql_mysql_bpool_counters_total{exported_instance=~"[[Cloud]]_[[Node]]",mysql=~"[[Node]]",type=~".*"}[5m])'
|
||||
legendFormat: mysql-{{'{{'}} type {{'}}'}}
|
||||
refId: A
|
||||
- title: MySQL Commands
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- expr: 'irate(collectd_mysql_mysql_commands_total{exported_instance=~"[[Cloud]]_[[Node]]",mysql=~"[[Node]]",type=~".*"}[5m])'
|
||||
legendFormat: mysql-{{'{{'}} type {{'}}'}}
|
||||
refId: A
|
||||
- title: MySQL Handler
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- expr: 'irate(collectd_mysql_mysql_handler_total{exported_instance=~"[[Cloud]]_[[Node]]",mysql=~"[[Node]]",type=~".*"}[5m])'
|
||||
legendFormat: mysql-{{'{{'}} type {{'}}'}}
|
||||
refId: A
|
||||
- title: MySQL Locks
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- expr: 'irate(collectd_mysql_mysql_locks_total{exported_instance=~"[[Cloud]]_[[Node]]",mysql=~"[[Node]]",type=~".*"}[5m])'
|
||||
legendFormat: mysql-{{'{{'}} type {{'}}'}}
|
||||
refId: A
|
||||
- title: MySQL Select
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- expr: 'irate(collectd_mysql_mysql_select_total{exported_instance=~"[[Cloud]]_[[Node]]",mysql=~"[[Node]]",type=~".*"}[5m])'
|
||||
legendFormat: mysql-{{'{{'}} type {{'}}'}}
|
||||
refId: A
|
||||
- title: MySQL Sort
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- expr: 'irate(collectd_mysql_mysql_sort_total{exported_instance="[[Cloud]]_[[Node]]",mysql=~"[[Node]]",type=~".*"}[5m])'
|
||||
legendFormat: mysql-{{'{{'}} type {{'}}'}}
|
||||
refId: A
|
@ -0,0 +1,127 @@
|
||||
- title: Memory & Swap
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - Memory in Bytes
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
stack: true
|
||||
targets:
|
||||
- expr: 'sum(collectd_memory{exported_instance="[[Cloud]]_[[Node]]", memory="buffered"})'
|
||||
legendFormat: Buffered
|
||||
refId: A
|
||||
- expr: 'sum(collectd_memory{exported_instance="[[Cloud]]_[[Node]]", memory="cached"})'
|
||||
legendFormat: Cached
|
||||
refId: B
|
||||
- expr: 'sum(collectd_memory{exported_instance="[[Cloud]]_[[Node]]", memory="free"})'
|
||||
legendFormat: Free
|
||||
refId: C
|
||||
- expr: 'sum(collectd_memory{exported_instance="[[Cloud]]_[[Node]]", memory="slab_recl"})'
|
||||
legendFormat: Slab_recl
|
||||
refId: D
|
||||
- expr: 'sum(collectd_memory{exported_instance="[[Cloud]]_[[Node]]", memory="slab_unrecl"})'
|
||||
legendFormat: Slab_unrecl
|
||||
refId: E
|
||||
- expr: 'sum(collectd_memory{exported_instance="[[Cloud]]_[[Node]]", memory="used"})'
|
||||
legendFormat: Used
|
||||
refId: F
|
||||
yaxes:
|
||||
- format: bytes
|
||||
- format: short
|
||||
- title: $Cloud - $Node - Memory in Percentage
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
stack: true
|
||||
targets:
|
||||
- expr: '100 * sum(collectd_memory{exported_instance="[[Cloud]]_[[Node]]", memory="buffered"}) / sum(collectd_memory{exported_instance="[[Cloud]]_[[Node]]"})'
|
||||
legendFormat: Buffered
|
||||
refId: A
|
||||
- expr: '100 * sum(collectd_memory{exported_instance="[[Cloud]]_[[Node]]",memory="cached"}) / sum(collectd_memory{exported_instance="[[Cloud]]_[[Node]]"})'
|
||||
legendFormat: Cached
|
||||
refId: B
|
||||
- expr: '100 * sum(collectd_memory{exported_instance="[[Cloud]]_[[Node]]", memory="free"}) / sum(collectd_memory{exported_instance="[[Cloud]]_[[Node]]"})'
|
||||
legendFormat: Free
|
||||
refId: C
|
||||
- expr: '100 * sum(collectd_memory{exported_instance="[[Cloud]]_[[Node]]", memory="slab_recl"}) / sum(collectd_memory{exported_instance="[[Cloud]]_[[Node]]"})'
|
||||
legendFormat: Slab_recl
|
||||
refId: D
|
||||
- expr: '100 * sum(collectd_memory{exported_instance="[[Cloud]]_[[Node]]", memory="slab_unrecl"}) / sum(collectd_memory{exported_instance="[[Cloud]]_[[Node]]"})'
|
||||
legendFormat: Slab_unrecl
|
||||
refId: E
|
||||
- expr: '100 * sum(collectd_memory{exported_instance="[[Cloud]]_[[Node]]",memory="used"}) / sum(collectd_memory{exported_instance="[[Cloud]]_[[Node]]"})'
|
||||
legendFormat: Used
|
||||
refId: F
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: short
|
||||
- title: $Cloud - $Node - Swap Usage
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
stack: true
|
||||
targets:
|
||||
- expr: 'collectd_swap{exported_instance="[[Cloud]]_[[Node]]", swap="cached"}'
|
||||
legendFormat: Cached
|
||||
refId: A
|
||||
- expr: 'collectd_swap{exported_instance="[[Cloud]]_[[Node]]", swap="free"}'
|
||||
legendFormat: Free
|
||||
refId: B
|
||||
- expr: 'collectd_swap{exported_instance="[[Cloud]]_[[Node]]", swap="used"}'
|
||||
legendFormat: Used
|
||||
refId: C
|
||||
yaxes:
|
||||
- format: bits
|
||||
- format: short
|
||||
- title: $Cloud - $Node - Swap IO
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- expr: 'irate(collectd_swap_swap_io_total{exported_instance=~"[[Cloud]]_[[Node]]", swap="in"}[5m])'
|
||||
legendFormat: In
|
||||
refId: A
|
||||
- expr: 'irate(collectd_swap_swap_io_total{exported_instance="[[Cloud]]_[[Node]]", swap="in"}[5m])'
|
||||
legendFormat: Out
|
||||
refId: B
|
||||
yaxes:
|
||||
- format: bytes
|
||||
- format: short
|
@ -0,0 +1,83 @@
|
||||
- title: Network
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - $Interface Network IO
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: RX
|
||||
transform: negative-Y
|
||||
targets:
|
||||
- expr: 'irate(collectd_interface_if_packets_1_total{exported_instance=~"[[Cloud]]_[[Node]]", interface=~"$Interface"}[5m])'
|
||||
legendFormat: TX
|
||||
refId: A
|
||||
- expr: 'irate(collectd_interface_if_packets_0_total{exported_instance=~"[[Cloud]]_[[Node]]", interface=~"$Interface"}[5m])'
|
||||
legendFormat: RX
|
||||
refId: B
|
||||
yaxes:
|
||||
- format: pps
|
||||
- format: short
|
||||
- title: $Cloud - $Node - $Interface Network Throughput
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: RX
|
||||
transform: negative-Y
|
||||
targets:
|
||||
- expr: '8 * irate(collectd_interface_if_octets_1_total{exported_instance=~"[[Cloud]]_[[Node]]",interface=~"$Interface"}[5m])'
|
||||
legendFormat: TX
|
||||
refId: A
|
||||
- expr: '8 * irate(collectd_interface_if_octets_0_total{exported_instance=~"[[Cloud]]_[[Node]]",interface=~"$Interface"}[5m])'
|
||||
legendFormat: RX
|
||||
refId: B
|
||||
yaxes:
|
||||
- format: bps
|
||||
- format: short
|
||||
- title: $Cloud - $Node - $Interface Errors
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: RX
|
||||
transform: negative-Y
|
||||
targets:
|
||||
- expr: 'irate(collectd_interface_if_errors_1_total{exported_instance=~"[[Cloud]]_[[Node]]", interface=~"$Interface"}[5m])'
|
||||
legendFormat: TX
|
||||
refId: A
|
||||
- expr: 'irate(collectd_interface_if_errors_0_total{exported_instance=~"[[Cloud]]_[[Node]]", interface=~"$Interface"}[5m])'
|
||||
legendFormat: RX
|
||||
refId: B
|
||||
yaxes:
|
||||
- format: short
|
||||
- format: short
|
@ -0,0 +1,38 @@
|
||||
- title: Numa
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - Numastat
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- expr: 'irate(collectd_numa_vmpage_action_total{exported_instance=~"[[Cloud]]_[[Node]]", numa=~"$Numa", type="interleave_hit"}[5m])'
|
||||
legendFormat: $Numa.interleave_hit
|
||||
refId: A
|
||||
- expr: 'irate(collectd_numa_vmpage_action_total{exported_instance=~"[[Cloud]]_[[Node]]", numa=~"$Numa", type="local_node"}[5m])'
|
||||
legendFormat: $Numa.local_node
|
||||
refId: B
|
||||
- expr: 'irate(collectd_numa_vmpage_action_total{exported_instance=~"[[Cloud]]_[[Node]]", numa=~"$Numa", type="numa_foreign"}[5m])'
|
||||
legendFormat: $Numa.numa_foreign
|
||||
refId: C
|
||||
- expr: 'irate(collectd_numa_vmpage_action_total{exported_instance=~"[[Cloud]]_[[Node]]", numa=~"$Numa", type="numa_hit"}[5m])'
|
||||
legendFormat: $Numa.numa_hit
|
||||
refId: D
|
||||
- expr: 'irate(collectd_numa_vmpage_action_total{exported_instance=~"[[Cloud]]_[[Node]]", numa=~"$Numa", type="numa_miss"}[5m])'
|
||||
legendFormat: $Numa.numa_miss
|
||||
refId: E
|
||||
- expr: 'irate(collectd_numa_vmpage_action_total{exported_instance=~"[[Cloud]]_[[Node]]", numa=~"$Numa", type="other_node"}[5m])'
|
||||
legendFormat: $Numa.other_node
|
||||
refId: F
|
@ -0,0 +1,34 @@
|
||||
#jinja2:lstrip_blocks: True
|
||||
{% for metrics in per_process_metrics %}
|
||||
- title: {{per_process_row_title_prefix}} {{metrics.name}}
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
{% for panel in per_process_panels[item.process_list_name] %}
|
||||
- title: {{panel.name}}
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: '{{metrics.nullPointMode}}'
|
||||
targets:
|
||||
{% for process in panel.processes %}
|
||||
{% for metric in metrics.metrics %}
|
||||
- expr: {{metric.expr}}{exported_instance=~"[[Cloud]]_[[Node]]", processes="{{process}}"}
|
||||
legendFormat: {{process}}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
yaxes:
|
||||
- format: {{metrics.y1units}}
|
||||
- format: short
|
||||
{% endfor %}
|
||||
{% endfor %}
|
@ -0,0 +1,55 @@
|
||||
- title: Processes
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - Processes State
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
stack: true
|
||||
targets:
|
||||
- expr: 'collectd_processes_ps_state{exported_instance=~"[[Cloud]]_[[Node]]",processes="running"}'
|
||||
legendFormat: Running
|
||||
refId: A
|
||||
- expr: 'collectd_processes_ps_state{exported_instance=~"[[Cloud]]_[[Node]]",processes="stopped"}'
|
||||
legendFormat: Stopped
|
||||
refId: B
|
||||
- expr: 'collectd_processes_ps_state{exported_instance=~"[[Cloud]]_[[Node]]",processes="sleeping"}'
|
||||
legendFormat: Sleeping
|
||||
refId: C
|
||||
- expr: 'collectd_processes_ps_state{exported_instance=~"[[Cloud]]_[[Node]]",processes="blocked"}'
|
||||
legendFormat: Blocked
|
||||
refId: D
|
||||
- expr: 'collectd_processes_ps_state{exported_instance=~"[[Cloud]]_[[Node]]",processes="paging"}'
|
||||
legendFormat: Paging
|
||||
refId: E
|
||||
- expr: 'collectd_processes_ps_state{exported_instance=~"[[Cloud]]_[[Node]]",processes="zombies"}'
|
||||
legendFormat: Zombies
|
||||
refId: F
|
||||
- title: $Cloud - $Node - Fork Rate
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- expr: 'irate(collectd_processes_fork_rate_total{exported_instance=~"[[Cloud]]_[[Node]]"}[5m])'
|
||||
legendFormat: Fork Rate
|
||||
refId: A
|
@ -0,0 +1,56 @@
|
||||
- title: Tail
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - Tail Error
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- expr: 'collectd_tail_counter_total{exported_instance="[[Cloud]]_[[Node]]",tail=~"[[Tail]]",type="error"}'
|
||||
legendFormat: "[[Tail]]"
|
||||
refId: A
|
||||
- title: $Cloud - $Node - Tail Warn
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: 'collectd_tail_counter_total{exported_instance="[[Cloud]]_[[Node]]",tail=~"[[Tail]]",type="warn"}'
|
||||
legendFormat: "[[Tail]]"
|
||||
refId: A
|
||||
- title: $Cloud - $Node - Tail Info
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: 'collectd_tail_counter_total{exported_instance="[[Cloud]]_[[Node]]",tail=~"[[Tail]]",type="info"}'
|
||||
legendFormat: "[[Tail]]"
|
||||
refId: A
|
@ -0,0 +1,59 @@
|
||||
- title: Turbostat
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - Gauge TSC & SMI Count
|
||||
type: graph
|
||||
decimals: 2
|
||||
fill: 0
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: SMI Count
|
||||
yaxis: 2
|
||||
targets:
|
||||
- expr: 'collectd_turbostat_gauge{exported_instance=~"[[Cloud]]_[[Node]]", turbostat=~".*",type="TSC"}'
|
||||
legendFormat: tsc-{{'{{'}}turbostat{{'}}'}}
|
||||
refId: A
|
||||
yaxes:
|
||||
- format: hertz
|
||||
- format: short
|
||||
- title: $Cloud - $Node - turbostat Freq Avg
|
||||
type: graph
|
||||
fill: 0
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- expr: '1000000 * collectd_turbostat_frequency{exported_instance=~"[[Cloud]]_[[Node]]", turbostat=~".*", type="average"}'
|
||||
yaxes:
|
||||
- format: hertz
|
||||
- format: short
|
||||
- title: $Cloud - $Node - turbostat Freq Busy
|
||||
type: graph
|
||||
decimals: 2
|
||||
fill: 0
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- expr: '1000000 * collectd_turbostat_frequency{exported_instance=~"[[Cloud]]_[[Node]]", turbostat=~".*", type="busy"}'
|
||||
yaxes:
|
||||
- format: hertz
|
||||
- format: short
|
||||
- title: $Cloud - $Node - turbostat c0%
|
||||
type: graph
|
||||
decimals: 2
|
||||
fill: 0
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- expr: 'collectd_turbostat_percent{exported_instance=~"[[Cloud]]_[[Node]]", turbostat=~".*", type="c0"}'
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: short
|
||||
- title: $Cloud - $Node - turbostat c1%
|
||||
type: graph
|
||||
decimals: 2
|
||||
fill: 0
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- expr: 'collectd_turbostat_percent{exported_instance=~"[[Cloud]]_[[Node]]", turbostat=~".*", type="c1"}'
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: short
|
@ -0,0 +1,258 @@
|
||||
---
|
||||
#
|
||||
# Vars for Dashboard Generation
|
||||
#
|
||||
|
||||
dashboard_groups:
|
||||
- undercloud
|
||||
- controller
|
||||
- networker
|
||||
- blockstorage
|
||||
- objectstorage
|
||||
- cephstorage
|
||||
- compute
|
||||
|
||||
per_process_metrics:
|
||||
- name: "Process/Thread Counts"
|
||||
y1units: "short"
|
||||
metrics:
|
||||
- name: "Processes"
|
||||
expr: "collectd_processes_ps_count_0"
|
||||
- name: "Threads"
|
||||
expr: "collectd_processes_ps_count_1"
|
||||
nullPointMode: "null"
|
||||
- name: "Process CPU"
|
||||
y1units: "percent"
|
||||
metrics:
|
||||
- name: "System"
|
||||
expr: "collectd_processes_ps_cputime_0_total"
|
||||
- name: "User"
|
||||
expr: "collectd_processes_ps_cputime_1_total"
|
||||
nullPointMode: "null"
|
||||
- name: "Process Memory"
|
||||
y1units: "bits"
|
||||
metrics:
|
||||
- name: "RSS"
|
||||
expr: "collectd_processes_ps_rss"
|
||||
- name: "Virtual"
|
||||
expr: "collectd_processes_ps_vm"
|
||||
nullPointMode: "connected"
|
||||
- name: "Process Page Faults"
|
||||
y1units: "short"
|
||||
metrics:
|
||||
- name: "Majflt"
|
||||
expr: "collectd_processes_ps_pagefaults_0_total"
|
||||
- name: "Minflt"
|
||||
expr: "collectd_processes_ps_pagefaults_1_total"
|
||||
nullPointMode: "null"
|
||||
- name: "Process IOPs(Estimated via SYSCALLS)"
|
||||
y1units: "iops"
|
||||
metrics:
|
||||
- name: "Read"
|
||||
expr: "collectd_processes_io_ops_0_total"
|
||||
- name: "Write"
|
||||
expr: "collectd_processes_io_ops_1_total"
|
||||
nullPointMode: "null"
|
||||
- name: "Process IO Throughput(Estimated via SYSCALLS)"
|
||||
y1units: "bytes"
|
||||
metrics:
|
||||
- name: "Rx"
|
||||
expr: "collectd_processes_io_octets_0_total"
|
||||
- name: "Tx"
|
||||
expr: "collectd_processes_io_octets_1_total"
|
||||
nullPointMode: "null"
|
||||
- name: "Process Disk IO Throughput(Estimated via SYSCALLS)"
|
||||
y1units: "bytes"
|
||||
metrics:
|
||||
- name: "Read"
|
||||
expr: "collectd_processes_disk_octets_0_total"
|
||||
- name: "Write"
|
||||
expr: "collectd_processes_disk_octets_1_total"
|
||||
nullPointMode: "null"
|
||||
|
||||
per_process_panels:
|
||||
|
||||
#
|
||||
# This dashboard "OpenStack" aims to be comprehensive with all processes across:
|
||||
# Undercloud, Controller, BlockStorage, ObjectStorage, CephStorage, Compute Nodes
|
||||
#
|
||||
OpenStack:
|
||||
- name: "Ansible"
|
||||
processes:
|
||||
- ansible
|
||||
- name: "Aodh"
|
||||
processes:
|
||||
- aodh-evaluator
|
||||
- aodh-listener
|
||||
- aodh-notifier
|
||||
- aodh_wsgi
|
||||
- name: "Barbican"
|
||||
processes:
|
||||
- barbican_wsgi
|
||||
- barbican-keystone-listener
|
||||
- barbican-worker
|
||||
- name: "Ceilometer"
|
||||
processes:
|
||||
- ceilometer-agent-notification
|
||||
- ceilometer-api
|
||||
- ceilometer-collector
|
||||
- ceilometer-polling
|
||||
- ceilometer_wsgi
|
||||
- name: "Ceph"
|
||||
processes:
|
||||
- ceph-mon
|
||||
- ceph-osd
|
||||
- name: "Cinder"
|
||||
processes:
|
||||
- cinder-api
|
||||
- cinder-scheduler
|
||||
- cinder-volume
|
||||
- cinder_wsgi
|
||||
- name: "Corosync/Pacemaker"
|
||||
processes:
|
||||
- attrd
|
||||
- cib
|
||||
- corosync
|
||||
- crmd
|
||||
- lrmd
|
||||
- pacemakerd
|
||||
- pcsd
|
||||
- pengine
|
||||
- stonithd
|
||||
- name: "Docker"
|
||||
processes:
|
||||
- docker-registry
|
||||
- dockerd-current
|
||||
- docker-containerd-current
|
||||
- name: "Everything Else"
|
||||
processes:
|
||||
- dnsmasq
|
||||
- haproxy
|
||||
- httpd
|
||||
- iscsid
|
||||
- keepalived
|
||||
- memcached
|
||||
- mongod
|
||||
- mysqld
|
||||
- rabbitmq
|
||||
- redis-server
|
||||
- karaf
|
||||
- name: "Glance"
|
||||
processes:
|
||||
- glance-api
|
||||
- glance-registry
|
||||
- name: "Gnocchi"
|
||||
processes:
|
||||
- gnocchi-metricd-master
|
||||
- gnocchi-metricd-scheduler
|
||||
- gnocchi-metricd-processing
|
||||
- gnocchi-metricd-reporting
|
||||
- gnocchi-metricd-janitor
|
||||
- gnocchi-statsd
|
||||
- gnocchi_wsgi
|
||||
# Old "proctitle" of metricd (osp_version =< Newton)
|
||||
- gnocchi-metricd
|
||||
- name: "Heat"
|
||||
processes:
|
||||
- heat-api
|
||||
- heat-api-cfn
|
||||
- heat-api-cloudwatch
|
||||
- heat-engine
|
||||
- heat_api_cfn
|
||||
- heat_api_cloudwatch
|
||||
- heat_api_wsgi
|
||||
- name: "Horizon"
|
||||
processes:
|
||||
- horizon
|
||||
- name: "Ironic"
|
||||
processes:
|
||||
- ironic-api
|
||||
- ironic-conductor
|
||||
- ironic-inspector
|
||||
- dnsmasq-ironic
|
||||
- dnsmasq-ironicinspector
|
||||
- ironic_wsgi
|
||||
- name: "Keystone"
|
||||
processes:
|
||||
- keystone-admin
|
||||
- keystone-main
|
||||
- keystone-token-flush
|
||||
- name: "Mistral"
|
||||
processes:
|
||||
- mistral-server-api
|
||||
- mistral-server-engine
|
||||
- mistral-server-executor
|
||||
- name: "Neutron"
|
||||
processes:
|
||||
- neutron-dhcp-agent
|
||||
- neutron-l3-agent
|
||||
- neutron-metadata-agent
|
||||
- neutron-ns-metadata-proxy
|
||||
- neutron-openvswitch-agent
|
||||
- neutron-rootwrap-daemon
|
||||
- neutron-server
|
||||
- neutron-keepalived-state-change
|
||||
- name: "Nova"
|
||||
processes:
|
||||
- nova-api
|
||||
- nova-api-metadata
|
||||
- nova_api_wsgi
|
||||
- nova-cert
|
||||
- nova-compute
|
||||
- nova-conductor
|
||||
- nova-consoleauth
|
||||
- nova-novncproxy
|
||||
- nova-scheduler
|
||||
- novajoin-server
|
||||
- placement_wsgi
|
||||
- privsep-helper
|
||||
- name: "Octavia"
|
||||
processes:
|
||||
- octavia-worker
|
||||
- octavia-housekeeping
|
||||
- octavia-health-manager
|
||||
- octavia-api
|
||||
|
||||
- name: "Open vSwitch"
|
||||
processes:
|
||||
- ovs-vswitchd
|
||||
- ovsdb-client
|
||||
- ovsdb-server
|
||||
- ovn-northd
|
||||
- ovn-controller
|
||||
- ovn-controller-vtep
|
||||
- name: "Panko"
|
||||
processes:
|
||||
- panko_wsgi
|
||||
- name: "QEMU-KVM / Libvirt"
|
||||
processes:
|
||||
- qemu-kvm
|
||||
- libvirtd
|
||||
- virtlockd
|
||||
- virtlogd
|
||||
- name: "Swift"
|
||||
processes:
|
||||
- swift-account-auditor
|
||||
- swift-account-reaper
|
||||
- swift-account-replicator
|
||||
- swift-account-server
|
||||
- swift-container-auditor
|
||||
- swift-container-replicator
|
||||
- swift-container-server
|
||||
- swift-container-sync
|
||||
- swift-container-updater
|
||||
- swift-object-auditor
|
||||
- swift-object-expirer
|
||||
- swift-object-reconstructor
|
||||
- swift-object-replicator
|
||||
- swift-object-server
|
||||
- swift-object-updater
|
||||
- swift-proxy-server
|
||||
- rsync
|
||||
- name: "Zaqar"
|
||||
processes:
|
||||
- zaqar-server
|
||||
- zaqar_wsgi
|
||||
- name: "Collectd"
|
||||
processes:
|
||||
- collectd
|
@ -125,6 +125,14 @@ http://docs.grafana.org/http_api/auth/#create-api-token
|
||||
[stack@ospd ansible]$ ansible-playbook -i hosts install/browbeat.yml # if not run before.
|
||||
[stack@ospd ansible]$ ansible-playbook -i hosts install/grafana-dashboards.yml
|
||||
|
||||
(Optional) Install Browbeat Prometheus/Grafana/Collectd
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
::
|
||||
[stack@ospd ansible]$ ansible-playbook -i hosts install/grafana-prometheus-dashboards.yml
|
||||
|
||||
Make sure grafana-api-key is added in the `install/group_vars/all.yml`
|
||||
|
||||
(Optional) Install Browbeat Common Logging through filebeat
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user